我知道可以将属性设置为单个类型,而一旦设置就不能更改,但是有没有办法创建property或设置property-like object并同时返回intstring

我一直在创建像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"

关于c# - 设置类型并返回不同类型的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38047017/

10-11 02:09