记录一下在平常开发过程当中遇到的一些C# 基础编程的知识!但愿之后能用的着。知识是在日常的开发过程当中去学到的。只有用到了,你才能深刻的理解它,并用好它。express
本资料来源于:MSND下面是一些相关的code 和 说明编程
C# is 关键字: 检查对象是否与给定类型相互兼容。 ide
C# Keywords - is 的使用ui
例如,下面的代码能够肯定 obj对象是否为 MyObject 类型的一个实例,或者obj对象是否为从 MyObject 派生的一个类型:lua
if (obj is MyObject) { }
详细说明:
若是所提供的表达式非空,而且所提供的对象能够强制转换为所提供的类型而不会致使引起异常,则 is 表达式的计算结果将是 true。spa
若是已知表达式将始终是 true 或始终是 false,则 is 关键字将致使编译时警告,可是,一般在运行时才计算类型兼容性。3d
不能重载 is 运算符。code
请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。 不考虑其余转换,如用户定义的转换。对象
在 is 运算符的左侧不容许使用匿名方法。 lambda 表达式属于例外。继承
示例:
class Class1 {}
class Class2 {}
class Class3 : Class2 { }
class IsTest
{
static void Test(object o)
{
Class1 a;
Class2 b;
if (o is Class1)
{
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); // 由于class3 继承class2 ,或这么理解: class2 是class3的基类。 在用is 关键字的时候。它会返回true.
Test("a string");
}
}
/*
Output:
o is Class1
o is Class2
o is Class2
o is neither Class1 nor Class2.
*/