¿Qué hace Typeof en C#?

La descripción de typeof en MSDN: "Objeto System.Type? utilizado para obtener el tipo".

Typeof es un operador (algunos libros lo llaman operador), esto es muy importante . Todos los operadores en C# eventualmente se convierten en funciones. No es de extrañar que algo que parece una función se llame operador.

Tenga en cuenta que lo que se devuelve es un objeto Tipo, que contiene mucha información. Como información de tipo. ¿Cuáles son los métodos, cuáles son los atributos y cuáles son los campos? Si utiliza otras tecnologías, como reflexión, serialización, etc., será más conveniente utilizarlas juntas.

Información ampliada

La x en typeof(x) debe ser un nombre de clase específico, nombre de tipo, etc., y no puede ser un nombre de variable.

El método GetType() hereda de Object (la clase base de todas las clases en C# es la clase de objeto. La clase base es relativa a la clase derivada, por ejemplo: si la clase B hereda de la clase A, entonces A es la clase base de B), por lo que cualquier objeto en C# tiene el método GetType(), que tiene la misma función que typeof() y devuelve el tipo del objeto actual de tipo Type.

Ejemplo:

Existe una variable i: Int32 i = new Int32();

El valor de retorno de i.GetType() es el tipo de Int32. Pero typeof(i) no se puede utilizar porque i es una variable. Si desea utilizar typeof (), solo puede utilizar: typeof (Int32), y el tipo devuelto también es Int32.

Typeof() es un operador utilizado para obtener un objeto System.Type de un tipo. GetType es un método para obtener el tipo de la instancia actual; los parámetros de Typeof() solo pueden ser int, string, String, tipos personalizados y no pueden ser instancias;