什么时候不使用C#中的static关键字?

时间:2019-01-16 12:57:21

标签: c# class static

是什么使在C#中定义方法时使用static关键字的做法不好? 我知道使用static可以直接访问类中的函数,而无需创建类的实例。但是什么时候不应该使用静态?

3 个答案:

答案 0 :(得分:0)

对于Microsoft使用'static'属性here,有完整的解释。

例如,在Web框架的经验(为此是.NET Core)中,我们对不需要任何更改的原始值使用静态声明。

答案 1 :(得分:0)

不访问任何实例数据的方法实际上应标记为statichttps://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822-mark-members-as-static?view=vs-2017根据用途,它仍可能被声明为private方法。

如果该方法确实访问任何实例数据,则不能是静态的。编译器强制执行此操作。

静态方法的常见示例为String.FormatInt32.Parse。在调用这些方法之前分配stringint毫无意义。

答案 2 :(得分:0)

在不需要访问类上任何非静态元素的方法时,可以创建一个静态方法。例如,考虑到DateTime.Parse方法。您可以照常创建DateTime的实例,但是如果您需要解析特定的日期,则可以调用DateTime.Parse返回有效的DateTime,而无需自己创建DateTime实例。由于该方法不访问DateTime类的任何特定元素,因此将其声明为static

更多信息:

https://www.codeproject.com/Questions/1208992/When-to-use-static-methods-Csharp

https://hackernoon.com/c-static-vs-instance-classes-and-methods-50fe8987b231