以下是MSDN在何时使用静态类时要说的内容:
Run Code Online (Sandbox Code Playgroud)static class CompanyInfo { public static string GetCompanyName() { return "CompanyName"; } public static string GetCompanyAddress() { return "CompanyAddress"; } //... }使用静态类作为与特定对象无关的方法的组织单位.此外,静态类可以使您的实现更简单,更快,因为您不必创建对象来调用其方法.以有意义的方式组织类中的方法很有用,例如System命名空间中Math类的方法.
对我来说,这个例子似乎并没有涵盖静态类的很多可能的使用场景.在过去,我已经将静态类用于相关函数的无状态套件,但这就是它.那么,在什么情况下应该(而且不应该)将一个类声明为静态?
我什么时候应该选择静态课程还是普通课程?或者:他们之间有什么区别?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace staticmethodlar
{
class Program
{
static void Main(string[] args)
{
SinifA.method1();
}
}
static class SinifA
{
public static void method1()
{
Console.WriteLine("Deneme1");
}
}
public static class SinifB
{
public static void method2()
{
Console.WriteLine("Deneme2");
}
}
public class sinifC
{
public void method3()
{
Console.WriteLine("Deneme3");
}
}
public class sinifD : sinifC
{
void method4()
{
Console.WriteLine("Deneme4");
}
sinifC sinifc = new sinifC(); // I need to use …Run Code Online (Sandbox Code Playgroud) 非静态类比静态类有什么优势?
静态类不需要实例化。所以我们可以直接使用ClassName.MemberName,那么非静态类的用途是什么
如果我Utilities.cs在C#中有一个类,它只包含静态方法
例如
public static string DoSomething()
{
return "something";
}
Run Code Online (Sandbox Code Playgroud)
我应该让这个类本身是静态的吗?
public static Utilities()
{
...
Run Code Online (Sandbox Code Playgroud)
使类静态有什么优势吗?