c#泛型方法与其他泛型类型参数

时间:2015-12-15 19:09:56

标签: c# generics

我有2个通用类:Db<E>MR<T> 我想创建一个接收Db<T>并转换某些字段以便复制它们或MR<E>类型的方法。 使用它时,E和T是100%不同。

所以我的方法如下:

public static MR<E> GetMRFromDb<E>(Db<T> db) 
                where E : class 
                where T : class
{

}

当我将T悬停在where T : class我警告时出现以下错误:

  

类型或名称名称&#39; T&#39;无法找到...

MRDb都定义为通用类。

1 个答案:

答案 0 :(得分:2)

将方法的签名更改为:

.directive('vinContainer', function($parse, $compile){
   restrict: 'A',
   link: function($scope, elem, attrs){
       regex = /\[VIN:'([\w\d-_]*)'\](.*?)\[\/VIN\]/gmi
       anchor = '<a href="#" ng-click="vc.modelClick(\'$1\')">$2</a>'

       data = $parse(attrs.ngModel)($scope)
       parsed = data.replace(regex, anchor)

       elem.html(parsed).show()
       $compile(elem.contents())($scope)
   }
}

请注意,这会影响您调用此方法的方式。

而不是:

<div vin-container ng-model="vc.viewData"/>

应该是:

public static MR<E> GetMRFromDb<T,E>(Db<T> db)
      where T : class,
      where E : class
{
      // ...
}