|
|
1
10
可以重载运算符以执行所需的任何操作。 Here is some good documentation 如何在C中完成。 它的要点是您为操作符(您的类)提供一个上下文,以及它的参数发生了什么。示例可能如下所示:
|
|
|
2
3
您可以这样定义运算符:
对-、*等使用相同的语法。 以下是一些建议(我的意见主要是):
// NOT
public static MyClass operator +(MyClass a, MyClass b) { /* ... */ }
// YES
public static MyClass Add(MyClass a, MyClass b) { return new MyClass(a.Prop + b.Prop); }
public static MyClass operator +(MyClass a, MyClass b) { return Add(a, b); }
|
|
|
3
1
这称为运算符重载。谷歌将返回许多文章,解释它是如何工作的,以及何时使用和不使用它。 http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=88 |
|
5
0
它被称为运算符重载。C允许您超载选择运算符。 有更多关于这个的信息 here . |
|
|
6
0
你可以重载一个操作符来做你想做的任何事情。 假设我有一个卡车类和机器类,我想能够做到: 变压器MYTransformer=MYtruck+MYgun; |
|
|
8
0
这称为运算符重载。它被框架广泛使用,但是您应该避免这样做,因为如果您不知道自己在做什么,它可能会导致一些坏代码。 大多数程序员不希望看到一个自定义类中的运算符过载,这样当其他程序员必须查看您的代码并弄清楚发生了什么时,它就会变成维护地狱。 当然,在某些情况下,您可能会发现它很有用,但通常您最好只使用方法而不是创建运算符重载。您可以在此处从Microsoft获得更多信息: |
|
|
9
0
很多答案都涵盖了你是如何做到这一点的。现在记住,你几乎永远不想自己动手。您需要确保使用类的任何人都会同意您减去两个MyClass对象的含义。如果它代表某种数学结构(向量、矩阵等),那么你可能是安全的。否则,可能还不清楚。注意,Microsoft为日期时间定义了减法,但不允许
任何时候你写
然后想想如果你不能覆盖减法,你会怎么叫这个方法。如果最好的名字不是
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |