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

时间:2016-06-27 06:16:51

标签: c# variables properties

我知道属性可以设置为单一类型,一旦设置就不能更改,但有没有办法创建propertyproperty-like object来设置{{1} } while返回int

我不断创建string之类的变量,以后只会用作int,一旦设置就永远不会被用作string。因此,在这种情况下,考虑到它不仅仅是一种类型,我总是需要做很多转换。

2 个答案:

答案 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可确保用户只能在课程初始化期间设置该值。