All types in C# are represented at runtime with an instance of System.Type
.
There are two basic ways to get a System.Type
object:
GetType
on the instance. typeof
operator on a type name.
GetType
is evaluated at runtime;
typeof
is evaluated statically at compile time.
System.Type
has properties for such things as the type's name,
assembly, base type, and so on.
For example:
using System; class Point { public int X, Y; } class Main { static void Main() { Point p = new Point(); Console.WriteLine (p.GetType().Name); // Point Console.WriteLine (typeof (Point).Name); // Point Console.WriteLine (p.GetType() == typeof(Point)); // True Console.WriteLine (p.X.GetType().Name); // Int32 Console.WriteLine (p.Y.GetType().FullName); // System.Int32 } }
The following code gets type from var defined variables.
using System; //from w w w .j av a 2s .c o m
class Program {
static void Main(string[] args) {
var name = "java2s.com";
var age = 25;
var isRabbit = true;
Type nameType = name.GetType();
Type ageType = age.GetType();
Type isRabbitType = isRabbit.GetType();
Console.WriteLine("name is type " + nameType.ToString());
Console.WriteLine("age is type " + ageType.ToString());
Console.WriteLine("isRabbit is type " + isRabbitType.ToString());
}
}