重载转换运算符

public class ConvClass1

{

  public int val;

  public static implicit operator ConvClass2(ConvClass1 op1)

  {

    ConvClass2 returnVal = new ConvClass2();

    returnVal.val = op1.val;

    return returnVal;

  }

}

public class ConvClass2

{

  public double val;

  public static explicit operator ConvClass1(ConvClass2 op1)

  {

    ConvClass1 returnVal = new ConvClass1();

    checked{returnVal.val = (int)op1.val;};

    return returnVal;

  }

}

ConvClass1 op1 = new ConvClass1();

op1.val = 3;

ConvClass2 op2 = op1;

ConvClass2 op1 = new ConvClass2();

op1.val = 3e15;

ConvClass1 op2 = (ConvClass1)op1;

posted @ 2011-07-18 15:21  绯色卡卡  阅读(144)  评论(0)    收藏  举报