我想使用WeakReference
並希望將通用類型傳遞給它。使用通用參數並將其存儲在弱引用中
public class SomeDataSource : UICollectionViewDataSource
{
private WeakReference<T> weakController;
public SomeDataSource (T controller)
{
this.weakController = new WeakReference<T>(controller);
}
}
當我想訪問我的控制器,我必須知道類型。我想過這樣的事情:
if (typeof(SomeViewController) == weakController.GetType()) {
SomeViewController controller;
if (weakController.TryGetTarget (out controller)) {
// do something
}
}
這可能嗎?目前我收到
無法找到類型或名稱空間名稱'T'。您是否缺少裝配參考?
無處不在我用T
。我的研究表明這種
,但我不知道有沒有用這樣的事情。
'T'必須包括在類定義:'公共類SomeDataSource'此後,您可以在SomeDataSource類中的任何函數中使用'typeof(T)' –
如果我在類定義中使用它,我會得到更多的編譯錯誤,因爲我還沒有定義類型。我不太瞭解使用它的影響。 – testing