如何在c#中为类创建自定义的添加方法
本文关键字:自定义 创建 添加 方法 | 更新日期: 2023-09-27 18:09:45
在python中,如果你有一个类foo,你可以为它创建一个自定义的add函数,如下所示:
class foo:
def __add__(self, other):
return stuff
,这可以让你做这样的事情:
a = foo()
b = foo()
c = a + b
在c#中等效的是什么?
您可以实现一个operator
,例如:
public class Foo
{
public static Foo operator +(Foo f1, Foo f2)
{
var foo = // some logic to generate a result
return foo;
}
}
,然后你可以尝试使用这个操作符:
var a = new Foo() { /* properties initialization */ };
var b = new Foo() { /* properties initialization */ };
var c = a + b;
您可以实现更多的操作符,如-
, *
, '
, |
, &
,就像上面的示例。
参见https://msdn.microsoft.com/en-us/library/aa288467 (v = vs.71) . aspx
这个特性叫做操作符重载。
你可以在这里阅读:https://msdn.microsoft.com/en-us/library/aa288467%28v=vs.71%29.aspx
简短示例:
class Foo
{
private int v;
public Foo(int val)
{
v = val;
}
public static Foo operator +(Foo x1, Foo x2)
{
return new Foo(x1.v+ x2.v);
}
}
static void Main(string[] args)
{
Foo d1 = new Foo (10);
Foo d2 = new Foo(11);
d2 += d1;
}
您正在寻找的是所谓的"操作符重载"。请看下面的教程:
操作符重载教程
教你如何使用正确的语法为类foo的对象编写+操作符的特定功能。
可以重载operator +
public static MyClass operator +(MyClass m1, MyClass m2)
{
// logic goes here
}