jjzjj

c# - 如何从静态 main() 调用方法?

我有一个带有Main方法和函数的控制台应用程序。如何从Main方法调用函数?我知道下面的代码行不通staticvoidMain(string[]args){stringbtchid=GetCommandLine();//GetCommandlineisamthodwhichreturnsastring} 最佳答案 还有varp=newProgram();stringbtchid=p.GetCommandLine(); 关于c#-如何从静态main()调用方法?,我们在StackOverf

C# 单元测试 (Nunit) 控制台应用程序的主要方法?

我对控制台应用程序的Main方法进行单元测试有疑问。标准签名是publicstaticvoidMain(string[]args)我希望能够进行测试以确保只传入1个参数。如果传入了多个参数,我希望测试失败。我不认为我可以用MOQ来模拟它作为它的静态方法。谁有这方面的经验?有什么想法吗?谢谢 最佳答案 在您的场景中没有什么可模拟的。静态Program.Main是一种与任何其他方法一样的方法,您可以通过调用它来测试它。staticvoid方法的问题是您只能验证它是否抛出异常或与输入参数(或其他静态成员,最终)交互。由于在string[]

C#如何自己命名Main()方法?

小问题,有没有办法随心所欲地调用main方法?或者它是否必须被称为“Main()”? 最佳答案 请注意,这是C#约定,而不是.NET运行时约定。您可以在IL中随意命名您的方法:.moduleMane.exe.subsystem3.corflags9.assemblyexternmscorlib{.publickeytoken=(B77A5C561934E089).ver2:0:0:0}.assemblyMane{.custominstancevoid[mscorlib]System.Runtime.InteropServices.C

c# - System.Drawing Out of Memory Exception on Main() 方法 - C#

我的程序是一个CRM,我使用了RadRibbonBar、许多带图像的按钮、RadGridView(其中一些列包含图像)和许多其他包含图像的控件。这是一个mdi父/子程序。在许多情况下,当加载一个mdi子项或使用一些GridView时,程序会挂起并给我这个错误:OutOfMemoryExceptionoccurredinSystem.Drawing.dll我在某些部分尝试了GC.Collect()但没有成功。对于设置图像,没有代码!例如,为按钮设置图像我在visualstudio中使用了它的属性。我在可视模式下使用属性面板以这种方式设置了所有其他控件图像。这些是一些与绘图相关的设计器代码

C# Windows 服务主要方法

我很好奇Main()方法在与服务控制管理器相关的Windows服务中究竟是如何工作的。什么时候执行?它如何挂接到操作系统?它是在安装服务时执行的吗?我知道它在SCM调用OnStart()时执行,OnStop()它已经在运行,所以我们不会再次执行它。如果有人对这方面有很多了解并且可以详细说明,我将不胜感激。我是一名经验丰富的程序员,我不需要描述Main方法的一般作用...只需描述它如何与Windows服务一起工作。 最佳答案 当您使用控制面板小程序告诉服务启动SCM启动进程时;这会导致Main()中的代码运行。Main()方法中的Se

c# - 在 OO 语言中,您如何命名包含 Main 方法的类?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。例如在C#或Java中,您总是有一个main()方法用于让您的程序运行。你给它所在的类(class)起什么名字?我会使用的一些想法只是“程序”或程序本身的名称。在这种情况下,什么会被视为常规?

c# - 在一个 C# 程序中是否可以有多个 main() 方法?

这个问题在这里已经有了答案:Whatistheuseofmultiplemainmethods?(7个答案)MoreThanTwomainMethodinVisualStudioapplication?(8个答案)关闭9年前。在C#控制台应用程序中是否可以有多个main()方法(具有相同的参数)?如果是,怎么办?

c# - 为什么 C# 使用 implicit void Main?

我不明白为什么C#的Main函数在默认情况下是无效的(例如在控制台项目中)。在C和C++中,标准明确规定main必须返回int,使用返回值是有意义的,因为我们可以检查来自外部程序的返回值,并查看C/C++应用程序是成功完成还是遇到错误。所以我的问题是:为什么VisualStudio将Main声明为void?一旦C#控制台应用程序执行完毕,向操作系统返回值的最佳方式是什么? 最佳答案 您可以使用int或void作为返回类型。因此,只需更改它并像在C++中那样返回一个值。为了不让新手迷惑,可能默认为void。

c# - IWebHost : Calling Run() vs RunAsync()

创建新的ASP.NETCore2.0项目时,Program类中的样板Main方法如下所示:publicstaticvoidMain(string[]args){BuildWebHost(args).Run();//BuildWebHostreturnsanIWebHost}但是从C#7.1开始,Main方法可以是返回Task而不是void的异步方法。这意味着在Main中调用异步方法要容易得多。因此可以在Main中调用IWebHost上的RunAsync()而不是Run()方法.像这样:publicstaticasyncTaskMain(string[]args){awaitBuildW

c# - 如何在 Main() 方法之前在 C# 中运行静态初始化方法?

给定一个带有初始化方法的静态类:publicstaticclassFoo{//Classmembers...internalstaticinit(){//Dosomeinitialization...}}如何确保初始化程序在Main()之前运行?我能想到的最好的办法是将它添加到Foo:privateclassInitializer{privatestaticboolisDone=false;publicInitializer(){if(!isDone){init();isDone=true;}}}privatestaticreadonlyInitializerinitializer=n