Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时c确定占位符的类型# public void比较(T someobject) { ..... ..... }_C#_.net_Generics_Methods - Fatal编程技术网

C# 在运行时c确定占位符的类型# public void比较(T someobject) { ..... ..... }

C# 在运行时c确定占位符的类型# public void比较(T someobject) { ..... ..... },c#,.net,generics,methods,C#,.net,Generics,Methods,现在我想在运行时确定T的类型,并在此基础上执行不同的操作。我尝试过使用typeof,但没有效果。typeof在运行时应该可以正常工作 public void compare<T>(T someobject) { ..... ..... } public void比较(T someobject) { if(typeof(T)=typeof(int)) { //做事 } else if(typeof(T)=typeof(other)) { //做其他事情 } } typeof在

现在我想在运行时确定
T
的类型,并在此基础上执行不同的操作。我尝试过使用
typeof
,但没有效果。

typeof在运行时应该可以正常工作

public void compare<T>(T someobject)
{
  .....
  .....
}
public void比较(T someobject)
{
if(typeof(T)=typeof(int))
{
//做事
}
else if(typeof(T)=typeof(other))
{
//做其他事情
}
}

typeof在运行时应该可以正常工作

public void compare<T>(T someobject)
{
  .....
  .....
}
public void比较(T someobject)
{
if(typeof(T)=typeof(int))
{
//做事
}
else if(typeof(T)=typeof(other))
{
//做其他事情
}
}
可以试试

    public void compare<T>(T someobject)
    {
        if (typeof(T) == typeof(int))
        {
            // do stuff
        }
        else if (typeof(T) == typeof(something else))
        {
            // do other stuff
        }
    }
例如:

typeof(T) == typeof(desiredType)
可以试试

    public void compare<T>(T someobject)
    {
        if (typeof(T) == typeof(int))
        {
            // do stuff
        }
        else if (typeof(T) == typeof(something else))
        {
            // do other stuff
        }
    }
例如:

typeof(T) == typeof(desiredType)

is
可用于检查参数类型

typeof(T) == typeof(int)
或者,或者

if (someobject is SomeType)//...

is
可用于检查参数类型

typeof(T) == typeof(int)
或者,或者

if (someobject is SomeType)//...

typeof(T)
确实应该有效。您使用
typeof
究竟尝试了什么?
typeof(T)
将提供调用该方法时使用的编译时类型,而不是
someObject的实际类型。如果调用
compare((object)1)
您想要
System.object
还是
System.Int32
typeof(T)
将提供前者,而
someObject.GetType()
将提供后者。
typeof(T)
确实可以。您使用
typeof
究竟尝试了什么?
typeof(T)
将提供调用该方法时使用的编译时类型,而不是
someObject的实际类型。如果调用
compare((object)1)
您想要
System.object
还是
System.Int32
typeof(T)
会给你前者,而
someObject.GetType()
会给你后者。当我做
typeof(T)==int
时,它说
无效表达式项int
请看我的编辑,stackoverflow回答框需要智能感知,Lol当我做
typeof(T)==int
时,它说
无效表达式项int
请看我的编辑,stackoverflow应答框需要智能感知,LOL
T
无法使用
T
因为
T
Typedecriptor
不是
Type
哦,我的错,我看到你在检查
某个对象
不是
T
:),
is
将在这种情况下工作:)
is
不会与
T
一起工作,因为
T
typedescriptor
而不是
Type
哦,我的错,我看到你检查
someobject
而不是
T
),
is
将在这种情况下工作:)