草庐IT

new_elem

全部标签

c# - 为什么在 LINQ 中使用 "select new "

我是LINQtoSQL的新手,所以如果这是一个外行问题,请原谅我。我在很多地方看到我们在查询中使用“selectnew”关键字。例如varorders=fromoindb.Ordersselectnew{o.OrderID,o.CustomerID,o.EmployeeID,o.ShippedDate}为什么我们不直接删除selectnew而只使用"selecto"varorders=fromoindb.Ordersselecto;我可以区分的是速度方面的性能差异,即第二个查询将比第一个查询花费更多的执行时间。它们之间是否还有其他“差异”或“更好用”的概念?

c# - new[] 和 new string[] 有什么区别?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whatisthisnew[]ashorthandfor?有什么区别吗varstrings=newstring[]{"hello","world"};和varstrings2=new[]{"hello","world"};

c# - c#中new关键字隐藏成员的有效应用

我从第1版开始就一直在使用c#,但从未见过成员隐藏的有值(value)用途。你知道吗? 最佳答案 场景#1:假设您正在为.NET2.0设计运行时库。您现在可以随意使用泛型。你有一个界面:interfaceIEnumerable{IEnumeratorGetEnumerator();}你想做一个新的界面interfaceIEnumerable{IEnumeratorGetEnumerator();}您现在有三个选择。1)使通用版本与非通用版本无关。2)使通用版本扩展非通用版本。您现在有两个方法,仅在返回类型上有所不同。将新类型中的Ge

C#:public new string ToString() VS public override string ToString()

我想在我的一个类中重新定义ToString()函数。我写了publicstringToString()...一切正常。但是ReSharper告诉我将其更改为publicnewstringToString()或publicoverridestringToString()有什么区别?为什么C#需要这样的东西? 最佳答案 如果您使用publicstringToString(),则不清楚您打算做什么。如果你想通过多态性改变ToString的行为,那么override。您可以添加一个newToString(),但这很愚蠢。不要那样做!区别在于

c# - 'File.Open()' 和 'new FileStream()' 之间的区别

有什么区别,如果有的话? 最佳答案 没有。File.Open在内部只不过是:publicstaticFileStreamOpen(stringpath,FileModemode,FileAccessaccess,FileShareshare){returnnewFileStream(path,mode,access,share);}如果您不使用指定FileAccess和FileShare的重载,它会为您指定(使用FileShare.None和FileAccess.Write追加,否则使用ReadWrite)。也就是说,这是一个实现细

c# - 使用 new 后跟大括号内的列表的语法是什么?

我刚刚看到一段代码,它使用通用列表类以下列方式实例化自身:varfoo=newList(){"hello","goodbye"};构造函数后面的大括号尤其令人困惑。有点让我想起了varbar=newstring[]{"hi","bye"};但在过去我会一直使用:varfoo=newList(new[]{"hello","goodbye"});有人有解释第一行代码语法的链接吗?我什至不知道从哪里开始谷歌搜索。 最佳答案 正如其他人所指出的,那是一个集合初始值设定项。您可能不知道的一些其他功能已添加到C#3:如果参数列表为空,集合初始化

c# - 当属性隐藏具有 'new' 关键字的继承成员时,反射如何告诉我?

如果我有:publicclassChildClass:BaseClass{publicnewvirtualstringTempProperty{get;set;}}publicclassBaseClass{publicvirtualstringTempProperty{get;set;}}如何使用反射来查看ChildClass是否隐藏了TempProperty的Base实现?我希望答案在c#和vb.net之间是不可知的 最佳答案 我们必须在这里处理属性的方法而不是属性本身,因为实际上被覆盖的是属性的get/set方法而不是属性本身。

C# 创建对象 obj = new T()?

这个问题在这里已经有了答案:C#CreateNewT()(8个答案)关闭3年前。我有一个我们可以调用的父类(superclass)classA和几个子类,例如classa1:A,classa2:A,...和a6:A.在我的classB,我有一组方法可以创建一个子类并将其添加到List在B.我想缩短我目前的代码。所以不是写Adda1(){aList.Add(newa1());}Adda2(){aList.Add(newa2());}...Adda6(){aList.Add(newa6());}相反,我想写类似这样的东西Add(){aList.Add(newT());//Thisgives

c# - 在没有 "new List"的情况下初始化列表属性会导致 NullReferenceException

usingSystem;usingSystem.Collections.Generic;classParent{publicChildChild{get;set;}}classChild{publicListStrings{get;set;}}staticclassProgram{staticvoidMain(){//badobjectinitializationvarparent=newParent(){Child={Strings={"hello","world"}}};}}上述程序编译正常,但在运行时崩溃,未将对象引用设置为对象的实例。如果您在上面的代码片段中注意到,我在初始化子

c# - Ok() 方法 new ObjectResult() 有什么区别吗?

场景:在.net核心Controller上实现标准RESTAPI/GET方法。documentation指出OkObjectResult是一个状态为200的ObjectResult。这可以通过从ControllerBase继承的Ok(myResult)方法获得。我认为这是一种方便的方法。然而,tutorial没有使用这种方法-它返回newObjectResult(myResult),默认状态为200。这两种方法有什么区别吗? 最佳答案 技术上这两种方法之间没有区别。如果要看OkObjectResult的代码然后你会看到OkObjec