MyDate - это структура, которая содержит год, месяц, день, пробел конструктора и некоторые другие методы. Я думал, что попытаюсь переопределить несколько операторов и посмотреть, смогу ли я сделать эту работу. Я нашел пример в MSDN переопределения оператора в структуре и попытался дублировать его с действием, которое мне нужно. Я добавил этот код в структуру MyDate, чтобы переопределить «-», вычесть.Оператор Override в структуре получает ошибку при использовании «Нельзя применять ...»
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;
Я получаю сообщение об ошибке: Error 1 Operator '-' не может быть применен к операндам типа 'EulerLibrary.MyDate' и «EulerLibrary. MyDate 'C: \ Users \ Henry Wollman \ Documents \ Visual Studio 2010 \ Projects \ EulerProblem19 \ EulerProblem19 \ Form1.cs 115 20 EulerProblem19
любые мысли о том, почему это не работает? Как я сказал ранее, он точно отражает пример в MSDN.
'-' не перегружен для вашего ** собственного типа данных **. Вы должны перегрузить этого оператора. –
Он должен работать, как описано. Таким образом, ваш фактический код не является тем, что было описано. Можете ли вы опубликовать автономный репрограмм? – usr
Это должно работать нормально, ссылаетесь ли вы на старую версию сборки в другом проекте? – Lee