gpt4 book ai didi

c# - 泛型类中的隐式类型参数

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:27 24 4
gpt4 key购买 nike

假设我有带强类型参数的 ViewModel我使用 NavigationService 接受页面类型作为参数,当不正确类型的参数传递给 Navigate 方法时。然后我希望编译器抛出一个错误。

到目前为止,我写了以下内容:

interface IPageViewModel<TParameter>    

void Navigate<TViewModel, TParameter>(TParameter argument)
where TViewModel : IPageViewModel<TParameter>;

class PageWithStringParameter : IPageViewModel<string>

为什么这不起作用?

navigationService.Navigate<PageWithStringParameter>("some string");

如果我将 PageWithStringParameter 作为 TViewModel 参数传递,TParameter 必须是字符串类型,因为它实现了 IPageViewModel。传递 TParameter 类型参数是多余的。

有什么办法,如何避免这样写:

navigationService.Navigate<PageWithStringParameter, string>("some string");

编译器错误非常令人困惑,特别是如果我还有 NavigateMethod 的无参数重载

最佳答案

方法 Navigate 有两个通用的两类参数。您只提供一个。不能部分指定类型参数。您要么指定所有这些,要么都不指定(在这种情况下所有都应该隐式解析)

关于c# - 泛型类中的隐式类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28105338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com