| 運算子簽章 | 適用型別 |
int operator +(int, int) | int |
uint operator +(uint, uint) | uint |
long operator +(long, long) | long |
ulong operator +(ulong, ulong) | ulong |
float operator +(float, float) | float |
double operator +(double, double) | double |
decimal operator +(decimal, decimal) | decimal |
IEEE 754 特殊值規則(浮點數)
表 7-2 定義所有組合:
x + y 同號無限大 → 同號無限大
+∞ + (-∞) → NaN
有限值 + 0 → 有限值
- 結果太小無法表示 → 同號
0
- 含
NaN → NaN
列舉加法
E operator +(E x, U y); // U 為 E 的底層型別
E operator +(U x, E y);
// 等價於 (E)((U)x + (U)y)
範例:Weekday.Sunday + 6 → Weekday.Saturday(底層值 0+6=6)。
字串串接
string operator +(string, string);
string operator +(string, object);
string operator +(object, string);
// "Welcome" + " to you" → "Welcome to you"
注意:null + "abc" → "abc",非丟擲例外。
委派合併
D operator +(D x, D y); // D 為委派型別
// x 為 null → 回傳 y;y 為 null → 回傳 x
// 否則回傳新委派,呼叫串列包含 x 與 y 的呼叫清單
程式碼驗證
enum Weekday { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }
Weekday d1 = Weekday.Sunday, d2 = Weekday.Saturday;
Weekday d3 = d1 + 6; // 6
Console.WriteLine(d3); // 輸出 6 (Saturday)
- 上一篇文章: C# 運算子與運算式基礎:分類、優先序與語法結構
- 下一篇文章: C# 算術運算子與算術運算式:五大運算子、求值順序與求模規則
Copyright ©
程式碼之家 All Rights Reserved