public class Currency{
private Code {get;set;}
public Currency(string code){
this.Code = code;
}
//more methods here
}
我希望能够使我的对象可投射
string curr = "USD";
Currency myType = (Currency)curr;
我知道我可以使用构造函数来完成它,但是我在不需要初始化对象的情况下使用了我需要的地方......
我也认为生病需要像FromString()
这样的功能来做这件事
感谢。
答案 0 :(得分:6)
是的,只需添加explicit cast operator:
public class Currency {
private readonly string code;
public string Code { get { return this.code; } }
public Currency(string code) {
this.code = code;
}
//more methods here
public static explicit operator Currency(string code) {
return new Currency(code);
}
}
现在你可以说:
string curr = "USD";
Currency myType = (Currency)curr;
答案 1 :(得分:4)
将此方法添加到您的Currency类:
public static explicit operator Currency(String input)
{
return new Currency(input);
}
并称之为:
Currency cur = (Currency)"USD";
答案 2 :(得分:3)
答案 3 :(得分:0)
我相信这个运算符可以满足您的需求(作为Currency类的一部分):
public static explicit operator Currency(stringvalue){
return new Currency(value);
}