我寫了一個擴展方法,它根據作爲索引器傳遞給函數的類型來查找控件。這是我的擴展方法。如何改進我的擴展方法
public static T FindControlByType<T>(this Control childCnt, string Id = "")
{
foreach (Control item in childCnt.Controls)
{
if (item is T)
{
if (Id == "")
{
return (T)Convert.ChangeType(item, typeof(T));
}
if (item.ID.Contains(Id))
{
return (T)Convert.ChangeType(item, typeof(T));
}
}
}
//return T
}
我想返回類型T的控制。我如何實現這一目標?
感謝您的快速響應。不,因爲'typeof(T)'是'System.Type'類型的一個實例,所以你不會返回默認值(T),也就是說,當cnt被nt發現時,返回相同的類型,即typeOf(T)控制 – Tuscan
需要返回一個'T'類型的實例。 –