C # «is» оператор - это отражение?

Коллега задал мне интересный вопрос сегодня - является ли ключевое слово / оператор C # & quot; is & quot; считается отражением?

object tmp = "a string";
if(tmp is String)
{
}

Как этот оператор реализован за кадром? Требуется ли рефлексия или самоанализ? Или из-за строго типизированной природы языка, является ли Тип объекта доступным сразу как атрибут верхнего уровня объекта в памяти?

MSDN говорится, что:

Note that the is operator only considers reference conversions, boxing conversions, and unboxing conversions. Other conversions, such as user-defined conversions, are not considered by the is operator.

Способность рассматривать конвертированные и распакованные конверсии, кажется, подразумевает какой-то самоанализ.

Ответы на вопрос(3)

Ваш ответ на вопрос