c#使用者定義型別轉換
c#提供隱式轉換和顯式轉換
宣告隱式轉換的語法如下.注:所有使用者定義轉換必須使用public和static修飾符
public
static
implicit
operator targettype(sourcetype identifier)
targettype:目標型別
引數identitfier:源資料
例如,下面**使乙個int字面量被隱式轉換為limitedint物件,反過來limitedint也可以隱式轉換成乙個int
class limitedint
set
else}}
//隱式轉換:將limitedint物件轉為整型
public
static
implicit
operator
int(limitedint li)
//隱式轉換:將整型轉換為limitedint物件
public
static
implicit
operator limitedint(
int x)
}
class program
,value:
", li.thevalue, value);
console.readkey();
}
改**輸出結果:li:100,value:100
顯示轉換和強制轉換運算子
前面所講的都是隱式轉換,如果你把運算子implcit改為explicit,你將不得不在實行轉換時顯示使用轉換運算子
**片段如下:
//顯示
轉換:將limitedint物件轉為整型
public
static
explicit
operator
int(limitedint li)
//顯示
轉換:將整型轉換為limitedint物件
public
static
explicit
operator limitedint(
int x)
static
void main(
string args)
,value:
", li.thevalue, value);
console.readkey();
}
C 中使用者定義的轉換
看到 深度探索 c 物件模型 的第 21頁,在其談到 c struct 在c 中的乙個合理用途時,看到了 c 中使用者定義的轉換的運用。因而回頭將 c primer 中關於使用者定義的轉換的一些細節溫習了一下。1 使用者定義的轉換的必要性 我們希望能夠在 allint 物件和其他 allint 物件...
mysql型別轉換c 型別轉換 C 型別轉換
一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...
C 自定義型別強制轉換
舉乙個小例子 類定義 public class mycurrency public override string tostring dollars,cents 提供mycurrency到float的隱式轉換 public static implicit operator float mycurre...