c#如何在运行时比较模板类型和内置类型

本文关键字:类型 内置 置类型 比较 运行时 | 更新日期: 2023-09-27 18:29:21

如果代码不编译,有人知道如何正确编写这个逻辑吗?

public void FilBuff<T>(T p_tInput) 
    {
        if(typeid(p_tInput )== typeof(string))
        {
            m_bBuff = System.Text.Encoding.ASCII.GetBytes((string)p_tInput);
        }
    }

c#如何在运行时比较模板类型和内置类型

使用typeof(T)。像这样:

public void FilBuff<T>(T p_tInput) 
{
    if(typeof(T) == typeof(string))
    {
        m_bBuff = System.Text.Encoding.ASCII.GetBytes((string)p_tInput);
    }
}

顺便说一句,你用泛型(而不是模板)做的事情有点奇怪。在您的情况下,最好只使用重载方法。