Вопрос относительно неявных преобразований в спецификации языка C#



Раздел 6.1 неявные преобразования определяет преобразование идентичности таким образом:




Преобразование идентичности преобразует любой тип в тот же самый тип. Это преобразование существует таким образом, что сущность, которая уже имеет требуемый тип, может быть названа конвертируемой в этот тип.




Теперь, что цель наказания, такие, как эти?




(в §6.1.6 неявные ссылочные преобразования)



Неявное ссылки преобразования:




  • [...]

  • из любого ссылочного типа в ссылочный тип T если он имеет неявное тождество или ссылочное преобразование в ссылочный тип T0 и еще T0 имеет преобразование идентификатора в T.




И:




(в §6.1.7 боксерские преобразования)




  • тип значения имеет боксерское преобразование в тип интерфейса I если он имеет преобразование бокса в тип интерфейса I0 и еще I0 имеет преобразование идентичности в I.




Поначалу они кажутся излишними (тавтологичными). Но они должны быть там с определенной целью, так почему же они там?

Можете ли вы привести пример двух типов T1, T2 такое, что T1 будет ли не неявно конвертироваться в T2 если бы не вышеназванное ... параграфы?

550   0  

Comments

    Ничего не найдено.