记录一下在日常开发过程中遇到的一些C# 基础编程的知识!希望以后能用的着。知识是在平常的开发过程中去学到的。只有用到了,你才能深入的理解它,并用好它。

本资料来源于:MSND下面是一些相关的code 和 说明

C# is 关键字: 检查对象是否与给定类型相互兼容。

  C# Keywords - is 的使用

例如,下面的代码可以确定 obj对象是否为 MyObject 类型的一个实例,或者obj对象是否为从 MyObject 派生的一个类型:

 
 这里有三种情况:
1、obj 对象就是指定类型的实例。 所以表达式是true
2、obj 对象是指定类型的基类,也就是MyObject : obj    表达式为 true
3、obj 对象与指定类型不兼容,那么表达式返回的是false.
if (obj is MyObject)
{
} 详细说明:

如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。

如果已知表达式将始终是 true 或始终是 false,则 is 关键字将导致编译时警告,但是,通常在运行时才计算类型兼容性。

不能重载 is 运算符。

请注意,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.
*/

最新文章

  1. JS中定义对象原型的两种使用方法
  2. Linux学习之路—Linux文件与目录管理
  3. JPA查询语句(转载)
  4. vsphere平台为win系统动态扩展磁盘
  5. javascript平时小例子⑥(简易计算器的制作)
  6. MYSQL #1064错误
  7. 笔记本安装Win2012R2 心得(包含无线网卡+有线网卡驱动解决方法)
  8. margin的重叠现象
  9. Android 通过广播启动另一个应用的Activity
  10. (转载)AS3中的mouseEnabled与mouseChildren
  11. Android Project from Existing Code 生成 R 文件错误、失败等问题解决办法 - 持续更新
  12. 用了 CSDN 的 markdown 编辑器吐槽下~~
  13. unity多边形uv地图
  14. asp.net mvc ajax提交模型到控制器
  15. C# 在异步线程操作类的变量
  16. 设置和取消git代理
  17. Java中返回类型方法名
  18. BZOJ1299 巧克力棒
  19. python爬虫 scrapy框架(一)爬取壁纸照片
  20. Boost学习-Linuxidc上的很好的学习资料

热门文章

  1. Android网络编程随想录(1)
  2. Windows系统开发常用类-------------Environment类
  3. sql中数据库连接与断开式连接有什么区别?
  4. Wireshark抓本地回环
  5. java函数式编程之lambda表达式
  6. 我的C++笔记(函数部分)
  7. jq遍历 下拉框
  8. 微信App支付:微信支付的appid,appsecret,商户号mch_id,微信交易支付密钥(mch_key)在哪里查看
  9. 洛谷P1654 OSU!_概率与期望
  10. 路飞学城Python-Day140