ylbtech-LanguageSamples-UserConversions(用户定义的转换)
| ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-UserConversions(用戶定義的轉(zhuǎn)換) |
?
| 1.A,示例(Sample) 返回頂部 |
“用戶定義的轉(zhuǎn)換”示例
本示例演示如何定義與類或結(jié)構(gòu)之間的轉(zhuǎn)換,以及如何使用此類轉(zhuǎn)換。有關(guān)更多信息,請(qǐng)參見轉(zhuǎn)換運(yùn)算符(C# 編程指南) 。
| 提供此代碼示例是為了闡釋一個(gè)概念,它并不代表最安全的編碼實(shí)踐,因此不應(yīng)在應(yīng)用程序或網(wǎng)站中使用此代碼示例。對(duì)于因?qū)⒋舜a示例用于其他用途而出現(xiàn)的偶然或必然的損害,Microsoft 不承擔(dān)任何責(zé)任。 |
在 Visual Studio 中生成并運(yùn)行“用戶定義的轉(zhuǎn)換”示例
在“解決方案資源管理器”中,右擊“Conversion1”項(xiàng)目并單擊“設(shè)為啟動(dòng)項(xiàng)目”。
在“調(diào)試”菜單上,單擊“開始執(zhí)行(不調(diào)試)”。
對(duì) Conversion2 重復(fù)上述步驟。
從命令行生成并運(yùn)行“用戶定義的轉(zhuǎn)換”示例
使用“更改目錄”命令轉(zhuǎn)到“Conversion1”目錄。
鍵入以下命令:
| csc conversion.cs conversion |
使用“更改目錄”命令轉(zhuǎn)到“Conversion2”目錄。
鍵入以下命令:
| csc structconversion.cs structconversion |
| 1.B,Conversion1 示例代碼(Sample Code)返回頂部 |
1.B.1, conversion.cs
// 版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。 // 此代碼的發(fā)布遵從 // Microsoft 公共許可(MS-PL,http://opensource.org/licenses/ms-pl.html)的條款。 // //版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。// conversion.cs using System;struct RomanNumeral {public RomanNumeral(int value) { this.value = value; }// 聲明從 int 到 RomanNumeral 的轉(zhuǎn)換。請(qǐng)注意// operator 關(guān)鍵字的使用。這是名為 // RomanNumeral 的轉(zhuǎn)換運(yùn)算符:static public implicit operator RomanNumeral(int value) {// 請(qǐng)注意,由于 RomanNumeral 聲明為結(jié)構(gòu),// 因此對(duì)該結(jié)構(gòu)調(diào)用 new 只是調(diào)用構(gòu)造函數(shù)// 而不是在堆上分配對(duì)象:return new RomanNumeral(value);}// 聲明從 RomanNumeral 到 int 的顯式轉(zhuǎn)換:static public explicit operator int(RomanNumeral roman){return roman.value;}// 聲明從 RomanNumeral 到// string 的隱式轉(zhuǎn)換:static public implicit operator string(RomanNumeral roman){return("Conversion not yet implemented");}private int value; }class Test {static public void Main(){RomanNumeral numeral;numeral = 10;// 調(diào)用從 numeral 到 int 的顯式轉(zhuǎn)換。由于是顯式轉(zhuǎn)換, // 因此必須使用強(qiáng)制轉(zhuǎn)換:Console.WriteLine((int)numeral);// 調(diào)用到 string 的隱式轉(zhuǎn)換。由于沒有 // 強(qiáng)制轉(zhuǎn)換,到 string 的隱式轉(zhuǎn)換是可以考慮的 // 唯一轉(zhuǎn)換: Console.WriteLine(numeral);// 調(diào)用從 numeral 到 int 的顯式轉(zhuǎn)換, // 然后調(diào)用從 int 到 short 的顯式轉(zhuǎn)換:short s = (short)numeral;Console.WriteLine(s);} } View Code1.B.2,
1.B.EXE,
10 Conversion not yet implemented 10 請(qǐng)按任意鍵繼續(xù). . .1.B
| 1.B,Conversions2 示例代碼2(Sample Code)返回頂部 |
1.B.1, structconversion.cs
// 版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。 // 此代碼的發(fā)布遵從 // Microsoft 公共許可(MS-PL,http://opensource.org/licenses/ms-pl.html)的條款。 // //版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。// structconversion.cs using System;struct RomanNumeral {public RomanNumeral(int value) {this.value = value; }static public implicit operator RomanNumeral(int value){return new RomanNumeral(value);}static public implicit operator RomanNumeral(BinaryNumeral binary){return new RomanNumeral((int)binary);}static public explicit operator int(RomanNumeral roman){return roman.value;}static public implicit operator string(RomanNumeral roman) {return("Conversion not yet implemented");}private int value; }struct BinaryNumeral {public BinaryNumeral(int value) {this.value = value;}static public implicit operator BinaryNumeral(int value){return new BinaryNumeral(value);}static public implicit operator string(BinaryNumeral binary){return("Conversion not yet implemented");}static public explicit operator int(BinaryNumeral binary){return(binary.value);}private int value; }class Test {static public void Main(){RomanNumeral roman;roman = 10;BinaryNumeral binary;// 執(zhí)行從 RomanNumeral 到// BinaryNumeral 的轉(zhuǎn)換:binary = (BinaryNumeral)(int)roman;// 執(zhí)行從 BinaryNumeral 到 RomanNumeral 的轉(zhuǎn)換。// 不需要任何強(qiáng)制轉(zhuǎn)換:roman = binary;Console.WriteLine((int)binary);Console.WriteLine(binary);} } View Code1.B.2,
1.B.EXE,
10 Conversion not yet implemented 請(qǐng)按任意鍵繼續(xù). . .1.B,
| 1.C,下載地址(Free Download)返回頂部 |
?
| 作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。 |
轉(zhuǎn)載于:https://www.cnblogs.com/ylbtech/p/4197415.html
總結(jié)
以上是生活随笔為你收集整理的ylbtech-LanguageSamples-UserConversions(用户定义的转换)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi APP 開發入門(五)GP
- 下一篇: jQuery命名空间,插件开发