Tag: 运算符

xor有3个值

我需要在3个值之间做一个xor条件,即我需要三个值中的一个为真但不超过一个而不是无。 我以为我可以使用xor ^运算符,但它没有按预期工作。 我希望这会返回假,但它不会。 (true ^ true ^ true) 所有其他组合似乎按我的预期工作。 在查看xor运算符的文档时,他们只讨论比较2个值,并且我无法在线查找3个或更多值的任何内容。 任何人都可以放弃任何亮点或建议一个简单的方法吗?

哪个代码更好:使用“as”或“is”?

可能重复: 使用CLR中的’as’关键字进行转换 C#:“是”vs“as” 这段代码: if (sheet.Models.Data is GroupDataModel) { GroupDataModel gdm = (GroupDataModel)sheet.Models.Data; 而这段代码: GroupDataModel gdm = sheet.Models.Data as GroupDataModel; if (gdm != null) { 你推荐上面两种风格中的任何一种而不是另一种吗?

你如何在C#中返回’not uint’?

我有一些用VB编写的代码,内容如下: Return (Not (crc32Result)) 我正在尝试将其转换为C#,这就是我所拥有的: return (!(crc32Result)); 但是我收到编译器错误: 编译器错误消息: CS0023:运算符’!’ 不能应用于’uint’类型的操作数 是否有一个不同的运营商我需要使用而不是这个? 谢谢!

‘^’在c#(Enums)中做了什么?

我正在阅读一些第三方代码,我发现了这个: x.Flags = x.Flags ^ Flags.Hidden; 它有什么作用? 我用’&’和’|’ 用于按位’和’和’或’用枚举,但这是我第一次看到那个符号……

C#隐式转换和==运算符

上下文的一些代码: class a { } class b { public aa{get;set;} public static implicit operator a(bb) { return ba; } } aa=null; bb=null; a = b; //compiler: cannot apply operator ‘==’ to operands of type tralala… bool c = a == b; 是否可以在不同的类型实例上使用==运算符,其中一个可以隐式转换为另一个? 我错过了什么? 编辑: 如果类型必须是相同的调用==,那么为什么 int a=1; double b=1; bool c=a==b; 作品?

C#中的“>>”运算符有什么作用?

我在一段代码中遇到了这个声明: Int32 medianIndex = colorList.Count >> 1; colorList是System.Drawing.Color类的列表。 现在声明应该检索列表的中间索引..就像它的半点..但我无法理解>>符号如何工作以及“1”应该如何给出中间索引..我会感激一些帮助:S

什么时候必须在C#中使用隐式和显式运算符?

这些运营商的用途是什么?

如何使用Reflection调用自定义运算符

在我的小项目中,我使用System.Reflection类来生成可执行代码。 我需要调用自定义类型的+运算符。 有谁知道如何使用C#reflection调用自定义类的自定义运算符?

== vs C等于#

在C#中评估==和Equals有什么区别? 对于Ex, if(x==x++)//Always returns true 但 if(x.Equals(x++))//Always returns false 编辑: int x=0; int y=0; if(x.Equals(y++))// Returns True

List operator ==在C#语言规范版本4中

在C#语言规范版本4中,1.6.7.5运算符是有关List运算符的信息: ==和!= 。 但我找不到List定义的运算符? 我错过了什么吗? 1.6.7.5运算符的示例代码: List a = new List(); a.Add(1); a.Add(2); List b = new List(); b.Add(1); b.Add(2); Console.WriteLine(a == b); // Outputs “True” => here I get False as well b.Add(3); Console.WriteLine(a == b); // Outputs “False”