如何在 C# 中为 类 创建自定义添加方法
How to make a custom add method for classes in C#
在 python 中,如果你有一个 class foo,你可以像这样为它创建一个自定义添加函数:
class foo:
def __add__(self, other):
return stuff
这让您可以执行以下操作:
a = foo()
b = foo()
c = a + b
C# 中的等价物是什么?
此功能称为运算符重载。
您可以在这里阅读: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;
}
您可以实施 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
您可以重载运算符 +
public static MyClass operator +(MyClass m1, MyClass m2)
{
// logic goes here
}
您要找的是"Operator Overloading"。请看看这个教程:
这教你如何使用正确的语法为 class foo.
的对象编写 + 运算符的特定功能
在 python 中,如果你有一个 class foo,你可以像这样为它创建一个自定义添加函数:
class foo:
def __add__(self, other):
return stuff
这让您可以执行以下操作:
a = foo()
b = foo()
c = a + b
C# 中的等价物是什么?
此功能称为运算符重载。
您可以在这里阅读: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;
}
您可以实施 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
您可以重载运算符 +
public static MyClass operator +(MyClass m1, MyClass m2)
{
// logic goes here
}
您要找的是"Operator Overloading"。请看看这个教程:
这教你如何使用正确的语法为 class foo.
的对象编写 + 运算符的特定功能