Перегрузка операторов в c#
почему оператор не перегружается, и не ставится унарный минус
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);
}
}
}
По дате
По рейтингу
чтобы все работало правильно, нужно:
Перегрузить оператор - для работы с унарным минусом.
Использовать экземпляр YourClass1, а не просто поле _Value
1234567891011121314151617
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);
}
}
}