<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之旅 廣告
                # out 參數修飾符(C# 參考) **out** 關鍵字會導致參數通過引用來傳遞。這與 [ref](https://msdn.microsoft.com/zh-cn/library/14akc2c7.aspx) 關鍵字類似,不同之處在于 **ref** 要求變量必須在傳遞之前進行初始化。若要使用 **out** 參數,方法定義和調用方法都必須顯式使用 **out** 關鍵字。例如: ``` class OutExample { static void Method(out int i) { i = 44; } static void Main() { int value; Method(out value); // value is now 44 } } ``` 盡管作為 **out** 參數傳遞的變量不必在傳遞之前進行初始化,但被調用的方法需要在返回之前賦一個值。 盡管 **ref** 和 **out** 關鍵字會導致不同的運行時行為,但在編譯時并不會將它們視為方法簽名的一部分。因此,如果兩個方法唯一的區別是:一個接受 **ref** 參數,另一個接受 **out** 參數,則無法重載這兩個方法。例如,不會編譯下面的代碼: ``` class CS0663_Example { // Compiler error CS0663: "Cannot define overloaded // methods that differ only on ref and out". public void SampleMethod(out int i) { } public void SampleMethod(ref int i) { } } ``` 但是,如果一個方法采用 **ref** 或 **out** 參數,而另一個方法不采用這兩類參數,則可以進行重載,如下所示: ``` class OutOverloadExample { public void SampleMethod(int i) { } public void SampleMethod(out int i) { i = 5; } } ``` 屬性不是變量,因此不能作為 **out** 參數傳遞。 有關傳遞數組的信息,請參見[使用 ref 和 out 傳遞數組(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/szasx730.aspx)。 不能為以下方法使用 **ref** 和 **out** 關鍵字: * 異步方法,或者使用 [async](https://msdn.microsoft.com/zh-cn/library/hh156513.aspx) 修飾符,定義。 * 迭代器方法,包括一個 [將返回](https://msdn.microsoft.com/zh-cn/library/9k7k7cf0.aspx) 或 **yield break** 語句。 當希望方法返回多個值時,聲明 **out** 方法很有用。下面的示例使用 **out** 在一次方法調用中返回三個變量。請注意,第三個參數所賦的值為 Null。這樣使方法可以有選擇地返回值。 ``` class OutReturnExample { static void Method(out int i, out string s1, out string s2) { i = 44; s1 = "I've been returned"; s2 = null; } static void Main() { int value; string str1, str2; Method(out value, out str1, out str2); // value is now 44 // str1 is now "I've been returned" // str2 is (still) null; } } ``` ## 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) [方法參數(C# 參考)](https://msdn.microsoft.com/zh-cn/library/8f1hz171.aspx)
                  <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>

                              哎呀哎呀视频在线观看