比如 int a = 1; long b=1;
代码: b = a; 是合法的,虽然a和b类型不同,但不会报错。
如何实现让如下代码合法不报错:
public class c1{...};
public class c2{...};
c1 a=new c2();
重载赋值运算符.
高手,我查查看,在C#中还没有重载过这个东西呢
@沧海一杰: C#不允许重载这个运算符。
@沧海一杰: 居然真的不能重载赋赋值运算符..我去.那你只能重载类型转换运算符了.在赋值的时候转换下.
让c2继承c1
public class c2:c1{…}
不行的,我只能控制其中的一个类的定义,别一个已经封装好了。
c2 a2=new c2();
c1 a1=new c1(){a=a2.a,b=a2.b...}
看不懂
@沧海一杰: 就是把C2的属性手打赋值给C1
普通的情况下,AutoMapper能解决。
特殊的情况题主没有说明,无法知道还有啥特别需求。
可以使用 implicit
https://msdn.microsoft.com/zh-cn/library/z5z9kes2.aspx
对呀,我就记得在哪儿看过这个功能。