静态类和静态方法之间有什么区别?我想学习这些差异,何时可以使用其中一种。
例如,我有一个这样的类:
static class ABC
{
public int a;
public void function_a()
{
a = 10;
}
}
和另一个这样的课程:
class DEF
{
public static int a;
public static void function_a()
{
a= 10;
}
}
我多次使用过第二种类,我知道它的用法。第一个例子的用法是什么?
答案 0 :(得分:3)
您的第一个示例将无法编译,静态类必须包含所有静态成员。
仅使用一些静态方法和静态类之间的区别在于,您告诉编译器该类无法实例化。第二个示例是即使没有实例方法,也可以创建DEF类的对象。 ABC类无法使用new运算符进行实例化(将产生编译时错误)。
假设您有一个CompanyInfo类,其中包含以下方法以获取有关公司名称和地址的信息。
<强> C#强>
class CompanyInfo
{
public string GetCompanyName() { return "CompanyName"; }
public string GetCompanyAddress() { return "CompanyAddress"; }
//...
}
这些方法不需要附加到类的特定实例。因此,您可以将其声明为静态类,而不是创建此类的不必要实例,如下所示:
<强> C#强>
static class CompanyInfo
{
public static string GetCompanyName() { return "CompanyName"; }
public static string GetCompanyAddress() { return "CompanyAddress"; }
//...
}
将静态类用作与特定对象无关的方法的组织单位。此外,静态类可以使您的实现更简单,更快,因为您不必创建对象来调用其方法。以有意义的方式组织类中的方法很有用,例如System命名空间中Math类的方法。