草庐IT

static-factory

全部标签

c# - 函数的 "static new"修饰符有什么意义?

今天,我在遗留代码中发现了一些东西。它具有一项功能的“静态新”。看起来像这样。classFoo{publicstaticvoidDo(){Console.WriteLine("Foo.Do");}}classBar:Foo{publicstaticnewvoidDo(){Console.WriteLine("Bar.Do");}}我不明白类Bar中Do方法的staticnew修饰符。在C#中,静态方法只能用类名调用,不能用对象名调用。所以,我认为拥有"new"与没有"new"之间没有任何区别。一般情况下,如果某些语法是不必要的,C#只是将其视为错误。有人知道为什么C#允许这种语法吗?

c# - 错误 : "an object reference is required for the non-static field, method or property..."

这个问题在这里已经有了答案:CS0120:Anobjectreferenceisrequiredforthenonstaticfield,method,orproperty'foo'(9个回答)关闭5年前。我正在用C#创建一个应用程序。它的功能是评估给定的是否为素数以及相同的交换数是否也是素数。当我在VisualStudio中构建我的解决方案时,它说“非静态字段、方法或属性需要对象引用...”。我在使用“volteado”和“siprimo”方法时遇到了这个问题。问题出在哪里,我该如何解决?namespaceConsoleApplication1{classProgram{static

c# - Task.Factory.StartNew 与 Parallel.Invoke

在我的应用程序中,我并行执行了几十到几百个操作(这些操作没有返回值)。哪种方法是最佳的:在foreach循环中使用Task.Factory.StartNew迭代Action数组(Action[])Task.Factory.StartNew(()=>someAction());使用Parallel类,其中actions是Action数组(Action[])Parallel.Invoke(actions);这两种方法是否等效?对性能有影响吗?编辑我已经执行了一些性能测试,在我的机器上(每个2个CPU2个内核)结果似乎非常相似。我不确定它在1个CPU等其他机器上会是什么样子。我也不确定(不知

c# - 推荐哪个: "static public" or "public static"

如果您有一个static和public的类成员。你会写staticpublic还是publicstatic?我知道他们是一样的。但是是否有一些关于编写此内容的建议/最佳实践? 最佳答案 “publicstatic”更为常见,因此您可能希望使用它只是为了提高从未偶然发现“staticpublic”的程序员的可读性。 关于c#-推荐哪个:"staticpublic"or"publicstatic",我们在StackOverflow上找到一个类似的问题: https

C# 错误 : "An object reference is required for the non-static field, method, or property"

我有两个类,一个用于定义算法参数,另一个用于实现算法: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# - 什么是 "static"类?

在C#中有什么区别:publicstaticclassClassName{}和:publicclassClassName{} 最佳答案 首先,对一个回答的评论询问“静态”是什么意思。在C#术语中,“静态”意味着“与类型本身相关,而不是类型的实例”。您使用类型名称而不是引用或值访问静态成员(来自另一个类型)。例如://Staticmethod,socalledusingtypenameGuidsomeGuid=Guid.NewGuid();//Instancemethod,calledonavaluestringasString=so

c# - WCF 错误 : Manual addressing is enabled on this factory, 所以发送的所有消息都必须预先寻址

我有一个托管的WCF服务,我为其创建了一个自定义工厂,因此它可以与多个主机header一起使用://////Requiredforhostingwheremultiplehostheadersarepresent///publicclassMultipleHostServiceFactory:ServiceHostFactory{protectedoverrideServiceHostCreateServiceHost(TypeserviceType,Uri[]baseAddresses){Listaddresses=newList();addresses.Add(baseAddres

时间:: console application - static methods

为什么在C#中,控制台应用程序,在默认的“程序”类中,所有方法都必须是静态的staticvoidMain(string[]args) 最佳答案 成员函数不必是静态的;但如果它们不是静态的,则需要您实例化一个Program对象才能调用成员方法。使用静态方法:publicclassProgram{publicstaticvoidMain(){System.Console.WriteLine(Program.Foo());}publicstaticstringFoo(){return"Foo";}}没有静态方法(换句话说,要求您实例化Pr

c# - C# 控制台应用程序中的 public static void Main() 和 private static void Main() 有什么区别?

有什么区别publicstaticvoidMain()和privatestaticvoidMain()在C#控制台应用程序中?特别是因为它与Main()方法有关(我了解public和private之间的区别)。 最佳答案 要作为应用程序的起点,Main方法不需要是public。如果您确实决定将其设为public,则它可能会被其他类或程序集调用。通常您不需要这样做,因此您可以将其设为private。将其设为public的一个可能用例是允许自动化测试调用它。 关于c#-C#控制台应用程序中的

c# - 故障排除 "program does not contain a static ' 主要方法“当它清楚地...?

我的MSVisualC#程序编译和运行都很好。我关闭MSVisualC#开始做生活中的其他事情。我重新打开它并(在执行任何其他操作之前)转到“发布”我的程序并收到以下错误消息:ProgramC:\myprogram.exedoesnotcontainastatic'Main'methodsuitableforanentrypoint嗯?是的,确实如此……并且在15分钟前一切正常。当然,我可以相信我在关闭它之前不小心撞到了什么东西或做了什么……但是什么?我该如何解决这个问题?我的Program.cs文件如下所示:usingSystem;usingSystem.Collections.Ge