我目前正努力寻找练习的解决方案。 如何修改ClassA以便第二部分中的显式类型转换成为可能?
yield from
答案 0 :(得分:-1)
ClassA
定义中的此类内容应该有效:
public static explicit operator int(ClassA a)
{
return a.MyValue;
}
public static explicit operator string(ClassA a)
{
return a.MyText;
}
(我实际上无法记住此案例是否需要implicit
或explicit
,并且目前无法对其进行测试。值得测试两者你的需求。)
虽然为什么你想这样做有点奇怪,而不是直接抓住这些公共价值:
int x = myObject.MyValue;
string str = myObject.MyText;
答案 1 :(得分:-2)
您定义了一个显式转换。
这里的技巧是EXPLICIT关键字。
https://msdn.microsoft.com/en-us/library/xhbhezf4.aspx
有这方面的例子。
基本上:类必须在for ...中实现一个stateic显式运算符。
// Must be defined inside a class called Fahrenheit:
public static explicit operator Celsius(Fahrenheit fahr)
{
return new Celsius((5.0f / 9.0f) * (fahr.degrees - 32));
}