我想知道C#是否支持類泛型的隱式類型發現。泛型的隱式類型發現
例如,這樣的函數存在於方法泛型上。
我可以有以下方法:
public void Foo<T>(T obj);
,並調用它是這樣的:
int n = 0;
instance.Foo(n);
正如你所看到的,我不指定<int>
通用的限制。它被隱式發現,因爲我通過了一個int
值。
我要完成類似的東西在一個類定義級別:
internal interface IPersistenceStrategy<E, T> : IDisposable
where E : UniqueEntity<T>
我希望它被定義爲IPersistenceStrategy<MyEntity>
,其中MyEntity is an UniqueEntity<int>
。
正如您所看到的,T
類型參數正在從MyEntity
中隱式發現。
但是,這不起作用。我必須提供T
PARAM明確:
IPersistenceStrategy<MyEntity, int> myStrategy;
爲什麼不工作這個功能? C#編譯器不夠智能,無法自動發現我的類型參數嗎?
有什麼方法可以完成我在找的東西嗎?
提不,你不能做到這一點。 – Lee 2014-11-21 11:50:37
@李爲什麼不呢? :( – 2014-11-21 11:51:17
只是因爲它不在規格中。 – 2014-11-21 11:52:02