C语言

c#运算符关键字is的使用

时间:2024-10-30 22:34:04 C语言 我要投稿
  • 相关推荐

c#运算符关键字is的使用

  引导语:C语言把除了控制 语句和输入输出以外的几乎所有的基本操作都作为运算符处理,以下是小编整理的c#运算符关键字is的使用,欢迎参考阅读!

  检查对象是否与给定类型兼容。例如,下面的代码可以确定对象是否为 MyObject 类型的一个实例,或者对象是否为从 MyObject 派生的一个类型:

  if (obj is MyObject)

  {

  }

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

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

  不能重载 is 运算符。

  请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。

  在 is 运算符的左侧不允许使用匿名方法。lambda 表达式属于例外。

  示例

  C#

  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);

      Test("a string");

    }

  }

  /*

  Output:

  o is Class1

  o is Class2

  o is Class2

  o is neither Class1 nor Class2.

  */

《c#运算符关键字is的使用.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【c#运算符关键字is的使用】相关文章:

c#查询关键字之group子句的使用09-07

Java中运算符的使用10-17

java的import关键字的使用08-17

c#中预处理指令#if的使用08-18

c#检测cpu使用率09-01

Java编程中this关键字与super关键字的使用方法08-23

PHP三元运算符的使用方法技巧09-07

Java运算符10-04

浅谈C#语言的特点11-01

Java“异或” 运算符08-17

c#运算符关键字is的使用

  引导语:C语言把除了控制 语句和输入输出以外的几乎所有的基本操作都作为运算符处理,以下是小编整理的c#运算符关键字is的使用,欢迎参考阅读!

  检查对象是否与给定类型兼容。例如,下面的代码可以确定对象是否为 MyObject 类型的一个实例,或者对象是否为从 MyObject 派生的一个类型:

  if (obj is MyObject)

  {

  }

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

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

  不能重载 is 运算符。

  请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。

  在 is 运算符的左侧不允许使用匿名方法。lambda 表达式属于例外。

  示例

  C#

  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);

      Test("a string");

    }

  }

  /*

  Output:

  o is Class1

  o is Class2

  o is Class2

  o is neither Class1 nor Class2.

  */