关闭

(五)C#之运算符

标签: 运算符重载is运算符as运算符
541人阅读 评论(0) 收藏 举报
分类:

C#两种特别的运算符

is运算符

这个运算符主要用来检测某变量的类型是否有特定的类型相兼容
我们看一下下面的一个示例:

        public static void Main()
        {
            String str = "";
            if (str is Object)
            {
                Console.WriteLine(str.GetType() + "与该类型是兼容的");
            }else{
                Console.WriteLine(str.GetType() + "与该类型是不兼容的");
            }
        }

程序会输出System.String 与该类型的兼容的
如果把上面的Object改成Double那么输出会输出不兼容了!

as运算符

这个运算符主要用来将引用类型进行显式的类型转换
注意:

  • 如果要转换的变量的类型与指定的类型相兼容,转换就会成功进行;
  • 如果不兼容,那么返回值的就是 null;
  • as关键字只能作用于引用类型或者可以为null的类型(比如Double等就不可以啦);
    由于上面的第三条规则,所以这个运算符基本就没啥用处了。常见的类型除了 String string Object 和 object之外就基本没有了。

运算符重载

我先既然都讲到这里了,就再讲一下运算符重载吧(一般学过C++的都知道这个,学Java的可能就没听过了)!
看下面的一个小例子:

    class Count {
        public int num;//该类中只有一个参数
        public Count(int num) {//初始化参数
            this.num = num;
        }
        public static Count operator +(Count c1,Count c2){//将 + 进行重载,传入俩参数
            return new Count(c1.num+c2.num);//返回新的Count实例
        }
    }
    class Test { 
        public static void Main(){
            Count c1 = new Count(2);
            Count c2 = new Count(4);
            Count c3 = c1 + c2;
            Console.WriteLine("c3中num值为:"+c3.num);//输出 6
        }
    }

上面就是一个最基本的重载了,大家可以对照着去实现 - * / 等等。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:80493次
    • 积分:1957
    • 等级:
    • 排名:千里之外
    • 原创:125篇
    • 转载:0篇
    • 译文:0篇
    • 评论:74条
    快速链接
    博客专栏
    最新评论