让我说我有班级:
var f = new Foo(1);
f = 5; // How can I do this? In here I want to change => f.Value
var x = f.Value; // I will like x to equal to 5 in here
我想做以下事情:
List<String> list = Arrays.asList(animals);
答案 0 :(得分:6)
在 C#中,您无法覆盖assign运算符(=
)。
您可以做的是定义隐式转换:
class Foo
{
public Foo(int value)
{
this.Value = value;
}
public int Value { get; private set; }
public static implicit operator Foo(int value)
{
return new Foo(value);
}
}
这允许您隐式地从int
转换为Foo
:
Foo f = 5;
Here是 C#中可重载运算符的列表。
答案 1 :(得分:1)
从我对你的问题的理解,如果你真的需要改变Value的值,你为什么不公开Value的setter,以便你可以使用, f.Value = 5