这个问题的后续问题:为什么Nullable <T>被认为是一个结构而不是一个类?
我有两个类,基本上维护一个用户提供的值的元组与内部对象.
当用户提供的值的类型是基元时,我必须将其包装在一个Nullable<T>元组中,以便它可以在元组中采用空值.
public class BundledClass<T> where T : class
{
private Tuple<T, object> _bundle;
public T Value
{
get { return _bundle == null ? null : _bundle.Item1; }
set { _bundle = new Tuple<T, object>(value, internalObj); }
}
//...
public class BundledPrimitive<T> where T : struct
{
private Tuple<T?, object> _bundle;
public T? Value
{
get { return _bundle == null ? null : _bundle.Item1; }
set { _bundle = new Tuple<T?, object>(value, internalObj); …Run Code Online (Sandbox Code Playgroud)