Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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#_.net 3.5_Delegates - Fatal编程技术网

C# 获取委托的具体返回类型

C# 获取委托的具体返回类型,c#,.net-3.5,delegates,C#,.net 3.5,Delegates,如何找到签名为IEnumerable的类型的具体类型 我的构造函数采用上述类型以执行延迟加载。本质上,仅在需要时加载选项卡,以减少启动时间。但是,每个具体的选项卡实现都由一个表示选项卡名称的属性修饰。当我在列表中循环时,我希望获得委托的具体类型,以便获得属性值 我知道.GetType().GetMethod(“Invoke”).ReturnType,但它返回ITab。我似乎只能通过调用Invoke()来找到具体类型 在访问与每个具体类型相关的信息时,是否有更好的方法使用委托实现延迟加载?在实际调

如何找到签名为
IEnumerable
的类型的具体类型

我的构造函数采用上述类型以执行延迟加载。本质上,仅在需要时加载选项卡,以减少启动时间。但是,每个具体的
选项卡
实现都由一个表示选项卡名称的属性修饰。当我在列表中循环时,我希望获得委托的具体类型,以便获得属性值

我知道
.GetType().GetMethod(“Invoke”).ReturnType
,但它返回
ITab
。我似乎只能通过调用
Invoke()
来找到具体类型


在访问与每个具体类型相关的信息时,是否有更好的方法使用委托实现延迟加载?

在实际调用返回该选项卡的方法之前,为什么需要知道该选项卡的类型?当它返回时,您可以使用
GetType()
然后找到该属性。如果您的一个函数可以返回不同的
ITab
?特别是如果从外部源(如数据库或xml)中选择正确的源代码。需要调用该委托。

在实际调用返回该委托的方法之前,为什么需要知道该选项卡的类型?当它返回时,您可以使用
GetType()
然后找到该属性。如果您的一个函数可以返回不同的
ITab
?特别是如果从外部源(如数据库或xml)中选择正确的源代码。需要调用该委托。

通常,您似乎将两个问题结合起来/混淆:一个是关于选项卡的(元数据),另一个是选项卡加载时间的速度优化。如果现在需要元数据,但以后需要选项卡内容,则需要拆分它们

也就是说,不要返回
IEnumerable
,返回类似于
IEnumerable
的内容,其中
ITabInfo
包含1)关于您立即需要的选项卡的信息,以及2)稍后调用以加载选项卡实际内容的委托


您无法获得“某个方法将在将来的某个调用中返回的类型”。这相当于一个水晶球(想象一下
返回random.Next(2)=0?(ITab)new TabTypeA():(ITab)new TabTypeB();
)。

通常,您似乎将两个问题结合/混淆:一个是关于选项卡的(元数据)数据,另一个是选项卡加载时间的速度优化。如果现在需要元数据,但以后需要选项卡内容,则需要拆分它们

也就是说,不要返回
IEnumerable
,返回类似于
IEnumerable
的内容,其中
ITabInfo
包含1)关于您立即需要的选项卡的信息,以及2)稍后调用以加载选项卡实际内容的委托


您无法获得“某个方法将在将来的某个调用中返回的类型”。这相当于一个水晶球(想象
返回random.Next(2)=0?(ITab)new TabTypeA():(ITab)new TabTypeB();
)。

使用泛型或属性。旁注:你的问题几乎与“如何知道什么是random.Next将返回而不调用它”…使用泛型或属性。旁注:你的问题与“如何知道什么是随机的。下一个将返回而不调用它。”“…+1-正式来说,如果不调用函数,就无法知道返回的函数是什么。@AlexeiLevenkov是的,即使他通过解析该方法完成了所有的选择,也将毫无用处。谢谢你的回答。你完全正确。这种设计几乎毫无意义。+1-在形式上,如果不调用它,就无法知道什么函数将返回。@AlexeiLevenkov是的,即使他分析了所有的替代方法,它也将毫无用处。谢谢你的回答。你完全正确。这种设计毫无意义。