Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的泛型对象列表#_C#_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

C# C语言中的泛型对象列表#

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

我有一个简单的类,包括2个属性,一个字符串和一个泛型对象列表。看起来是这样的:

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; }
}