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

Перегрузка операторов с char

Обычник Ученик (105), открыт 3 недели назад
Из-за чего в главном методе не выводится символ, хоть я указал ToString()? Но как только я удаляю ToString() и вначале ставлю (char) то символ появляется. (char)(meaning-- - 1).

class Program
{
class YourClass1
{
public char _symb;

public YourClass1(char symb)
{
_symb = symb;
}

public static explicit operator char(YourClass1 obj)
{
return obj._symb;
}

public static int operator -(YourClass1 obj, int b)
{
return obj._symb - b;
}
public static YourClass1 operator --(YourClass1 obj)
{
return new YourClass1(obj._symb);
}

public override string ToString()
{
return $"{_symb}";
}
}

private static void Main()
{
YourClass1 meaning = new YourClass1('A');

Console.WriteLine((meaning-- - 1).ToString());
}
}
1 ответ
Jurijus Zaksas Искусственный Интеллект (458577) 3 недели назад
Вот поэтому:Твои арифметические операции превращают твой класс в int, поскольку операции декремента и вычитания с int для него не определены.
ОбычникУченик (105) 2 недели назад
Спасибо
Похожие вопросы