简化C#中的循环通用约束?

莉亚·海斯(Lea Hayes)

给定以下基类:

public abstract class PurchaseSystemControllerBase<TController, TViewModel> : IInitializable
    where TController : PurchaseSystemControllerBase<TController, TViewModel>
    where TViewModel : PurchaseSystemViewModelBase<TController, TViewModel> {

    protected TViewModel ViewModel { get; private set; }

    ...
}

public abstract class PurchaseSystemViewModelBase<TController, TViewModel> : ViewModelBase
    where TController : PurchaseSystemControllerBase<TController, TViewModel>
    where TViewModel : PurchaseSystemViewModelBase<TController, TViewModel> {

    protected TController Controller { get; private set; }

    ...
}

具体实现如下:

public sealed class PurchaseSystemController : PurchaseSystemControllerBase<PurchaseSystemController, PurchaseSystemViewModel> {
    ...
}

public sealed class PurchaseSystemViewModel : PurchaseSystemViewModelBase<PurchaseSystemController, PurchaseSystemViewModel> {
    ...
}

有没有一种方法可以简化此操作,以便进行以下操作?

public sealed class PurchaseSystemController : PurchaseSystemControllerBase<PurchaseSystemViewModel> {
    ...
}

public sealed class PurchaseSystemViewModel : PurchaseSystemViewModelBase<PurchaseSystemController> {
    ...
}
乔恩·斯基特

不,不幸的是,至少在我不知道的情况下,没有丢失某些类型安全性。我的协议缓冲区端口中的消息类型与其对应的构建器类型之间的设置非常相似

如果只用一些非泛型基本类型声明ViewModelandController属性,那很好-但是,如果您需要两者确切地知道相应的类型,那么您将一团糟。

(请注意,您可能要考虑ViewModel和Controller是否应该彼此了解。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#中ValueType的通用类型约束

来自分类Dev

覆盖C#中的通用约束

来自分类Dev

C#中ValueType的通用类型约束

来自分类Dev

C# 的通用约束

来自分类Dev

简化C ++中的for循环

来自分类Dev

简化C#中的多个(非嵌套)foreach循环

来自分类Dev

C#试图简化通用类型接口的通用扩展功能

来自分类Dev

C#试图简化通用类型接口的通用扩展功能

来自分类Dev

C#使用通用类型简化构造函数中的属性选择器

来自分类Dev

C#中多通用列表中的for循环最佳实践

来自分类Dev

C#通用约束:结构数组

来自分类Dev

具有类型约束的Java通用接口与C#通用

来自分类Dev

如何在C#中为通用约束获取有效的类型对象?

来自分类Dev

如何在C#中通过反射提取通用方法约束?

来自分类Dev

如何在C#中约束通用参数的运算符?

来自分类Dev

如何在C#中为通用约束获取有效的类型对象?

来自分类Dev

通用约束中的通用类型

来自分类Dev

通用约束中的通用类型

来自分类Dev

不简化C#中的名称的开销

来自分类Dev

简化列表中复杂的 c# 列表

来自分类Dev

简化C ++ For循环

来自分类Dev

简化C ++ For循环

来自分类Dev

Dart中的通用约束

来自分类Dev

类型的C#通用约束可强制转换

来自分类Dev

基类和接口的 C# 通用约束

来自分类Dev

C#中的通用PInvoke

来自分类Dev

C#中的通用方法

来自分类Dev

C#中的通用Mergesort

来自分类Dev

C#中的通用PInvoke