10个鲜为人知的C#关键字
2010-09-30 21:05:59 来源:WEB开发网在2.0版本上跑的程序也可以使用var关键字,但是需要你的编译器是3.0以上版本并且设置代码输出版本为2.0:
var i = 10; // implicitly typed
int i = 10; //explicitly typed
MSDN链接:http://msdn.microsoft.com/en-us/library/bb383973.aspx
using()
定义一个范围,在范围外的对象将会被回收:
using (C c = new C())
{
c.UseLimitedResource();
}
MSDN链接:http://msdn.microsoft.com/en-us/library/yh598w02%28VS.80%29.aspx
readonly
readonly关键字是一个可作用在变量域上的修饰符,当一个变量域被readonly修饰后,这个变量只可在声明或者当前变量所属类的构造器内赋值。
MSDN链接:http://msdn.microsoft.com/en-us/library/acdd6hb7%28VS.80%29.aspx
as
as操作符很像一个类型转换器,然和,当转换无法发生时(译者按:比如类型不匹配),as会返回null而不是抛出一个异常:
class Class1{ }
classClass2{ }
classClass3: Class2{ }
classIsTest
{
static voidTest(objecto)
{
Class 1a;
Class 2b;
if(o isClass1)
{
Console.WriteLine("o is Class1");
a = (Class1)o;
// Do something with "a."
}
else if (o is Class2)
{
Console.WriteLine("o is Class2");
b = (Class2)o;
// Do something with "b."
}
else
{
Console.WriteLine("o is neither Class1 nor Class2.");
}
}
static void Main()
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
Class3 c3 = new Class3();
Test(c1);
Test(c2);
Test(c3);
Test("a string");
}
}
/*
Output:
o is Class1
o is Class2
o is Class2
o is neither Class1 nor Class2.
*/
更多精彩
赞助商链接