c# - 如何为类型参数添加 2 new() 约束?

标签 c# .net generics syntax generic-constraints

我想要这样的东西:

public static TTo JumpTo<TFrom, TTo>(this TFrom from_page) 
       where TTo : new() TFrom : new()
{
    ...
}

而且我想强制执行 TFrom 和 TTo 都是从基类型派生的。

我想把这个方法做成TFrom类型的扩展方法

这可能吗?正确的语法是什么?

最佳答案

在每个类型之前放置关键字where

public static TTo JumpTo<TFrom, TTo>(this TFrom from_page) 
    where TTo : SomeBaseType, new() 
    where TFrom : SomeOtherBaseType, new()
{
     ...
}

关于c# - 如何为类型参数添加 2 new() 约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12143944/

相关文章:

c# - 为什么 Path.Combine 没有合并路径和文件?

c# - 以编程方式编辑 Microsoft Word 文档

generics - 在 F# 中使用泛型创建 EnumArray 类型

typescript - 使用 ConstructorParameters 扩展泛型类?

delphi - 包含 TObjectList<T> 的 TGenericClass<T> 无法编译

c# 我需要每个星期天运行一个窗口服务

c# - 使用 PRISM 的 MVVM 模式上下文中的命令方法是什么?

c# - 2维数组的linq

c# - 如何最好地手动处理 Entity Framework 代码优先模型类的现有数据库列映射?

c# - 如何跨对象链处理事件?