本文主要是介绍C# typeof 与 示例的GetType(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创建两个类
namespace ConsoleApp1;public interface IBagItem
{public uint UId { get; set; }
}public class BagItem : IBagItem
{public uint UId { get; set; }
}public class DreamIslandBagItem : IBagItem
{public uint UId { get; set; }
}
测试
namespace ConsoleApp1;public class TypeOfTest
{public static void Test(){var typeOfTest = new TypeOfTest();{IBagItem bagItem = new BagItem();typeOfTest.TypeOf(bagItem);}Console.WriteLine("-------------------------");{IBagItem bagItem = new DreamIslandBagItem();typeOfTest.TypeOf(bagItem);}Console.WriteLine("-------------------------");{BagItem bagItem = new BagItem();typeOfTest.TypeOf(new List<BagItem>(){bagItem});}Console.WriteLine("-------------------------");{DreamIslandBagItem bagItem = new DreamIslandBagItem();typeOfTest.TypeOf(new List<DreamIslandBagItem>(){bagItem});}/***ConsoleApp1.IBagItemIBagItem ConsoleApp1.BagItem BagItem ------------------------- ConsoleApp1.IBagItem IBagItem ConsoleApp1.DreamIslandBagItemDreamIslandBagItem ------------------------- ConsoleApp1.BagItem BagItem ConsoleApp1.BagItem BagItem ------------------------- ConsoleApp1.DreamIslandBagItemDreamIslandBagItem ConsoleApp1.DreamIslandBagItemDreamIslandBagItem */}public void TypeOf<T>(T t) where T : IBagItem{Console.WriteLine(typeof(T).FullName);Console.WriteLine(typeof(T).Name);Console.WriteLine(t.GetType().FullName);Console.WriteLine(t.GetType().Name);}public void TypeOf<T>(List<T> list) where T : IBagItem{Console.WriteLine(typeof(T).FullName);Console.WriteLine(typeof(T).Name);Console.WriteLine(list[0].GetType().FullName);Console.WriteLine(list[0].GetType().Name);}
}
如果 入参是 单个 T则:
typeof 输出 指向示例的类型 也就是 IBagItem
GetType() 输出 源类型
如果入参是List<T>则:
typeof 、GetType() 都 输出 源类型
这篇关于C# typeof 与 示例的GetType()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!