问题:

你有一个泛型类包含一个由类自身定义类型参数的变量。由于对泛型对象的约束,你希望这个变量被初始化为其默认值。

解决方法:

非常简单的方法:只要使用default关键字初始化其值为默认值即可:

七、用默认值初始化泛型变量    public class DefaultValueExample<T>

 

使用这个类的代码可以参考这里:

七、用默认值初始化泛型变量using System;
七、用默认值初始化泛型变量
using System.Collections.Generic;
七、用默认值初始化泛型变量
using System.Text;
七、用默认值初始化泛型变量
七、用默认值初始化泛型变量
namespace SetDefaultValueExample
}

 当初始化一个相同类型参数的变量时,你不能只是设置这些变量为null。如果这个变量是值类型,比如说int或char,那会是什么呢?那将不能运行,因为值类型不能是null的。你也许会想到一个nullable类型,比如long?或者Nullable<long>,可以被设为空。然而,编译器无法知道用户将使用什么类型参数去构造这个类型。

default关键字允许你告诉编译器在编译时,这个类型的默认值将被使用。如果提供的类型参数是数值(int,long,decimal),那么默认值将会是0。如果是引用类型,那么默认值将会是null。如果是结构体,那么这个结构体的默认值将根据其每一个字段的类型设为0或null。

相关文章: