using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication24
{
public struct kong<T> where T : struct
{
T value;
}
class Program
{
static void Main(string[] args)
{
System.Nullable<int> i1 =new Nullable<int>();
i1 = null;
kong<int> bb = new kong<int>();
bb = null;//错误 1 无法将 Null 转换成“ConsoleApplication24.kong<int>”,因为它是一种不可为 null 值的类型
}
}
}
为什么fcl中的泛型结构可以为null,我的自定义的却不能为null???
值类型是不能为空的,可空类型 如:int? 其实是Nullable<T>
可能fcl中的定义是Nullable<T> 的格式定义的
因为你定义成了struct,struct是不能为null的,如果需要为null,定义成class即可
值类型不能为null,除非是可空类型,例如:int?,struct类型为值类型;
以上两人都是正解。我就不重复了。 ·