<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # out(C# 參考) 你可以在兩個上下文(每個都是指向詳細信息的鏈接)中使用 **out** 上下文關鍵字作為[參數修飾符](https://msdn.microsoft.com/zh-cn/library/ee332485.aspx),或在接口和委托中使用[泛型類型參數聲明](https://msdn.microsoft.com/zh-cn/library/dd469487.aspx)。本主題討論參數修飾符,但你可以參閱[其他主題](https://msdn.microsoft.com/zh-cn/library/dd469487.aspx)了解關于泛型類型參數聲明的信息。 **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) 修飾符定義。 * 迭代器方法,包括 [yield return](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# 參考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.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>

                              哎呀哎呀视频在线观看