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是的,即使他分析了所有的替代方法,它也将毫无用处。谢谢你的回答。你完全正确。这种设计毫无意义。