Tag: 运营商

为什么我们的c#图形代码不再工作?

这是情况: 我们有一些通用的图形代码,我们用于其中一个项目。 在对代码进行一些清理之后,似乎某些东西不再起作用了(图形输出看起来完全错误)。 我对提供正确输出的代码的最后一个版本运行了一个diff,看起来我们改变了我们的一个函数,如下所示: static public Rectangle FitRectangleOld(Rectangle rect, Size targetSize) { if (rect.Width <= 0 || rect.Height rect.Width * targetSize.Height) { rect.Width = rect.Width * targetSize.Height / rect.Height; rect.Height = targetSize.Height; } else { rect.Height = rect.Height * targetSize.Width / rect.Width; rect.Width = targetSize.Width; } return rect; } 至 static public Rectangle FitRectangle(Rectangle rect, […]

为什么我不能在Base中将一个隐式运算符写入C#中的Derived类?

public class Derived : BaseClass { public Derived(string name) : base(name) {} public static implicit operator BaseClass(Derived derived) { return new BaseClass(derived.ColorHex); } public static implicit operator Derived(BaseClass baseclass) { return new Derived(baseclass.name); } } 这不行。 为什么不允许? 我可以写出有必要的逻辑,特别是在从基础转换为派生的逻辑时。 编辑:更改了问题的标题

Int32.Equals vs’==’运算符

我环顾四周,但似乎没有人问过这个问题,所以就这样了。 我正在开发一个具有IEquatable接口的自定义类,因此我正在创建自己的Equals方法。 这是它的样子: public bool Equals(QueryFilter qfilter) { if (qfilter == null) { return false; } return ((this.Value.Equals(qfilter.Value)) && (this.Name.Equals(qfilter.Name)) && (this.Order == qfilter.Order)); } 其中Value,Name和Order是QueryFilter类的字段。 Value和Name是strings ,但Order是一个int ,我想知道是否使用==运算符,或者我是否应该使用Int32.Equals方法,以“匹配”其他字段如何进行比较? 我检查了MSDN,但它没有详细说明,只是说它超载了,但我不确定在这种情况下这意味着什么。 那个==会一直在工作吗? 总而言之,哪一个更好? Int32.Equals还是== ? 什么时候应该使用每一个?

C#generics类操作符不起作用

我有generics问题。 当我尝试在通用中使用较少的运算符时,他们的调用不会发生。 但它适用于Equals方法。 这是一个测试类: public class Test { public int i; static public Boolean operator ==(Test obj1, Test obj2) { Console.WriteLine(“operator ==”); return obj1.i == obj2.i; } static public Boolean operator !=(Test obj1, Test obj2) { Console.WriteLine(“operator !=”); return obj1.i != obj2.i; } public override bool Equals(object obj) { Console.WriteLine(“operator equals”); return this == (Test)obj; […]

这些(+ =, – =,* =,/ =)运算符是什么意思?

我一直在寻找各地,弄清楚这些是什么意思以及它们是如何使用的+= , -= , *= , /= ,我发现的最多的是“增加的分配”,“按差异分配”, “按产品分配”,“按商数分配”等,但我无法弄清楚它们何时或如何使用。 如果有人能够向我解释这一点,我将非常感激。 谢谢

&运营商的意义是什么?

在以下代码中: Expression<Func> isOdd = i => (i & 1) == 1; …… (i & 1) == 1是什么意思?

什么?? 运算符意味着在C#中?

可能重复: C#中两个问号共同意味着什么? 嗨,我在C#中寻找MVC 2的一些培训,我找到了这个sintax: ViewData[“something”] = something ?? true; 那么,那是什么’??’ 是什么意思?

为什么我需要一个中间转换从struct到decimal,而不是struct到int?

我有这样的结构,显式转换为float: struct TwFix32 { public static explicit operator float(TwFix32 x) { … } } 我可以使用单个显式转换将TwFix32转换为int: (int)fix32 但要将其转换为十进制,我必须使用两个强制转换:( (decimal)(float)fix32 没有从float到int或decimal的隐式转换。 为什么编译器让我在转到int时省略了浮动的中间转换,但是当我要去十进制时却没有?

operator << in c#

我在c#中无法理解这段代码 int i=4 int[] s =new int [1<<i]; Console.WriteLine(s.length); 输出是16我不知道为什么输出那样?

运算符as和generics类

我正在为CLR脚本编写.NET On-the-Fly编译器,并希望执行方法使得generics可接受: object Execute() { return type.InvokeMember(..); } T Execute() { return Execute() as T; /* doesn’t work: The type parameter ‘T’ cannot be used with the ‘as’ operator because it does not have a class type constraint nor a ‘class’ constraint */ // also neither typeof(T) not T.GetType(), so on are possible return (T) […]