问题:
你有一个泛型类,它包含一个变量,其类型与类自身定义的类型参数的类型相同。在构造泛型对象时,你希望将该变量初始化为它的默认值。
解决方案:
简单地使用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.IsDefaultData();
Console.WriteLine($"Set data: {isDefault}");
}

本文探讨了如何在C#泛型类中为类型参数的变量初始化为默认值,解释了为何不能简单设为null,并介绍了default关键字的作用。通过示例展示了default关键字如何根据不同的类型参数(值类型、引用类型、struct)提供正确的默认值。

573

被折叠的 条评论
为什么被折叠?



