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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # using 語句(C# 參考) 提供能確保正確使用 [IDisposable](https://msdn.microsoft.com/zh-cn/library/system.idisposable.aspx) 對象的方便語法。 下面的示例演示如何使用 using 語句。 ``` using (Font font1 = new Font("Arial", 10.0f)) { byte charset = font1.GdiCharSet; } ``` ## 備注 [File](https://msdn.microsoft.com/zh-cn/library/system.io.file.aspx) 和 [Font](https://msdn.microsoft.com/zh-cn/library/system.drawing.font.aspx) 是訪問非托管資源(本例中為文件句柄和設備上下文)的托管類型的示例。有許多其他類別的非托管資源和封裝這些資源的類庫類型。所有這些類型都必須實現 [IDisposable](https://msdn.microsoft.com/zh-cn/library/system.idisposable.aspx) 接口。 按照規則,當使用 **IDisposable** 對象時,應在 **using** 語句中聲明和實例化此對象。 using 語句按照正確的方式調用對象上的 [Dispose](https://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose.aspx) 方法,并(在您按照前面所示方式使用它時)會導致在調用 [Dispose](https://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose.aspx) 時對象自身離開作用域。 在 using 塊中,對象是只讀的并且無法修改或重新賦值。 using 語句確保即使在調用對象上的方法時發生異常[Dispose](https://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose.aspx)方法也會被調用。 可通過將對象放入 try 塊中并在finally 塊中調用[Dispose](https://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose.aspx)來達到同樣的結果;實際上,這就是編譯器轉換 using 語句的方式。 前面的代碼示例在編譯時將擴展為以下代碼(請注意,使用額外的大括號為對象創建限制范圍): ``` { Font font1 = new Font("Arial", 10.0f); try { byte charset = font1.GdiCharSet; } finally { if (font1 != null) ((IDisposable)font1).Dispose(); } } ``` 如下面的示例所示,可以在 **using** 語句中聲明一個類型的多個實例。 ``` using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f)) { // Use font3 and font4. } ``` 可以實例化資源對象,然后將變量傳遞給 **using** 語句,但這不是最佳做法。在這種情況下,該對象將在控制權離開 **using** 塊之后保持在范圍內,即使它可能將不再具有對其非托管資源的訪問權也是如此。 換句話說,它將不再是完全初始化的。 如果嘗試在 **using** 塊外部使用該對象,則可能導致引發異常。 由于這個原因,通常最好是在 using 語句中實例化該對象并將其作用域限制到using塊中。 ``` Font font2 = new Font("Arial", 10.0f); using (font2) // not recommended { // use font2 } // font2 is still in scope // but the method call throws an exception float f = font2.GetHeight(); ``` ## 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) [using 指令(C# 參考)](https://msdn.microsoft.com/zh-cn/library/sf0df423.aspx) [Garbage Collection](https://msdn.microsoft.com/zh-cn/library/0xy59wtx.aspx) [Implementing a Dispose Method](https://msdn.microsoft.com/zh-cn/library/fs2xkftw.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>

                              哎呀哎呀视频在线观看