gpt4 book ai didi

c# - 静态类/方法停止我的应用程序

转载 作者:行者123 更新时间:2023-11-30 17:19:06 26 4
gpt4 key购买 nike

我在从另一个方法调用静态方法时遇到问题。

我的静态方法在一个单独的项目中,但我检查了引用和 using 语句,一切似乎都是正确的。下面是一个简化版本。

静态方法

namespace Backend
{
static public class StartUpChecks
{
public static void RunAtStart()
{
// Calls other static methods and sets application settings
}
}
}

窗体

using Backend;

namespace UI
{
public partial class mainForm:Form
{
public mainForm()
{
InitializeComponent();
}
private void mainForm_Load(object sender, EventArgs e)
{
//MessageBox.Show("It Works");
StartUpChecks.RunAtStart();
}
}
}

当我运行程序时,它就停止了。我在 OnLoad 事件处理程序上设置了一个断点,但它永远不会被击中。如果我在 MessageBox 中注释并注释掉该方法调用,事件将触发并显示消息框。

我在 VS 中没有显示任何错误。我尝试创建另一种方法 Test(),并将 StartUpChecks.RunAtStart() 移入其中。然后我将 Test() 调用放在 MessageBox 之后。事件触发,消息框显示,但它不会移动到 Test() 方法。

同样在 VS 中调试时,我无法重新启动进程,也无法进入/跨过任何东西。

知道我做错了什么吗?

编辑---

完整的静态类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataSourceManager;
using UserValidator;

namespace Backend
{
static public class StartUpChecks
{
public static void RunAtStart()
{
CheckUserAuthorised();
CheckUserAdmin();
SetConnection("myApplication");
}

private static void SetConnection(string appName)
{
AppControl.Connection = ConnectionSetter.SetConnectionString(appName);
}

private static void CheckUserAuthorised()
{
UserValidation checkMe = new UserValidation(AppControl.Connection);
AppControl.UserIsAuthorised = checkMe.UserIsAuthorised();
}

private static void CheckUserAdmin()
{
UserValidation checkMe = new UserValidation(AppControl.Connection);
AppControl.UserIsAdmin = checkMe.UserIsAdmin();
}
}
}

最佳答案

请尝试配置 VS 以处理抛出的异常:

主菜单 -> 调试 -> 异常 => 在“抛出”单元格中设置 CLR 异常旁边的复选框

其他点启用外部代码调试

Main menu -> Tools -> Options -> Debugging -> Uncheck point Just in my code

此更改后尝试运行您的应用程序

关于c# - 静态类/方法停止我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5182003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com