這基本上是一個教程的問題要問,因爲我是新手,我想是我們用在我們的C#代碼開始,包括裝配和命名空間C#中的using語句和指令有什麼區別?
這樣using語句之間的差異:
using System.Web.Services;
當我們在代碼內寫入代碼或方法時。 這樣的:
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
有什麼不同,或者它們兩者是相同的,任何指導將是有益的和讚賞。
這基本上是一個教程的問題要問,因爲我是新手,我想是我們用在我們的C#代碼開始,包括裝配和命名空間C#中的using語句和指令有什麼區別?
這樣using語句之間的差異:
using System.Web.Services;
當我們在代碼內寫入代碼或方法時。 這樣的:
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
有什麼不同,或者它們兩者是相同的,任何指導將是有益的和讚賞。
first (Using Directive)將使命名空間進入範圍。
這是例如,這樣就可以寫
StringBuilder MyStringBuilder = new StringBuilder();
而非
System.Text.StringBuilder MyStringBuilder = new System.Text.StringBuilder();
的second (Using Statement)一個用於正確地使用(創建和處置)實現IDisposable接口的對象。
例如:
using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
這裏,Font
類型實現IDisposable
,因爲它使用unmanaged resources需要被correctly disposed of當我們使用Font
實例(font1
)沒有更長的時間。
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
此使用處置適配器對象自動一旦控制離開使用塊。
這相當於通話
SqlDataAdapter adapter = new SqlDataAdapter(cmd)
adapter.dispose();
見本官方文檔: http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.71).aspx
他們對不同的,你可以得到。
第一個顯示意圖使用命名空間內的東西。
第二花費的一次性對象的引用,並確保其設置,無論發生什麼事情(如執行的try /終於)
第一個允許您使用未在代碼中定義的類型(告訴編譯器在哪裏可以找到它需要引用的代碼 REF:http://msdn.microsoft.com/en-us/library/sf0df423(v=VS.100).aspx
第二次使用確保在代碼塊結束時釋放內存,或者發生異常。 REF:http://msdn.microsoft.com/en-us/library/yh598w02.aspx
請參閱上面的鏈接瞭解每個的詳細文檔。
我確定有人會花很多時間回答Google搜索的相關內容,但這裏有幾個鏈接可幫助您入門。
using Statement (C# Reference)確保即使在調用對象的方法時發生異常,也會調用Dispose。
要允許在名稱空間中使用類型,以便您不必限定該名稱空間中使用的類型,請使用using Directive (C# Reference)。
您可能會發現MSDN是花費一些時間瀏覽的好資源。
令人驚訝的是很難找到這個問題的重複。 – BoltClock
第一個是['using'指令](http://msdn.microsoft.com/en-us/library/sf0df423.aspx),允許您在不使用完全限定名的情況下訪問特定命名空間中定義的類型。第二個是['using'語句](http://msdn.microsoft.com/en-us/library/yh598w02.aspx),允許您輕鬆處理一次性對象。 –
注意'using namespace'是一個「using directive」而不是一個語句。當你從初學者轉向並對精確定義感興趣時(例如在語言規範中),這會有所不同。 – Richard