Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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#_Reflection_Null Cast - Fatal编程技术网

C# 使用反射计算空强制转换?

C# 使用反射计算空强制转换?,c#,reflection,null-cast,C#,Reflection,Null Cast,给定空强制转换: var result = MyMethod( (Foo) null ); 有没有可能在反射的方法中使用这些额外的信息 编辑: 该方法的签名类似于: object MyMethod( params object[] args ) { // here I would like to see that args[0] is (was) of type Foo } 啊。。。你编辑了 我想你能得到的最接近的是泛型: object MyMethod<T>( params

给定空强制转换:

var result = MyMethod( (Foo) null );
有没有可能在反射的方法中使用这些额外的信息

编辑:
该方法的签名类似于:

object MyMethod( params object[] args )
{
  // here I would like to see that args[0] is (was) of type Foo
}
啊。。。你编辑了

我想你能得到的最接近的是泛型:

object MyMethod<T>( params T[] args ) {...}
(其中,
someInstance
对于静态方法是
null
,而
someType
是具有
MyMethod
方法的
类型)

简短回答:否

我猜你得到了这样的东西:

class Foo : Bar{}
既然你有:

object MyMethod(param object[] values);
这是不可能的。您可以使用空对象模式来实现这一点:

class Foo : Bar
{
 public static readonly Foo Null=new Foo();
}
然后用Foo.Null而不是Null调用。然后,MyMethod可以检查静态实例并相应地执行操作:

object MyMethod(param object[] values
{
 if(values[0]==Foo.Null) ......
}

你到底是什么意思?你到底想用什么?用什么确切的方法?感谢空对象模式-另一个想法。
object MyMethod(param object[] values
{
 if(values[0]==Foo.Null) ......
}