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