C# 中的重载 = 运算符
Overload = operator in c#
假设我有 class:
class Foo
{
public Foo(int value)
{
this.Value = value;
}
public int Value { get; private set; }
}
我想做以下事情:
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
根据我从你的问题中了解到的情况,如果你真的需要改变 Value 的值,为什么不将 Value public 设为 setter,这样你就可以使用,
f.Value = 5
在 C# 中,您不能覆盖赋值运算符 (=
)。
您可以做的是定义隐式转换:
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#.
中的可重载运算符列表
假设我有 class:
class Foo
{
public Foo(int value)
{
this.Value = value;
}
public int Value { get; private set; }
}
我想做以下事情:
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
根据我从你的问题中了解到的情况,如果你真的需要改变 Value 的值,为什么不将 Value public 设为 setter,这样你就可以使用, f.Value = 5
在 C# 中,您不能覆盖赋值运算符 (=
)。
您可以做的是定义隐式转换:
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#.
中的可重载运算符列表