首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 運算子多載:問題動機、成員方法實現、一元/二元多載、可/不可多載清單與笛卡兒座標範例

     編輯:關於C語言

運算子多載 讓自訂型別支援自然運算子語法(a + b 而非 a.Add(b)),提升可讀性與封裝性。

問題動機

  • 直接存取 a.X + b.X 需 public 欄位,破壞封裝。
  • 多載運算子封裝內部邏輯,介面乾淨。

實現機制

在類別內宣告 static 成員方法:public static ReturnType operator Op(Parameters)。

可多載運算子

  • 一元:+ - ! ~ ++ -- true false
  • 二元:+ - * / % & | ^ << >> == != > < >= <=

不可多載運算子

  • = && || ? : new typeof sizeof is

一元多載:角色升級 ++


public static Player operator ++(Player p) {
    p.Neili += 50; p.Tili += 100;
    p.NeiliR = p.Neili; p.TiliR = p.Tili;
    return p;
}
Player man = new Player(); man++; // 觸發升級邏輯

二元多載:笛卡兒座標相加


public static DKR operator +(DKR d1, DKR d2) {
    return new DKR(d1.X+d2.X, d1.Y+d2.Y, d1.Z+d2.Z);
}
DKR d3 = d1 + d2; // 自然語法
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved