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