我收到以下錯誤。C#通用約束問題
類型「Test.ICacheProvider」不能被用作在通用類型的類型參數 「TStorageProvider」或方法 「StorageManager.Test.IFileInfo」。沒有 從 'StorageManager.Test.ICacheProvider'到 'StorageManager.Test.IStorageProvider'的隱式引用轉換。
這個程序設計結構有什麼不對嗎?
計劃:
// Cache Provider Classes
public interface ICacheProvider { }
public class BaseCacheProvider : ICacheProvider { }
public class DerivedCacheProvider : BaseCacheProvider { }
// Storage Classes
public interface IStorageProvider<TCacheProvider> where TCacheProvider :
ICacheProvider { }
public interface BaseStorageProvider<TCacheProvider> :
IStorageProvider<TCacheProvider> where TCacheProvider : ICacheProvider { }
public interface DerivedStorageProvider : BaseStorageProvider<ICacheProvider> { }
// User Classes
public interface IFileInfo<TStorageProvider>
where TStorageProvider : IStorageProvider<ICacheProvider> { }
public class FileInfo : IFileInfo<ICacheProvider> { }
您能告訴我們產生錯誤的行嗎? – Carsten 2013-03-27 10:00:00
FileInfo類的聲明行有錯誤。 – 2013-03-27 10:01:04
我錯過了這個程序中缺少的東西嗎? – 2013-03-27 10:02:38