using system;
using system.collections.generic;
using system.text;
//使用者自定義轉換
//所有的使用者自定義轉換都是靜態的,要使用static關鍵字
//使用者自定義轉換分顯示和隱示,它們用implicit(隱式轉換)或 explicit(顯示轉換)關鍵字宣告。
//static 訪問修辭符 轉換修辭符 operator 轉換型別(引數)
namespace countstrdemo
class mycasedemo
// 與運算過載差區別, operator後跟著的是要轉成的型別,不是符號.同時也是本方法的返回型別
//還及是必須用implicit(隱式轉換)或 explicit(顯示轉換)關鍵字宣告。
public
static
implicit
operator
float(mycasedemo obj)
public
static
explicit
operator
int ( mycasedemo obj )}}
}using system;
using system.collections.generic;
using system.text;
namespace countstrdemo
}class b
class c : b
}class d : b
}// 類與類之前的轉換,不能轉換兩個直接或者簡介繼承的關係的類,
//在上例中 c->b d-b都是不對的,唯一的關係只有c->d或者d-c,但是,不可以在cd兩類中都定義轉換,否則會讓編譯器搞不清
自定義型別轉換
這裡說點平常不怎麼用的知識 也不建議在專案中執行,因為增加閱讀 成本 自定義型別轉換,有兩型別 一是型別間隱式轉換,一是型別間強制轉換。定義格式 訪問修飾符 static 轉換修飾操作符 operator 型別 引數列表 轉換修飾操作符 class myage public myage privat...
C 自定義型別強制轉換
舉乙個小例子 類定義 public class mycurrency public override string tostring dollars,cents 提供mycurrency到float的隱式轉換 public static implicit operator float mycurre...
自定義型別轉換函式
本文參考自 more effecitve c item5 謹慎定義型別轉換函式 自定義型別轉換函式有2種 1.隱式型別轉換運算子 2.單引數建構函式。隱式型別轉換運算子是乙個成員函式 operator其後跟乙個型別和符號 不用定義函式的返回型別,因為返回型別就是這個函式的名字。單引數建構函式是指只用...