我知道属性可以设置为单一类型,一旦设置就不能更改,但是是否有办法创建property
或property-like object
,设置int
,同时返回string
?
我不断地创建像int
这样的变量,它以后只会被用作string
,一旦设置就永远不会被用作int
。所以在这种情况下,我总是要做很多转换,考虑到它不仅仅是一种类型到另一种。
比如
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"
当您只需要将其作为字符串并且只需要一次作为整数(在初始化期间)时,使用string-value:
int readonly _myProp;
string MyProp { get { return _myProp.ToString(); } }
MyClass(int theValue
{
this._myProp = theValue;
}
readonly
还确保用户只能在初始化类时设置该值。