Asp.net 无法根据Null计算viewState

Asp.net 无法根据Null计算viewState,asp.net,c#-4.0,object-initializers,Asp.net,C# 4.0,Object Initializers,我使用此方法填充网格视图的数据源,但对于getnew为false时,它不会返回任何值,只返回一个包含单个空值的列表 private List<T> GetAll_T(bool getNew) { if (getNew) return (ViewState["T"] = Get_T()) as List<T>; //Get_T() returns a CustomList

我使用此方法填充网格视图的数据源,但对于
getnew
false
时,它不会返回任何值,只返回一个包含单个空值的列表

 private List<T> GetAll_T(bool getNew)
        {
            if (getNew)
                return (ViewState["T"] = Get_T()) as List<T>;
               //Get_T() returns a CustomList 
            return new List<T>
                {
                    ViewState["T"] != null ?
                    ViewState["T"] as T: 
                    (T)(ViewState["T"] = Get_T()) Collection
                };
        }
private List GetAll\u T(bool getNew)
{
if(getNew)
返回(ViewState[“T”]=Get_T())作为列表;
//Get\u T()返回自定义列表
返回新列表
{
ViewState[“T”]!=null?
视图状态[“T”]为T:
(T) (ViewState[“T”]=Get_T())集合
};
}
它为第二行[当视图状态为空时]提供警告。表达式始终为false


为什么会有警告,当它在逻辑上是正确的

从您的代码片段中不清楚
CustomerService.GetAllCustomer()返回的内容

使用它时,既像在函数的第(2)行返回列表一样,又像在第(8)行返回单个对象一样

我建议这样写

private List<CustomerMaster> GetAllCustomer(bool getNew)
{
    if (getNew || null == ViewState["CustomerDataset"])
        ViewState["CustomerDataset"] = CustomerService.GetAllCustomer();
    return ViewState["CustomerDataset"] as List<CustomerMaster>;
}
私有列表GetAllCustomer(bool getNew)
{
如果(getNew | | null==ViewState[“CustomerDataset”])
ViewState[“CustomerDataset”]=CustomerService.GetAllCustomer();
将ViewState[“CustomerDataset”]返回为列表;
}

从您的代码片段中不清楚
CustomerService.GetAllCustomer()返回什么

使用它时,既像在函数的第(2)行返回列表一样,又像在第(8)行返回单个对象一样

我建议这样写

private List<CustomerMaster> GetAllCustomer(bool getNew)
{
    if (getNew || null == ViewState["CustomerDataset"])
        ViewState["CustomerDataset"] = CustomerService.GetAllCustomer();
    return ViewState["CustomerDataset"] as List<CustomerMaster>;
}
私有列表GetAllCustomer(bool getNew)
{
如果(getNew | | null==ViewState[“CustomerDataset”])
ViewState[“CustomerDataset”]=CustomerService.GetAllCustomer();
将ViewState[“CustomerDataset”]返回为列表;
}