閱讀英文

共用方式為


編譯器錯誤 CS0315

類型 'valueType' 不能作為泛型型別或方法 'TypeorMethod<T>' 中的型別參數 'T'。 沒有從 'valueType' 到 'referenceType' 的 Boxing 轉換。

如果您將泛型類型限制為特定類別,並嘗試使用無法對其進行隱含 Box 處理的實值類型來建構該類別的執行個體,則會發生這個錯誤。

更正這個錯誤

  1. 其中一個解決方案是將結構重新定義為類別。

範例

下列範例會產生 CS0315:

// cs0315.cs  
public class ClassConstraint { }  
public struct ViolateClassConstraint { }  
  
public class Gen<T> where T : ClassConstraint  
{
}  
public class Test  
{  
    public static int Main()  
    {  
        Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315  
        return 1;  
    }  
}  

另請參閱