你可以创建自己的默认T,其中T是你自己的类

Bra*_*tti 2 .net default keyword

假设我有以下内容

public class A 
{
   private string _someField;
   public string SomeField { get { return _someField; } }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我正在检查这个类的默认值,我想设置一个类的默认值,就像int类型的默认值是0,我想在上面的类中我默认的Somefield是"你好" ;

int i = default(int); // i is 0
A myClass = default(A);
string s = myClass.SomeField; // s is hello
Run Code Online (Sandbox Code Playgroud)

这更多只是为了我自己的理论满足而不是实际应用.就是想.

Sea*_*ght 5

null不可以.类(引用类型)的默认值是且不能重载.


Jon*_*upp 5

您无法更改T的默认值(T).对于引用类型,它始终为null;对于结构类型,则为"空"值(即,对于结构,所有成员都处于其默认值,未初始化的值).