直接将值赋给类变量

时间:2017-01-11 09:29:31

标签: c#

我不知道这是否容易,没有人在寻找,但我没有找到任何东西......

我想做以下事情:

public class foo
{
    string X 
    {
        get; 
        set
        { 
            //set and do some other stuff 
        }
    }

    //some other functions
}

主:

private foo = new foo();

foo = "bla";

如何在不使用bla的情况下直接将此foo分配给班级变量foo.X = "bla"

数据类型如何执行此操作,例如字符串? 它们是如何制作的? 因为我可以做string y; y = "abc"

2 个答案:

答案 0 :(得分:21)

您在寻找隐式运算符吗?

public class foo {
  string X {
    get;
    set;
  }

  public static implicit operator foo(string value) {
    return new foo() {
      X = value
    };
  }
}

请注意,这里没有构造函数调用 这将被隐式地调用(从而创建一个新的foo实例):

private foo myFoo = "bla";

答案 1 :(得分:-2)

我认为你的意思是:

private foo = new foo();
foo.X = "bla";

不? 所以这将是:

private foo = new foo() {
    X = "bla"
};

X需要公开。 我理解你了吗?