![](/img/trans.png)
[英]Where to overload division returning custom class C# operator/ (int,int)
[英]Overload division in C#
我想在我的 C# 类中重载除法运算符。 所以,我写道:
public string[] operator/ (object obj) {
}
并得到错误:“解析器错误:可重载的一元运算符除外”。
那么,我不能超载那个操作员吗?
在 MSDN 上我没有看到任何示例:http: //msdn.microsoft.com/en-us/library/3b1ff23f.aspx
谢谢。
//如果需要的话,我在 Ubuntu 14.10 上使用 MonoDevelop。
您可以重载除法运算符,但是:
例如:
using System;
class Program
{
public static string operator/ (Program lhs, int rhs)
{
return "I'm divided!";
}
static void Main(string[] args)
{
Console.WriteLine(new Program() / 10);
}
}
/
运算符是一个“二元”运算符,这意味着它有两个参数: a / b
。 按照您的编写方式,它试图将其重载为“一元”运算符,例如a++
。
假设您的班级名为“MyObject”,这样的事情应该可行。
public static string[] operator/ (MyObject mine, object obj) {
...
}
用法:
object something = "hi";
string[] result = new MyObject(1) / something;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.