熟悉c++的人看到using就想到引用命名空間,當然在c#中也一樣。
但同時c#中的using比c++中的多了兩項功能,下面詳細說明。
第一種用法:using + 命名空間
這種用法跟c++的一樣,引用乙個命名空間,這樣在程式裡就可以直接引用命名空間裡的型別,而不用詳細指定其完整路徑。
例如:using system;
這樣當呼叫system.write()時就可以直接寫write()就可以了。
第二種用法:using + 別名 = 具體命名空間的型別
這種用法主要是用於當某一型別所在的命名空間的路徑過長,這樣可以使應用剛型別更加方便。
而且當引用的兩個命名空間中具有相同類名的兩個類時,只要為他們定義不同的類名就可以了。
例如:using system;
using aclass = namespace1.myclass;
using bclass = namespace2.myclass;
namespace namespace1
}
}
namespace namespace2
}
}
namespace testusing
}
}
第三種用法:
using (class1 c = new class1())
用於強制資源清理,清理非託管資源,不受gc控制的資源。using結束後會隱式的呼叫disposable方法。
當在某個**段中使用了類的例項,而希望無論因為什麼原因,只要離開了這個**段就自動呼叫這個類例項的dispose。要達到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很方便。但是要注意,當物件使用using關鍵字的時候,必須實現idisposable介面。
上面語句相當於:
class1 c = new class1();
try
catch()
finally
使用using的乙個例子:
class c : idisposable
void idisposable.dispose()
}
class program
console.writeline("now outside using statement.");
console.readline();
}
}
C 中using的三種用法
using 指令有兩個用途 using關鍵字還用來建立using 語句定義乙個範圍,將在此範圍之外釋放乙個或多個物件。請參見 using 語句。http www.yaosansi.com blog article.asp?id 669 using namespace using alias type...
C 中 的三種用法
可null型別修飾符 對於一些不能為null的型別可以通過?的修飾使其為null。其中user?id可以很方便的來查詢例項的屬性的值而不用預先判斷例項是否為null。三元表示式 int value 1 1 1 0 判斷1 1返回true還是false,返回true就返回1,返回false就返回0 n...
C 中new三種用法
new operator new的表示式 string str new string abcde 既分配記憶體也初始化物件 operator new new的操作符 void buff operator new sizeof string 類似於malloc 只分配空間不進行初始化 placemen...