<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # explicit(C# 參考) **explicit** 關鍵字用于聲明必須使用強制轉換來調用的用戶定義的類型轉換運算符。例如,在下面的示例中,此運算符將名為 Fahrenheit 的類轉換為名為 Celsius 的類: ``` // Must be defined inside a class called Fahrenheit: public static explicit operator Celsius(Fahrenheit fahr) { return new Celsius((5.0f / 9.0f) * (fahr.degrees - 32)); } ``` 可以如下所示調用此轉換運算符: ``` Fahrenheit fahr = new Fahrenheit(100.0f); Console.Write("{0} Fahrenheit", fahr.Degrees); Celsius c = (Celsius)fahr; ``` 轉換運算符將源類型轉換為目標類型。源類型提供轉換運算符。與隱式轉換不同,必須通過強制轉換的方式來調用顯式轉換運算符。如果轉換操作可能導致異常或丟失信息,則應將其標記為 **explicit**。這可以防止編譯器無提示地調用可能產生無法預見后果的轉換操作。 省略此強制轉換將導致編譯時錯誤 CS0266。 有關更多信息,請參見[使用轉換運算符(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/85w54y0a.aspx)。 下面的示例提供 Fahrenheit 和 Celsius 類,它們中的每一個都為另一個提供顯式轉換運算符。 ``` class Celsius { public Celsius(float temp) { degrees = temp; } public static explicit operator Fahrenheit(Celsius c) { return new Fahrenheit((9.0f / 5.0f) * c.degrees + 32); } public float Degrees { get { return degrees; } } private float degrees; } class Fahrenheit { public Fahrenheit(float temp) { degrees = temp; } // Must be defined inside a class called Fahrenheit: public static explicit operator Celsius(Fahrenheit fahr) { return new Celsius((5.0f / 9.0f) * (fahr.degrees - 32)); } public float Degrees { get { return degrees; } } private float degrees; } class MainClass { static void Main() { Fahrenheit fahr = new Fahrenheit(100.0f); Console.Write("{0} Fahrenheit", fahr.Degrees); Celsius c = (Celsius)fahr; Console.Write(" = {0} Celsius", c.Degrees); Fahrenheit fahr2 = (Fahrenheit)c; Console.WriteLine(" = {0} Fahrenheit", fahr2.Degrees); } } // Output: // 100 Fahrenheit = 37.77778 Celsius = 100 Fahrenheit ``` 下面的示例定義一個結構 Digit,該結構表示單個十進制數字。定義了一個運算符,用于將 byte 轉換為 Digit,但因為并非所有字節都可以轉換為 Digit,所以該轉換是顯式的。 ``` struct Digit { byte value; public Digit(byte value) { if (value > 9) { throw new ArgumentException(); } this.value = value; } // Define explicit byte-to-Digit conversion operator: public static explicit operator Digit(byte b) { Digit d = new Digit(b); Console.WriteLine("conversion occurred"); return d; } } class ExplicitTest { static void Main() { try { byte b = 3; Digit d = (Digit)b; // explicit conversion } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } } /* Output: conversion occurred */ ``` ## C# 語言規范 有關詳細信息,請參閱 [C# 語言規范](https://msdn.microsoft.com/zh-cn/library/ms228593.aspx)。該語言規范是 C# 語法和用法的權威資料。 ## 請參閱 [C# 參考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx) [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [C# 關鍵字](https://msdn.microsoft.com/zh-cn/library/x53a06bb.aspx) [implicit(C# 參考)](https://msdn.microsoft.com/zh-cn/library/z5z9kes2.aspx) [運算符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/s53ehcz3.aspx) [如何:在結構間實現用戶定義的轉換(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/zk2z37d3.aspx) [鏈接的用戶定義的顯式轉換在 C#](http://go.microsoft.com/fwlink/?LinkId=112384)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看