VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之转换操作符方法(非基元类型转换)

当源类型与目标类型不是基元类型时CLR便不能自己进行编译转换。

下例为Rational(有理数类型)与string,int的转化。

转换操作符是将对象从一个类型转化成另一个类型的方法。可以使用特殊语法来定义装换操作符方法。

CLR要求转换操作符的重载方法必须是public 和static方法。c#要求参数类型和返回类型二者必有其一与定义转换方法的类型相同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//定义只有一个参数的公共构造器,这个参数时源类型的一个实例
//定义无参数的公共实例方法ToXxx(l类似于ToSting)
//每个方法都将定义该方法的类型的一个实例装化为Xxx类型
public sealed class Rational
{
    //由一个int构造一个Rational
    public Rational(int num) { }
    //由int隐式构造并返回一个Rational
    public static implicit operator Rational(int num) { return new Rational(num); }
    
   //由一个single构造一个Rational
    public Rational(Single s) { }
    //由Single隐式构造并返回一个Rational
    public static implicit operator Rational(Single num) { return new Rational(num); }
    //将Rational转化成一个int
    public Int32 ToInt32() { return new Int32(); }
    //由一个Rational显示返回一个Int32
    public static explicit operator Int32(Rational r) { return r.ToInt32(); }
    //将Rational转化成一个Single
    public Single ToSingle() { return new Single(); }
    //由一个Rational显示返回一个Single
    public static explicit operator Single(Rational r) { return r.ToSingle(); }
 
}