C # “é” operador - é essa reflexão?

Um colega me fez uma pergunta interessante hoje - a palavra-chave / operador C # "é" considerada reflexão?

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

Como este operador é implementado nos bastidores? Requer reflexão ou introspecção? Ou devido à natureza fortemente tipada da linguagem, o Tipo do objeto é imediatamente acessível como um atributo de nível superior do objeto na memória?

MSDN afirma que:

Tenha em atenção que o operador is apenas considera conversões de referência, conversões de boxing e conversões de unboxing. Outras conversões, como as conversões definidas pelo usuário, não são consideradas pelo operador is.

A capacidade de considerar conversões in-box e sem caixa parece me sugerir algum tipo de introspecção.

questionAnswers(3)

yourAnswerToTheQuestion