c# - 在 C# 中重写泛型方法

标签 c# generics

我认为我不能覆盖派生类的泛型方法。

http://my.safaribooksonline.com/book/programming/csharp/9780071741163/generics/ch18lev1sec13

此链接中的代码运行良好。尽管

的实例类型被调用

使用基类而不是派生类型的实例。

现在我很困惑,因为我以前的一个问题Type parameter declaration must be identifier not a type

是关于使用不起作用的基类型实例调用覆盖泛型方法!

最佳答案

问题是对方法签名和声明的简单混淆。链接代码覆盖了返回 T 的方法签名,没有返回 T 的参数,没有参数。这非常好,因为方法签名相同。

链接的问题试图覆盖 Document<T, U> 的返回值与 Document<type1, type2> ,这本身是无效的,因为泛型括号中不允许类型,但也无效,因为覆盖更改了方法签名。

关于c# - 在 C# 中重写泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167789/

相关文章:

c# - 为什么对象在向上转换时保存属性

c# - 如何在某些方法中传递 Dictionary<string, string> 对象

c++ - 泛型迭代器

c# - Ninject 按约定绑定(bind)不适用于泛型类型

java - 相同 JDK 上的相同代码可以在 Eclipse 上编译,但会在 Netbeans、IDEA 或命令行上导致类型不可转换

c# - Entity Framework 不将数据保存到 WPF 中的数据库

c# - 主要权限(属性)如何工作?

c# - 如何在 LINQ 查询语法中进行最大聚合?

java - 二元运算符的错误操作数类型

c# - 使用泛型的 WPF View/ViewModels - 如何?