草庐IT

boolean_var

全部标签

c# - 新的 'dynamic' C# 4.0 关键字是否弃用了 'var' 关键字?

当C#4.0发布时,我们有了动态关键字,如excellentpresentationbyAndersHejlsberg中所述,(C#的发展速度快到我跟不上了。我没有太多时间来熟悉var关键字)我还需要var关键字吗?有什么是var可以做的...而dynamic不能做的吗?varx=SomeFunctionThatIKnowReturnsSomeKindOfList();//dosomethingwithxdynamicx=SomeFunctionThatIKnowReturnsSomeKindOfList();//dosomethingwithx 最佳答案

c# - C#7 中的 var 模式有什么好处?

我不明白C#7中var模式的用例。MSDN:Apatternmatchwiththevarpatternalwayssucceeds.Itssyntaxisexprisvarvarnamewherethevalueofexprisalwaysassignedtoalocalvariablenamedvarname.varnameisastaticvariableofthesametypeasexpr.在我看来,MSDN上的示例非常无用,尤其是因为if是多余的:object[]items={newBook("TheTempest"),newPerson("John")};foreach(

c# - C#7 中的 var 模式有什么好处?

我不明白C#7中var模式的用例。MSDN:Apatternmatchwiththevarpatternalwayssucceeds.Itssyntaxisexprisvarvarnamewherethevalueofexprisalwaysassignedtoalocalvariablenamedvarname.varnameisastaticvariableofthesametypeasexpr.在我看来,MSDN上的示例非常无用,尤其是因为if是多余的:object[]items={newBook("TheTempest"),newPerson("John")};foreach(

c# - 为什么编译器不在 C# 中将 var[] 转换为 object[]?

这两行之间没有区别,因为编译器在第二行中理解它是一个int类型的数组。varx=newint[]{1,2,3};//Fine,xisint[]varx=new[]{1,2,3};//Fine,xisint[]但为什么我不能对不同的类型执行此操作?为什么编译器不将我的变量转换为object类型?varx=newobject[]{1,"df",5};//Fine,xisobject[]varx=new[]{1,"df",5};//Error!"Nobesttypefoundforimplicity-typed-array"编辑:感谢您的所有回答。但我仍然想知道,将编译器无法转换为类型obj

c# - 为什么编译器不在 C# 中将 var[] 转换为 object[]?

这两行之间没有区别,因为编译器在第二行中理解它是一个int类型的数组。varx=newint[]{1,2,3};//Fine,xisint[]varx=new[]{1,2,3};//Fine,xisint[]但为什么我不能对不同的类型执行此操作?为什么编译器不将我的变量转换为object类型?varx=newobject[]{1,"df",5};//Fine,xisobject[]varx=new[]{1,"df",5};//Error!"Nobesttypefoundforimplicity-typed-array"编辑:感谢您的所有回答。但我仍然想知道,将编译器无法转换为类型obj

c# - Object、Dynamic 和 Var 之间的区别

我需要知道C#中Object、Dynamic和var这三个关键字之间的区别。我看过这个link但我不明白在哪种情况下我必须使用每一个。您能为我解释一下这些关键字之间的区别吗?每个关键字的用途是什么? 最佳答案 对象:C#中的每个对象都直接或间接地派生自对象类型。它是编译时变量,需要装箱和拆箱进行转换,这使它变慢了。您可以将值类型更改为引用类型,反之亦然。publicvoidCheckObject(){objecttest=10;test=test+10;//Compiletimeerrortest="hello";//Noerror

c# - Object、Dynamic 和 Var 之间的区别

我需要知道C#中Object、Dynamic和var这三个关键字之间的区别。我看过这个link但我不明白在哪种情况下我必须使用每一个。您能为我解释一下这些关键字之间的区别吗?每个关键字的用途是什么? 最佳答案 对象:C#中的每个对象都直接或间接地派生自对象类型。它是编译时变量,需要装箱和拆箱进行转换,这使它变慢了。您可以将值类型更改为引用类型,反之亦然。publicvoidCheckObject(){objecttest=10;test=test+10;//Compiletimeerrortest="hello";//Noerror

c# - 为什么要在 C# 中对 boolean 值使用 |= 运算符?

例子:我们发现这是一些供应商编写的代码,我们正试图找出他们这样做的原因。booltmp=false;if(somecase)tmp=true;if(someOtherCase)tmp|=true; 最佳答案 根本没有什么好理由。boolean值|=true将始终为true。这是有人想变得花哨,或者忘记了boolean逻辑=)将其更改为tmp=true;。 关于c#-为什么要在C#中对boolean值使用|=运算符?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么要在 C# 中对 boolean 值使用 |= 运算符?

例子:我们发现这是一些供应商编写的代码,我们正试图找出他们这样做的原因。booltmp=false;if(somecase)tmp=true;if(someOtherCase)tmp|=true; 最佳答案 根本没有什么好理由。boolean值|=true将始终为true。这是有人想变得花哨,或者忘记了boolean逻辑=)将其更改为tmp=true;。 关于c#-为什么要在C#中对boolean值使用|=运算符?,我们在StackOverflow上找到一个类似的问题:

c# - C# 中的 var 关键字会导致装箱吗?

我的老板禁止我使用var,因为它会导致装箱并减慢应用程序的速度。这是真的吗? 最佳答案 一种可能有效的方法是编写这两个方法:publicstaticvoidWithInt(){intx=5;Console.WriteLine(x);}publicstaticvoidWithVar(){varx=5;Console.WriteLine(x);}编译并使用ildasm检查生成的CIL。给你的老板看。为您编辑@ckhasdoneallbutthelaststep:) 关于c#-C#中的var关