[c#] How can I get the data type of a variable in C#?

How can I find out what data type some variable is holding? (e.g. int, string, char, etc.)

I have something like this now:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Testing
    class Program
        static void Main()
            Person someone = new Person();
            int n = someone.getName();

    class Person
        public int name;

        public void setName(int name)
            this.name = name;

        public int getName()
            return this.name;

This question is related to c# types

The answer is

GetType() method

int n=34;
string name="Smome";

check out one of the simple way to do this

// Read string from console
        string line = Console.ReadLine(); 
        int valueInt;
        float valueFloat;
        if (int.TryParse(line, out valueInt)) // Try to parse the string as an integer
            Console.Write("This input is of type Integer.");
        else if (float.TryParse(line, out valueFloat)) 
            Console.Write("This input is of type Float.");
            Console.WriteLine("This input is of type string.");

Just hold cursor over member you interested in, and see tooltip - it will show memeber's type:

enter image description here

One option would be to use a helper extension method like follows:

public static class MyExtensions
    public static System.Type Type<T>(this T v)=>typeof(T);

var i=0;

Generally speaking, you'll hardly ever need to do type comparisons unless you're doing something with reflection or interfaces. Nonetheless:

If you know the type you want to compare it with, use the is or as operators:

if( unknownObject is TypeIKnow ) { // run code here

The as operator performs a cast that returns null if it fails rather than an exception:

TypeIKnow typed = unknownObject as TypeIKnow;

If you don't know the type and just want runtime type information, use the .GetType() method:

Type typeInformation = unknownObject.GetType();

In newer versions of C#, you can use the is operator to declare a variable without needing to use as:

if( unknownObject is TypeIKnow knownObject ) {

Previously you would have to do this:

TypeIKnow knownObject;
if( (knownObject = unknownObject as TypeIKnow) != null ) {

Its Very simple


it will return your datatype of your variable