Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Перегрузка операторов в c#

Обычник Ученик (107), открыт 12 часов назад
почему оператор не перегружается, и не ставится унарный минус

namespace Base
{
class YourClass1
{
public int _Value { get; private set; }

public YourClass1(int n)
{
_Value = n;
}

public static int operator +(YourClass1 a)
{
return -a._Value;
}

class THE_basic_Program
{
static void Main()
{
YourClass1 myclass1 = new YourClass1(100);

Console.WriteLine(+myclass1._Value);
}
}
}
2 ответа
enddes- Гуру (3557) 12 часов назад
чтобы все работало правильно, нужно:

Перегрузить оператор - для работы с унарным минусом.
Использовать экземпляр YourClass1, а не просто поле _Value
Николай Веселуха Высший разум (372836) 12 часов назад
 using System; 
namespace Base {
class MyClass {
private readonly int value;
public MyClass(int n) {
value = n;
}
public static MyClass operator+(MyClass a) => new MyClass(-a.value);
public override string ToString() => $"{value}";
}
class Program {
static void Main() {
var myClass = new MyClass(100);
Console.WriteLine(+myClass);
}
}
}
Похожие вопросы