Я научился использовать неявные операторы для своих классов.Неявный оператор для int?
Теперь я хочу сделать что-то вроде этого:
public static implicit operator string(int val)
{
return "The value is: " + val.ToString(); // just an nonsense example
}
Однако это не так. Компилятор говорит:
определяемые пользователем преобразования должны преобразовать в или из типа ограждающей
Как я могу обойти это?
Моя цель состоит в том, чтобы быть в состоянии выполнить такой код:
int x = 50;
textbox1.Text = x; // without using .ToString() or casting
Почему это неправильно? По-моему, это совершенно правильно! –
@ RomanoZumbé Я обновил свой вопрос. Когда я пытаюсь это сделать, компилятор говорит: «Преобразование, определяемое пользователем, должно быть преобразовано в или из закрывающего типа» – Kamil
Вы не можете обойти это, потому что вы * должны * реализовать неявный оператор как статический метод в преобразованном классе и Конечно, вы не можете изменить реализацию System.Int32. –