你需要知道的隱式轉換操作符

2021-05-23 08:46:17 字數 2483 閱讀 7518

首先大家來看下面這一行**
xnamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";

我們需要構造乙個xnamespace物件,按一般的習慣,我們需要new(…..)對吧,但是為什麼可以直接將乙個字串給賦值過去呢?

其實這就是隱式轉換操作符 ,請看下面的**實現

using system;

namespace system.xml.linq

//// 摘要:

// 獲取不與命名空間對應的 system.xml.linq.xnamespace 物件。

//// 返回結果:

// 不與命名空間對應的 system.xml.linq.xnamespace。

public

static xnamespace none

//// 摘要:

// 獲取與 xml uri (http://www.w3.org/xml/1998/namespace) 對應的 system.xml.linq.xnamespace

// 物件。

//// 返回結果:

// 與 xml uri (http://www.w3.org/xml/1998/namespace) 對應的 system.xml.linq.xnamespace。

public

static xnamespace xml

//// 摘要:

// 獲取與 xmlns uri (http://www.w3.org/2000/xmlns/) 對應的 system.xml.linq.xnamespace

// 物件。

//// 返回結果:

// 與 xmlns uri (http://www.w3.org/2000/xmlns/) 對應的 system.xml.linq.xnamespace。

public

static xnamespace xmlns

// 摘要:

// 確定指定的 system.xml.linq.xnamespace 是否等於當前的 system.xml.linq.xnamespace。

//// 引數:

// obj:

// 要與當前 system.xml.linq.xnamespace 進行比較的 system.xml.linq.xnamespace。

//// 返回結果:

// 乙個 system.boolean,指示指定的 system.xml.linq.xnamespace 是否等於當前的 system.xml.linq.xnamespace。

public

override

bool equals(object obj);

//// 摘要:

// 獲取指定的統一資源識別符號 (uri) 的 system.xml.linq.xnamespace。

//// 引數:

// namespacename:

// 乙個包含命名空間 uri 的 system.string。

//// 返回結果:

// 從指定的 uri 建立的 system.xml.linq.xnamespace。

public

static xnamespace get(string namespacename);

//// 摘要:

// 獲取此 system.xml.linq.xnamespace 的雜湊**。

//// 返回結果:

// 乙個 system.int32,其中包含 system.xml.linq.xnamespace 的雜湊**。

public

override

int gethashcode();

//// 摘要:

// 返回從此 system.xml.linq.xnamespace 和指定的本地名稱建立的 system.xml.linq.xname 物件。

//// 引數:

// localname:

// 乙個包含本地名稱的 system.string。

//// 返回結果:

// 從此 system.xml.linq.xnamespace 和指定的本地名稱建立的 system.xml.linq.xname。

public xname getname(string localname);

//// 摘要:

// 返回此 system.xml.linq.xnamespace 的 uri。

//// 返回結果:

// 此 system.xml.linq.xnamespace 的 uri。

public

override

string tostring();

}}

隱式型別轉換 與 隱式型別轉換操作符

1 考慮下面的情況 有個person類,內部有個age欄位。正常情況下,定義和賦值為 person p person 8 p person 9 但是有個傢伙很懶,他想這麼寫 person p 8 p 9 這樣寫也是可以的,因為編譯器知道你的意圖,執行的時候會進行一次隱式型別轉換,中間適配乙個臨時物件...

C 隱式型別轉換操作符

前幾天看mfc時碰到了乙個讓我困惑不已的問題 cdc rectangle的某乙個原型如下 bool rectangle lpcrect lprect 其中lpcrect是const rect 但是諸如如下所示的呼叫也能通過編譯 mydc.rectangle crect p1,p2 其中crect是r...

C 中操作符,顯示和隱式轉換

定義乙個人民幣結構。資料型別轉換的語法對於結構和類是一樣的 public struct rmb if jiao 9 this.yuan yuan this.jiao jiao this.fen fen public override string tostring 元角分 yuan,jiao,fen...