对象为空。怎么设置呢? C#

时间:2010-08-30 15:11:35

标签: c# asp.net-mvc

我有一个List<Thread>类型的变量FirstThreads。

我正在尝试执行以下操作,但FirstThreads始终为null。

FirstThreads.AddRange(Threads.Skip<Thread>(PageIndex * PageSize)
            .Take<Thread>(PageSize));

我不能这样做:

FirstThreads = FirstThreads.AddRange(Threads.Skip<Thread>(PageIndex * PageSize)
                                            .Take<Thread>(PageSize));

你知道如何解决这个问题吗?

8 个答案:

答案 0 :(得分:9)

在您与FirstThreads变量进行互动之前,您需要制作 变量引用List<Thread>实例,如下所示:

firstThreads = new List<Thread>();

你也可以写

firstThreads = Threads.Skip<Thread>(PageIndex * PageSize).Take<Thread>(PageSize)

答案 1 :(得分:5)

您需要先初始化List<FirstThreads>

任何对象的默认值为null

例如:

List<FirstThreads> firstThreads = new List<FirstThreads>();
firstThreads.AddRange(collection);

答案 2 :(得分:3)

你需要首先实例化列表,我认为它是List<Thread>

所以

FirstThreads = new List<Thread>();

答案 3 :(得分:3)

您需要实例化List对象:

List<Thread> FirstThreads = new List<Thread>();

答案 4 :(得分:2)

如果有疑问,“新”关键字总值得一试

答案 5 :(得分:1)

您可以使用

FirstThread = 
    new List<Thread>(Threads.Skip<Thread>(PageIndex * PageSize)
                            .Take<Thread>(PageSize));

或者如果你不确定它是否有物品并且已经实例化

(FirstThread ?? FirstThread = new List<Thread>())
    .AddRange(Threads.Skip<Thread>(PageIndex * PageSize)
    .Take<Thread>(PageSize));

注意:

您可以为<Thread>Skip方法取出Take,因为它会被推断出来。

答案 6 :(得分:1)

那就是,如果你编写FirstThreads.AddRange,你暗示FirstThreads是一个AddRange方法的对象;但是FirstThreads为null,这意味着它是空的(所以它没有方法) 你必须将FirstThreads列为空列表:

FirstThreads = new List<Thread>();

答案 7 :(得分:1)

FirstThreads被设置为null或永远不会被初始化。无论哪种方式,我猜你需要创建一个分配给它的对象。

FirstThreads = new&lt; - visual studio将自动完成对象创建代码