Перегрузка операторов в C#
сэр
Я написал код для перегрузки оператора, но он не работает.
вот программа :
---------------------------------
using System; class space { int x, y, z; public space(int a, int b, int c) { x = a; y = b; z = c; } public void display() { Console.Write("" + x); Console.Write("" + y); Console.Write("" + z); } public static space operator -(space s) { s.x = -s.x; s.y = -s.y; s.z = -s.z; } } class TestMain { public static void Main() { space s = new space(10, -20, -40); Console.Write("S:"); -s.display(); Console.Write("S:"); Console.Write("S:"); -s.display(); } } it shows the following errors: Error 1 'space.operator -(space)': not all code paths return a value C:\Users\LENOVO PC\Documents\Visual Studio 2010\Projects\operator_overload\operator_overload\Program.cs 17 25 operator_overload Error 2 Only assignment, call, increment, decrement, and new object expressions can be used as a statement C:\Users\LENOVO PC\Documents\Visual Studio 2010\Projects\operator_overload\operator_overload\Program.cs 30 10 operator_overload Error 3 Operator '-' cannot be applied to operand of type 'void' C:\Users\LENOVO PC\Documents\Visual Studio 2010\Projects\operator_overload\operator_overload\Program.cs 33 10 operator_overload Error 4 Only assignment, call, increment, decrement, and new object expressions can be used as a statement C:\Users\LENOVO PC\Documents\Visual Studio 2010\Projects\operator_overload\operator_overload\Program.cs 33 10 operator_overload What I have tried: sir i have tried -s.display() but no results..
[no name]
Как вы думаете, что будет делать попытка " - s.display ()"? Сначала вы должны исправить ошибки компиляции!
tusharkaushik
Теперь я изменил код :
------------------------------------
использование системы;
классовое пространство
{
int x, y, z;
общественное пространство(int a, int b, int c)
{
x = a;
y = b;
z = c;
}
общественного недействительными дисплея()
{
Приставка.Напишите("" + x);
Приставка.Напишите("" + y);
Приставка.Напишите("" + z);
}
публичный статический места оператора (площадь с)
{
С. Х = -ы.х;
С. г = -ы.г;
С. з = -з.з;
возвращение -с;
}
}
класс TestMain
{
публичный статический пустота главный()
{
пространство s = новое пространство(10, -20, 30);
Приставка.Напишите ("S: \n\n");
s. дисплей();
Приставка.Писать ("з\п:\н");
//Приставка.Записать("с:\н");
s. дисплей();
Приставка.С readline();
}
}
я написал значение (
Теперь показываем этот вывод :
10,-20 30