C# 运算符重载
C# 運(yùn)算符重載
C#運(yùn)算符重載函數(shù)必須是public static的
??? struct CSTest
??? {
??????? public int posx;
??????? public static CSTest operator + (CSTest o1, CSTest o2)
??????? {//二元運(yùn)算符重載
??????????? CSTest ost = new CSTest();
??????????? ost.posx = o1.posx + o2.posx;
??????????? return ost;
??????? }
??????? public static CSTest operator - (CSTest ot)
??????? {//一元運(yùn)算符重載
??????????? ot.posx = -ot.posx;
??????????? return ot;
??????? }
??? }
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? CSTest ostn1 = new CSTest();
??????????? CSTest ostn2 = new CSTest();
??????????? ostn1.posx = 1;
??????????? ostn2.posx = 2;
??????????? CSTest ostn3 = ostn1 + ostn2;
??????????? ostn3 = -ostn3;
??????????? Console.WriteLine(ostn3.posx);
??????? }
??? }
C++可以對(duì)[]進(jìn)行重載,而C#不可以對(duì)方括號(hào)重載但是提供了索引器的語(yǔ)法。
可重載和不可重載運(yùn)算符
下表描述了 C# 中運(yùn)算符重載的能力:
| +, -, !, ~, ++, -- | 這些一元運(yùn)算符只有一個(gè)操作數(shù),且可以被重載。 |
| +, -, *, /, % | 這些二元運(yùn)算符帶有兩個(gè)操作數(shù),且可以被重載。 |
| ==, !=, <, >, <=, >= | 這些比較運(yùn)算符可以被重載。 |
| &&, || | 這些條件邏輯運(yùn)算符不能被直接重載。 |
| +=, -=, *=, /=, %= | 這些賦值運(yùn)算符不能被重載。 |
| =, ., ?:, ->, new, is, sizeof, typeof | 這些運(yùn)算符不能被重載。 |
posted on 2016-10-03 12:27 時(shí)空觀察者9號(hào) 閱讀(...) 評(píng)論(...) 編輯 收藏
總結(jié)
- 上一篇: 【转】C# 正则表达式 使用介绍
- 下一篇: TortoiseGIT安装过程及问题