第九部分 方法----读《Microsoft.NET框架程序设计》

    在C#中,我们使用implicit关键字来告诉编译器,在源代码中不必做显式的转型就可以产生调用转换操作符方法的代码;而使用explicit关键字来告诉编译器只有当源代码中指定了显式的转型时,才产生调用转换操作符方法的代码.

    在implicit或者explicit关键字后面,我们需要指定operator关键字来告诉编译器该方法是一个转换操作符.在operator关键字后面,我们还需要指定对象转型时的目标类型;而在括号内,则需要指定对象转型时的源类型.

    前面为Rational类型定义的转换操作符允许我们在C#中象下面这样来编写代码:

    class App{

             static void Main() {

                  Rational r1=5;                  //将Int32隐式转型为Rational

                  Rational r2=2.5F;            //Single隐式转型为Rational

                  Int32 x=(Int32)r1;             //将Rational显式转型为Int32

                 Single s=(Single) r1;      //将Rational显式转型为Single

                }

           }

        当C#编译器编译上面的代码时,它会检测到代码中的转型操作,并在内部产生调用Rational类型定义转换操作符方法的IL代码.这些方法的名称是什么呢?编译Rational类型并查看它的元数据,我们会看到编译器为每一个定义的转换操作符都产生了一个方法。对于Rational类型来讲,其4个转换操作符方法看起来就象下面的样子:

  public static Rational op_Implicit(Int32 numerator)

        public static Rational op_Implicit(Single value)

        public static Int32 op_Explicit(Rational r)

         public static Single op_Explicit(Rational r)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值