.NET 指南:转换操作符
轉(zhuǎn)換操作符用來把一個對象從一種類型轉(zhuǎn)換到另外一種類型。轉(zhuǎn)換操作符可以是隱式的也可以是明確的。隱式的轉(zhuǎn)換操作符不需要在源代碼中指定一個類型轉(zhuǎn)換來完成轉(zhuǎn)換任務(wù)。而明確的轉(zhuǎn)換操作符則需要在源代碼中呈現(xiàn)一個類型轉(zhuǎn)換來完成轉(zhuǎn)換任務(wù)。
下列簽名說明了 Point 類用來在 Point 和 Size 之間進行轉(zhuǎn)換的明確的轉(zhuǎn)換操作符。
public static Size op_Explicit( Point p );如果這種轉(zhuǎn)換不是被終端用戶所明確期待的,不要提供一個轉(zhuǎn)換操作符。
理想地,對于消費者的數(shù)據(jù)調(diào)查應(yīng)該存在一個轉(zhuǎn)換操作符的定義支持。另外,操作符的定義支持也能夠以需要進行這種轉(zhuǎn)換的一個或多個相似類型的范例形式而出現(xiàn)。
不要在類型的域空間之外定義轉(zhuǎn)換操作符。
例如,Int32、Double,以及 Decimal 都是數(shù)字類型,而 DateTime 則不是。那么把一個 Double 類型轉(zhuǎn)換到一個 DateTime 類型的操作就不應(yīng)該被實現(xiàn)成一個操作符轉(zhuǎn)換。而是使用一個構(gòu)造器來把一種類型轉(zhuǎn)換到另外一種不在相同域空間中的類型。
如果轉(zhuǎn)換操作存在有潛在的損耗,就不要提供一個隱式的轉(zhuǎn)換操作符。
例如,從 Double 到 Single 的轉(zhuǎn)換就不應(yīng)該是一個隱式的轉(zhuǎn)換操作,因為 Double 要比 Single 擁有更高的精確度。應(yīng)該能夠為有損耗的轉(zhuǎn)換操作提供一個明確的轉(zhuǎn)換操作符。
不要從隱式的轉(zhuǎn)換中拋出異常。
隱式的轉(zhuǎn)換通過系統(tǒng)而被調(diào)用;用戶也許并不知道轉(zhuǎn)換已經(jīng)發(fā)生并且代碼也將是難以調(diào)試的。
如果調(diào)用轉(zhuǎn)換操作符而導(dǎo)致了有損耗的轉(zhuǎn)換并且操作符的約定并不允許有損耗的轉(zhuǎn)換的時候,不要拋出 System.InvalidCastException 異常。
轉(zhuǎn)載于:https://www.cnblogs.com/Laeb/archive/2007/02/01/637393.html
總結(jié)
以上是生活随笔為你收集整理的.NET 指南:转换操作符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再见了,鱼儿
- 下一篇: [导入].Net2.0 使用Config