2012-04-19 82 views
4
private Result Execute(
    out T returnValue, 
    string storedProcedureName, 
    Hashtable parameters, 
    ExecuteType executeType) 
    where T : class 

以下錯誤的含義是什麼?如何解決?非通用聲明中不允許使用約束條件

錯誤在哪裏:約束不以非通用聲明

回答

19
private Result Execute<T>(
          out T returnValue, 
          string storedProcedureName, 
          Hashtable parameters, 
          ExecuteType executeType 
         ) where T : class 

Execute後所需的<T>允許的。

+0

非常好!完工。謝謝各不相同 – 2012-04-20 12:54:07

+0

什麼是擴展方法,它會使用擴展方法嗎? – 2017-05-05 09:27:57

1

是的它也適用於擴展方法。

class Class1<T> where T:class 
{ 
    public void MethodA() 
    { 
     Console.WriteLine("Method A"); 
    } 
} 

static class ExtenstionTest 
{ 
    public static void MethodA<T>(this Class1<T> A1, int a) where T : class 
    { 
     Console.WriteLine("Extension Method A" + a); 
    } 
} 
+0

好的,擴展方法也與泛型一起使用。 – 2017-05-05 09:35:26