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

C# 通过表达式将方法作为参数传递

C# 通过表达式将方法作为参数传递,c#,generics,reflection,expression,invoke,C#,Generics,Reflection,Expression,Invoke,我需要能够将我的类(或基类)的方法传递给基类方法(因为它必须在那里做更多的事情) 我知道以下可能性:在我的基类中,我有一个方法public void Call(Action Action),它将简单地调用Action()并执行其他操作 但是我没有更多的限制,因为现在我可以把所有的东西都放在这个方法中,例如Call(()=>string.Format(“some{0},“text”)但我只想允许自己类型或基类型的方法 我想到了类似于public void Call(Expression expre

我需要能够将我的类(或基类)的方法传递给基类方法(因为它必须在那里做更多的事情)

我知道以下可能性:在我的基类中,我有一个方法
public void Call(Action Action)
,它将简单地调用
Action()
并执行其他操作

但是我没有更多的限制,因为现在我可以把所有的东西都放在这个方法中,例如
Call(()=>string.Format(“some{0},“text”)但我只想允许自己类型或基类型的方法

我想到了类似于
public void Call(Expression expressionToAction)
的东西,但我在这里没有得到正确的观点

这可能吗?通过表达式param,我得到了一个错误,即方法必须返回
Action
,这完全不是我想要的。

在编译时无法实现“仅此类的方法”。对于泛型和非泛型类型,没有允许您这样做的限制


如果运行时检查足够-传递表达式(使用
Action
not
Func
-
表达式。

基类中的一个简单虚方法如何,由子类型中的具体实现覆盖?
Func
不能保证返回的
Action
的任何内容。您实际上想要实现什么?如果您提供一个具体的示例,说明为什么您要我想这样做,也许首先有更好的方法。