今天,我在遗留代码中发现了一些东西。它具有一项功能的“静态新”。看起来像这样。classFoo{publicstaticvoidDo(){Console.WriteLine("Foo.Do");}}classBar:Foo{publicstaticnewvoidDo(){Console.WriteLine("Bar.Do");}}我不明白类Bar中Do方法的staticnew修饰符。在C#中,静态方法只能用类名调用,不能用对象名调用。所以,我认为拥有"new"与没有"new"之间没有任何区别。一般情况下,如果某些语法是不必要的,C#只是将其视为错误。有人知道为什么C#允许这种语法吗?
这个问题在这里已经有了答案:CS0120:Anobjectreferenceisrequiredforthenonstaticfield,method,orproperty'foo'(9个回答)关闭5年前。我正在用C#创建一个应用程序。它的功能是评估给定的是否为素数以及相同的交换数是否也是素数。当我在VisualStudio中构建我的解决方案时,它说“非静态字段、方法或属性需要对象引用...”。我在使用“volteado”和“siprimo”方法时遇到了这个问题。问题出在哪里,我该如何解决?namespaceConsoleApplication1{classProgram{static
我们都知道Constructor和用户定义的Initialize()方法之间的根本区别。我的问题集中在对象创建的最佳设计实践上。我们可以将所有Initialize()代码放入Constructor()中,反之亦然(将所有预热代码移至Initialize方法并调用此方法来自构造函数)。目前,在设计一个新类时,我在constructor()中创建了所有新实例,并将任何其他预热代码移至Initialize()方法中。您认为最佳的权衡点是什么? 最佳答案 我认为应该考虑多个方面:构造函数应该以一种处于可用状态的方式初始化对象。构造函数应该只
如果您有一个static和public的类成员。你会写staticpublic还是publicstatic?我知道他们是一样的。但是是否有一些关于编写此内容的建议/最佳实践? 最佳答案 “publicstatic”更为常见,因此您可能希望使用它只是为了提高从未偶然发现“staticpublic”的程序员的可读性。 关于c#-推荐哪个:"staticpublic"or"publicstatic",我们在StackOverflow上找到一个类似的问题: https
我有两个类,一个用于定义算法参数,另一个用于实现算法:1类(算法参数):usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceVM_Placement{publicstaticclassAlgorithmParameters{publicstaticintpop_size=100;publicstaticdoublecrossover_rate=0.7;publicstaticdoublemutation_rate=0.001;publicstaticintchrom
在C#中有什么区别:publicstaticclassClassName{}和:publicclassClassName{} 最佳答案 首先,对一个回答的评论询问“静态”是什么意思。在C#术语中,“静态”意味着“与类型本身相关,而不是类型的实例”。您使用类型名称而不是引用或值访问静态成员(来自另一个类型)。例如://Staticmethod,socalledusingtypenameGuidsomeGuid=Guid.NewGuid();//Instancemethod,calledonavaluestringasString=so
为什么在C#中,控制台应用程序,在默认的“程序”类中,所有方法都必须是静态的staticvoidMain(string[]args) 最佳答案 成员函数不必是静态的;但如果它们不是静态的,则需要您实例化一个Program对象才能调用成员方法。使用静态方法:publicclassProgram{publicstaticvoidMain(){System.Console.WriteLine(Program.Foo());}publicstaticstringFoo(){return"Foo";}}没有静态方法(换句话说,要求您实例化Pr
有什么区别publicstaticvoidMain()和privatestaticvoidMain()在C#控制台应用程序中?特别是因为它与Main()方法有关(我了解public和private之间的区别)。 最佳答案 要作为应用程序的起点,Main方法不需要是public。如果您确实决定将其设为public,则它可能会被其他类或程序集调用。通常您不需要这样做,因此您可以将其设为private。将其设为public的一个可能用例是允许自动化测试调用它。 关于c#-C#控制台应用程序中的
我的MSVisualC#程序编译和运行都很好。我关闭MSVisualC#开始做生活中的其他事情。我重新打开它并(在执行任何其他操作之前)转到“发布”我的程序并收到以下错误消息:ProgramC:\myprogram.exedoesnotcontainastatic'Main'methodsuitableforanentrypoint嗯?是的,确实如此……并且在15分钟前一切正常。当然,我可以相信我在关闭它之前不小心撞到了什么东西或做了什么……但是什么?我该如何解决这个问题?我的Program.cs文件如下所示:usingSystem;usingSystem.Collections.Ge
无法执行以下代码错误CS5001程序不包含适合入口点的静态“Main”方法这个错误信息是什么意思?classProgram{staticasyncTaskMainAsync(string[]args){Account.accountTestaccountTest=newAccount.accountTest();boolresult=awaitaccountTest.CreateAccountAsync();}} 最佳答案 这意味着您目前没有适合您的应用程序的入口点。该代码几乎适用于C#7.1,但您确实需要在项目文件中明确启用C#7