泛型类中的隐式类型参数

里罗

假设我将具有强类型参数的ViewModels以及将不正确类型的参数传递给Navigate方法时使用的NavigationService接受页面类型作为参数。那我想让编译器抛出一个错误。

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

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的无参数重载

谢尔盖·别列佐夫斯基(Sergey Berezovskiy)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在泛型类隐式类型参数

来自分类Dev

泛型类的子类型的隐式类

来自分类Dev

泛型类型的隐式转换?

来自分类Dev

隐式转换泛型类型对象

来自分类Dev

Scala:泛型类型的隐式证据

来自分类Dev

在泛型类型的泛型类上访问类型参数

来自分类常见问题

从泛型类中的类型参数创建新对象

来自分类Dev

泛型与显式类型类/结构

来自分类Dev

C#中的泛型继承:无法将类型“ MyWidget”隐式转换为“ IWidget”

来自分类Dev

从类中获取泛型参数的类型,该类是从泛型接口继承的

来自分类Dev

c#获取泛型类中泛型类型参数的名称

来自分类Dev

隐式定义的泛型类型,这可能吗?

来自分类Dev

隐式定义的泛型类型,这可能吗?

来自分类Dev

具有隐式泛型类型的Scala模拟函数

来自分类Dev

泛型基类的隐式引用转换完成错误

来自分类Dev

将类型参数作为类型参数的类传递给Java中的泛型方法

来自分类Dev

将类型参数作为类型参数的类传递给Java中的泛型方法

来自分类Dev

在类中声明类型参数时,Java泛型类型会丢失常量类型

来自分类Dev

从隐式类中删除类型

来自分类Dev

类型类解析中的隐式类别

来自分类Dev

在Scala中将参数类型隐式地用于类型类

来自分类Dev

类中的getConstructors()中的泛型类型

来自分类Dev

泛型方法和泛型类中的类型推断

来自分类Dev

使用超类作为泛型子类型中的类型参数

来自分类Dev

类型不接受泛型中的参数

来自分类Dev

Haxe中泛型类型参数的构造

来自分类Dev

捕获映射类型中的泛型参数

来自分类Dev

泛型中的多态性-传递继承的对象时发生编译错误(无法隐式转换类型)

来自分类Dev

类声明中的泛型类型

Related 相关文章

热门标签

归档