在非静态类中声明静态方法的意义何在?

Ric*_*d77 7 c#

我理解它的方式是,在非静态类中将成员变量声明为static会导致该成员变量唯一,而不管该类的实例数.

现在,在非静态类中声明的静态方法会发生什么?而且(最重要的是),在非静态类中声明静态方法的重点是什么?

谢谢你的帮助

cjk*_*cjk 21

如果该方法与类型有关但不与实例有关,那么它可以是静态的.

DateTime.Parse并且Int32.Parse是例子.

  • 并且有一条准则"如果它可以是静态的而不是静态的". (10认同)
  • 与Henk Holterman的评论相关:http://stackoverflow.com/questions/790281 (2认同)

Fer*_*cio 5

它对于创建不是任何对象的成员但需要访问对象内部以便初始化它的工厂方法很有用.


Bob*_*bby 5

对于工厂模式,你需要非静态类fe中的静态方法(如果类是自己的工厂,正如Jaco Pretorius所指出的那样):

  MyClass newInstance = MyClass.Create();
Run Code Online (Sandbox Code Playgroud)

或者,如果您想创建辅助方法.铁,你可以写一个FTP-类,这是完全正常的,有Connect(),SendCommand(),ReceiveAnswer(),Disconnect()等,但要允许用户方便地上传一个文件,而不需要实现整个过程:

  MyFTPClass.UploadFile("username", "password", "pathToFile");
Run Code Online (Sandbox Code Playgroud)


Ale*_*x F 4

仅使用其参数、不调用任何实例方法且不使用任何实例成员的类方法可以声明为静态。实际上,为了获得更好的性能,应该将其声明为静态,因为静态方法不需要“this”指针。

考虑属于类的小函数,用它的参数进行一些计算并返回计算值。这个函数应该是静态的。