2016-10-30 156 views
-2

我有一個簡單的代碼,當我將行my.Test<int>(); 更改爲my.Test<string>();時,它可以工作,但它對int無效。int類型必須是引用類型才能用作參數

class Program 
{ 
    class MyClass 
    { 
     public void Test<T>() 
      where T : class  // Generic Constraint 
     { 
      Console.WriteLine("Hello"); // Prints Hello 
     } 
    } 

    static void Main() 
    { 
     MyClass my = new MyClass(); 
     my.Test<int>(); 

     Console.ReadKey(); 
    } 
} 
+4

'where T:class'。 ['int'是'struct'](https://msdn.microsoft.com/en-us/library/t63sy5hs.aspx)。 –

+2

我的意思是..你字面上有一個通用的約束,說類型參數應該是一個類。 –

+2

當我嘗試將柴油放入其中時,我的汽油車不起作用。爲什麼是這樣? –

回答

3

在你的代碼有

where T : class 

和INT是不是一類。這就是爲什麼它不起作用。

相關問題