问题:
你有一个泛型类,它包含一个变量,其类型与类自身定义的类型参数的类型相同。在构造泛型对象时,你希望将该变量初始化为它的默认值。
解决方案:
简单地使用default 关键字将该变量初始化为它的默认值。
public class DefaultValueExample<T>
{
T data = default(T);
public bool IsDefaultData()
{
T temp = default(T);
if (temp.Equals(data))
{
return (true);
}
else
{
return (false);
}
}
public void SetData(T val) => data = value;
}
使用这个类的代码如下所示。
public static void ShowSettingFieldsToDefaults()
{
DefaultValueExample<int> dv = new DefaultValueExample<int>();
// 检查是否将数据设置为其默认值;返回true
bool isDefault = dv.IsDefaultData();
Console.WriteLine($"Initial data: {isDefault}");
// 设置数据
dv.SetData(100);
// 再次检查,这次返回的是false
isDefault = dv