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.IBagItem
            IBagItem                      
            ConsoleApp1.BagItem           
            BagItem                       
            -------------------------     
            ConsoleApp1.IBagItem          
            IBagItem                      
            ConsoleApp1.DreamIslandBagItem
            DreamIslandBagItem            
            -------------------------     
            ConsoleApp1.BagItem           
            BagItem                       
            ConsoleApp1.BagItem           
            BagItem                       
            -------------------------     
            ConsoleApp1.DreamIslandBagItem
            DreamIslandBagItem            
            ConsoleApp1.DreamIslandBagItem
            DreamIslandBagItem 
         */
    }

    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()  都 输出 源类型

相关推荐

  1. C# typeof 示例GetType()

    2024-01-11 21:32:01       61 阅读
  2. sparkflinkwordcount示例

    2024-01-11 21:32:01       33 阅读
  3. C# 判断变量类型 GetType 未解决

    2024-01-11 21:32:01       40 阅读
  4. Boost.PythonBOOST_TEST_EQ宏示例编程

    2024-01-11 21:32:01       57 阅读
  5. 【ctype.h】全部函数介绍代码示例

    2024-01-11 21:32:01       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 21:32:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 21:32:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 21:32:01       87 阅读
  4. Python语言-面向对象

    2024-01-11 21:32:01       96 阅读

热门阅读

  1. Python私教MongoDB快速入门教程

    2024-01-11 21:32:01       47 阅读
  2. QTday4

    QTday4

    2024-01-11 21:32:01      59 阅读
  3. 计算机算法贪心算法

    2024-01-11 21:32:01       66 阅读
  4. Python常用配置文件读取方法

    2024-01-11 21:32:01       50 阅读
  5. 正则表达式速攻1/2

    2024-01-11 21:32:01       61 阅读
  6. 【MySQL】巧用 DATE_SUB 函数判断时间是否连续

    2024-01-11 21:32:01       67 阅读
  7. Redis群集-主从、哨兵、集群

    2024-01-11 21:32:01       47 阅读
  8. 《程序设计基础》学习笔记

    2024-01-11 21:32:01       52 阅读
  9. 三、计算机理论-关系数据库-结构化查询语言SQL

    2024-01-11 21:32:01       64 阅读