我知道属性可以设置为单一类型,一旦设置就不能更改,但有没有办法创建property
或property-like object
来设置{{1} } while返回int
?
我不断创建string
之类的变量,以后只会用作int
,一旦设置就永远不会被用作string
。因此,在这种情况下,考虑到它不仅仅是一种类型,我总是需要做很多转换。
答案 0 :(得分:2)
也许像
struct strint
{
private int i; // 0 by default
public static implicit operator strint(int value) {
return new strint { i = value };
}
public static implicit operator string(strint value) {
return value.i.ToString();
}
public static implicit operator int(strint value) {
return value.i;
}
}
样品使用:
strint a = 1;
a += 2; // 3
int i = a; // 3
string s = a; // "3"
答案 1 :(得分:0)
当你只需要它作为一个字符串而只需要一次作为整数(在初始化期间)时,请使用string-value:
int readonly _myProp;
string MyProp { get { return _myProp.ToString(); } }
MyClass(int theValue
{
this._myProp = theValue;
}
此外,readonly
可确保用户只能在课程初始化期间设置该值。