在C#中使用Application.Restart()方法应该重启当前应用程序:但似乎这并不总是有效。这个问题是否有原因,有人可以告诉我,为什么它总是不起作用? 最佳答案 这可能有很多原因。不是方法不行,而是方法不行。相反,很多时候程序员忘记了他们在代码中放置了一些东西来阻止应用程序自动关闭或启动。两个例子:表单上的Closing事件可以停止应用程序的关闭如果您正在检查一个已在运行的进程,旧进程关闭的速度可能不足以让新进程启动。检查您的代码是否存在类似问题。如果您在空白应用程序中看到此行为,那么这更有可能是实际功能的问题,而不是您的
我正在使用SQLExpress数据库作为c#单元测试项目的一部分。我的数据库位于此处:./Databases/MyUnitTestDB.mdf我想在app.config中使用相对路径或变量,而不是将连接字符串定义为:AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf我看到了|DataDirectory|的使用,但我认为这仅适用于Web应用程序是否正确?我想在应用程序配置文件中控制它,因为在生产中应用程序使用托管的sql数据库。 最佳答案
为什么在C#中,控制台应用程序,在默认的“程序”类中,所有方法都必须是静态的staticvoidMain(string[]args) 最佳答案 成员函数不必是静态的;但如果它们不是静态的,则需要您实例化一个Program对象才能调用成员方法。使用静态方法:publicclassProgram{publicstaticvoidMain(){System.Console.WriteLine(Program.Foo());}publicstaticstringFoo(){return"Foo";}}没有静态方法(换句话说,要求您实例化Pr
当您在.NET中的GUID上调用ToByteArray()时,与GUID的字符串表示形式相比,结果数组中的字节顺序不是您所期望的。例如,对于以下表示为字符串的GUID:11223344-5566-7788-9900-aabbccddeeffToByteArray()的结果是这样的:44,33,22,11,66,55,88,77,99,00,AA,BB,CC,DD,EE,FF注意前四个字节的顺序是颠倒的。字节4和5也被交换,字节6和7也被交换。但最后8个字节的顺序与它们在字符串中的表示顺序相同。我知道这正在发生。我想知道的是为什么.NET以这种方式处理它。作为引用,您可以看到一些关于此的
我是C#新手。我知道在vb.net中,我可以这样做:Dimguidasstring=System.Guid.NewGuid.ToString在C#中,我正在尝试做Stringguid=System.Guid.NewGuid().ToString;但我收到“无法将方法组‘ToString’转换为非委托(delegate)类型‘string’。您是否打算调用该方法?”错误。 最佳答案 根据MSDNGuid.ToString(stringformat)方法根据提供的格式说明符返回此Guid实例值的字符串表示形式。例子:guidVal.To
是否可以在C#中声明一个常量Guid?我知道我可以声明一个staticreadonlyGuid,但是是否有一种语法允许我编写constGuid? 最佳答案 没有。const修饰符仅适用于“原始”类型(bool、int、float、double、long、decimal、short、byte)和字符串。基本上任何你可以声明为文字的东西。 关于c#-如何在C#中声明常量Guid?,我们在StackOverflow上找到一个类似的问题: https://stacko
我刚刚在我的一个类中为“application/json”内容类型声明了一个常量。publicconststringJsonContentType="application/json";我不确定这是一个好的做法。.NETFramework是否为“application/json”预定义了常量? 最佳答案 为了添加最新的答案:自dotnetcore2.1MediaTypeNames.Application.Json已被定义。参见https://github.com/dotnet/corefx/pull/26701对于变更集。
以下是我们可以退出应用程序的方式:Environment.Exit(0)Application.Exit()Form.Close()这三种方法有什么区别,何时使用每种方法? 最佳答案 正确的方法是Application.Exit()。根据Documentation,它会终止所有消息循环并关闭所有窗口,从而使您的表单有可能执行其清理代码(在Form.OnClose等中)。Environment.Exit只会终止进程。如果某种形式有例如未保存的更改它不会有任何机会询问用户是否要保存它们。此外,资源(数据库连接等)无法正确释放,文件可能无
我想创建一个GUID并将其存储在数据库中。在C#中,可以使用Guid.NewGuid()创建guid。这将创建一个128位整数。SQLServer有一个uniqueidentifier列,它包含一个巨大的十六进制数。是否有一种好的/首选方法可以使C#和SQLServerguids很好地协同工作?(即使用Guid.New()创建一个guid,然后使用nvarchar或其他字段将其存储在数据库中......或者创建SQLServer通过其他方式期望的十六进制数) 最佳答案 下面的代码片段展示了如何使用参数化查询插入GUID:using(
在我的应用程序中,我想先显示一个登录表单,然后在登录成功时显示主表单。目前我正在做这样的事情:varA=newLoginForm();if(A.ShowDialog()==DialogResult.OK)Application.Run(newMainForm());但后来我开始怀疑-Application.Run()的意义何在?为什么不同时执行(newMainForm()).ShowDialog()呢?有什么不同?实现我想要的目标的正确方法是什么? 最佳答案 Application.Run(Form)在当前线程上启动消息循环并显示指