2

我使用此方法填充网格视图的数据源,但对于 when getnewis 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
                };
        }

它给了我第二行的警告[当视图状态为空时]。表达式总是假的

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

4

1 回答 1

0

从您的代码片段中不清楚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>;
}
于 2012-08-26T15:14:14.643 回答