属性设置类型并返回不同的类型

本文关键字:类型 返回 置类型 属性 | 更新日期: 2023-09-27 17:49:26

我知道属性可以设置为单一类型,一旦设置就不能更改,但是是否有办法创建propertyproperty-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还确保用户只能在初始化类时设置该值。