Как компилятор позволяет CAST возразить для ICOMparable? Даже если объект не реализует интерфейс?C#

Место общения программистов C#
Ответить
Anonymous
 Как компилятор позволяет CAST возразить для ICOMparable? Даже если объект не реализует интерфейс?

Сообщение Anonymous »

Мне немного любопытно узнать, как компилятор обрабатывает следующий код, хотя объект не реализует Icomplable Interface. выбросит ошибку. < /p>

object i = 6;
object r = ((IComparable)i).CompareTo(5);
Console.WriteLine(r);
< /code>

Объект не реализует Icomplable Interface, но как может быть кастинг здесь, нельзя ли сказать, что объект не реализует Icomplable? < /p>

Изменить: какое поведение с нулевым типом (нулевой тип не реализует Icomparable)? < /p>

int? j = 5;
int result = ((IComparable) j).CompareTo(6);
< /code>

не будет ли это не так: < /p>

int result = ((IComparable) (int) j).CompareTo(6);
//int implements IComparable


Подробнее здесь: https://stackoverflow.com/questions/247 ... t-does-not
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»