C# C语言中的泛型对象列表#
我有一个简单的类,包括2个属性,一个字符串和一个泛型对象列表。看起来是这样的:C# C语言中的泛型对象列表#,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我有一个简单的类,包括2个属性,一个字符串和一个泛型对象列表。看起来是这样的: public class SessionFieldViewModel { private String _name; public String Name { get { return _name; } set { _name = value; } } private List<Object> _value; public
public class SessionFieldViewModel
{
private String _name;
public String Name
{
get { return _name; }
set { _name = value; }
}
private List<Object> _value;
public List<Object> Value
{
get { return _value ?? new List<Object>(); }
set { _value = value; }
}
}
当我这样做时,我会得到一个填充的类,其Name属性为“IDGUID”,但对象的通用列表返回null
当我调试代码并遍历它时,数据似乎都在那里,并且正在运行,但当我遍历并检查_searchFields时,它不会在Fields的Value属性中显示任何内容
想法
提前谢谢
汤姆
tlatourelle在getter中为空时,您似乎从未设置
\u值。试一试
public List<Object> Value
{
get { return _value ?? (_value = new List<Object>()); }
set { _value = value; }
}
公共列表值
{
获取{返回_值???(_值=新列表());}
设置{u value=value;}
}
\u值
从未设置为列表的实例
;它总是空的。发生的情况是,您正在返回一个新的列表
并向其中添加一个对象
,但您将立即丢弃新创建的列表
您需要将值的定义更改为以下内容:
private List<Object> _value = new List<Object>();
public List<Object> Value
{
get { return _value; }
set { _value = value; }
}
private List_value=new List();
公共列表值
{
获取{返回_值;}
设置{u value=value;}
}
通用列表在哪里为空?模型绑定器用于绑定来自HTTP请求的值。你的看法如何?那后期呢?为什么要使用列表
?为什么在编译时不知道类型时使用泛型?看起来没什么用,抓得好。我没看到。此外,由于此代码还通过默认的模型绑定器工作,并且在另一个用例中返回实际值,所以我没有想到这部分会被破坏。
private List<Object> _value = new List<Object>();
public List<Object> Value
{
get { return _value; }
set { _value = value; }
}