C 中的自定義型別轉換

2021-04-21 19:02:19 字數 895 閱讀 6822

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其後跟乙個型別和符號 不用定義函式的返回型別,因為返回型別就是這個函式的名字。單引數建構函式是指只用...