【原创】c#语法备忘

1、操作符重载

a、构造器转换——将一个类型值显示或隐式赋给另一个类型

将Nullable类型转换为ValueTypepublic static explicit operator T(T? value)
{
    return value.Value;
}

 

 

将ValueType类型转换为Nullablepublic static implicit operator T?(T value)
{
      return new T?(value);
}

 

b、操作符重载

函数将被编译器翻译为特定名称函数,必须为static、public

操作符重载示例public static int operator +(Truck t1, Truck t2)
        {
            return t1.capacity + t2.capacity;
        }

        public static Truck operator ++ (Truck t)
        {
            t.Capacity++;
            return t;
        }

        public static bool operator ==(Truck t1, Truck t2)
        {
            if (t1.Capacity == t2.Capacity)
                return true;
            return false;
        }

        public static bool operator !=(Truck t1, Truck t2)
        {
            if (t1.Capacity == t2.Capacity)
                return false;
            return true;
        }

        //负号
        public static Truck operator -(Truck t)
        {
            return new Truck(-t.Capacity);
        }

        //减号
        public static Truck operator -(Truck t1, Truck t2)
        {
            return new Truck(t1.Capacity-t2.Capacity);
        }

 

 

2、Nullable值的操作

Nullable类型是继承于ValueType的类型,内含两个字段,一个是hasValue,一个是value

Nullable值的使用int? a = 5;
            double? b = null ;
            Console.WriteLine("a={0}, b={1}", a, b);

 

空接合符 ??

空接合符int? a = null;
            int? b = 5;
            Console.WriteLine(a??10);
            Console.WriteLine(b ?? 100);

上例输出:

image

 

3、泛型委托

泛型委托示例public delegate T Callback<T>(T t) where T : Truck;

        static void Main()
        {
            Callback<Truck> c = null;
            c += delegate(Truck t) { Console.WriteLine(t); return t; };
            c(new Truck(100));
        }

 

 

转载于:https://www.cnblogs.com/lina/archive/2010/04/01/1702364.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值