MyDate是一个包含year,month,day,Span构造函数和其他一些方法的结构。我想我会试图覆盖一些运营商,看看我能否做到这一点。我在MSDN中找到了一个重写结构中的运算符的例子,并试图用我需要的操作来复制它。 我将此代码添加到结构MyDate以覆盖“ - ”,减去。结构中的Overriden运算符在使用时出现错误“不能应用...”
public static int operator -(MyDate a, MyDate b)
{
return a.Span - b.Span;
}
当我在另一个程序使用它:
MyDate aDate = new MyDate(2, 15, 1990);
MyDate bDate = new MyDate(3, 15, 1990);
lAns = bDate - aDate;
我得到的错误: 错误1个操作“ - ”不能应用于类型的操作数“EulerLibrary.MyDate”和“EulerLibrary。 MyDate'C:\ Users \ Henry Wollman \ Documents \ Visual Studio 2010 \ Projects \ EulerProblem19 \ EulerProblem19 \ Form1.cs 115 20 EulerProblem19
有关为什么这不起作用的任何想法?正如我之前所说,它完全反映了MSDN中的示例。
对于您自己的数据类型**,'-'不会重载。您必须重载该操作员。 –
它应该像描述的那样工作。所以你的实际代码不是所描述的。你能发布一个独立的repro吗? – usr
这应该可以,你是否在其他项目中引用了旧版本的程序集? – Lee