什么时候我们需要用&;new&;来创建一个对象?什么时候我们可以声明并赋值给它

本文关键字:什么时候 我们 声明 赋值 创建 new 一个对象 | 更新日期: 2023-09-27 18:06:19

在LINQ to Entities查询中:

List<string> myResult = (from myTable do some joins...blah).ToList();
if(myResuly.Any())
{
 // Foo
}

我的问题是我们如何知道我们是否可以使用

List<string> myResult = (from myTable do some joins...blah).ToList();

或者我们应该使用:

List<string> myResult = new List<string>();
 myResult = (from myTable do some joins...blah).ToList();

什么时候我们需要用&;new&;来创建一个对象?什么时候我们可以声明并赋值给它

如果在=的右侧有一个生成值的函数,则不需要new。在第三个例子中,您的new列表立即被丢弃,ToList()返回的列表用于

的位置

如果您已经可以获得列表,为什么还要浪费额外的代码行呢?

List<string> myResult = new List<string>();

初始化列表的整个想法是,你还没有一个可以存储在'myResult'中的列表。

想象一下试图访问尚未初始化的列表。

我们不应该像这样使用(尽管是安全的)代码:

  List<string> myResult = new List<string>();
  myResult = ... // myResult is reassinged here and "new List<string>()" just lost

,因为您只是创建无用的 List<string>实例。

  List<string> myResult = WhatEver(...).ToList();