首页 新闻 会员 周边 捐助

C#中自定义显式/隐式转换的问题

0
悬赏园豆:20 [已解决问题] 解决于 2011-03-11 21:28

在C#中如果定义显式/隐式转换是不是没有位置的要求,只要在任一类中定义了转换就可以?

例如代码1和代码2木有区别咯?

代码1

public class ConvClass1
{
public int val;

public static implicit operator ConvClass2(ConvClass1 op1)
{
ConvClass2 returnVal
= new ConvClass2();
returnVal.val
= op1.val;
return returnVal;
}

public static implicit operator ConvClass1(ConvClass2 op1)
{
ConvClass1 returnVal
= new ConvClass1();
checked { returnVal.val = (int)op1.val; }
return returnVal;
}
}

public class ConvClass2
{
public double val;


}

代码2

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 implicit operator ConvClass1(ConvClass2 op1)
{
ConvClass1 returnVal
= new ConvClass1();
checked { returnVal.val = (int)op1.val; }
return returnVal;
}

}

Kanone的主页 Kanone | 初学一级 | 园豆:150
提问于:2011-03-09 18:15
< >
分享
最佳答案
0

应该没区别吧

收获园豆:20
artwl | 专家六级 |园豆:16736 | 2011-03-09 19:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册