我有一个通用基类,如:
public abstract class SomeThingBase<T> where T : class
我希望有另一个这样的基类:
public abstract class MangerBase<T> where T : SomeThingBase<T>
你如何在C#中实现这一目标? 当尝试像这样使用ManagerBase时,它似乎无法工作。
class TestManager : ManagerBase<TestSomething>
答案 0 :(得分:1)
为了做到这一点,你必须从顶部传递你的通用声明。这可能会非常混乱,所以不要这样做。
angular.module('myApp')
.controller('ItemCtrl', function ($routeParams) {
var self = this;
self.productId = $routeParams.productId;
});
答案 1 :(得分:0)
绝对可以定义,但实际上无法实现。假设你有以下定义:
public abstract class SomeThingBase<T> where T : class { }
public abstract class MangerBase<T> where T : SomeThingBase<T> { }
但是,定义一个实现ManagerBase<T>
和SomethingBase<T>
的类是不可能的,因为不支持多重继承,并且T
不能满足这两个约束而没有多重继承的泛型类型。