我有以下問題與T和泛型方法的選項將其限制爲例如。一個引用類型(其中T:class)。所以,我得到了下面的代碼:強制T作爲代碼中的參考類型[CS0452錯誤]
public void mySave<T>(string filename, T obj)
{
Session s = connect(filename);
s.Save(obj);
}
與
public Document Save<TEntity>(TEntity entity) where TEntity : class;
沒有辦法申報mySave where T : class
因爲我從一個接口得到它。無論如何,我需要解決CS0452 (The type 'type name' must be a reference type in order to use it as parameter 'parameter name' in the generic type or method 'identifier of generic')
任何想法呢?
要麼你必須犧牲一些類型的安全性,並使用反射或在界面中添加約束。 –