指定されたタイプに従って値を返す関数を作成しました。タイプ関数を実装するにはどうすればいいですか?
コード:
private T FindCellValue<T>(GridViewRow grdRow, string cntName)
{
var currColType = grdRow.FindControl(cntName);
object val = currColType;
if (currColType is HiddenField)
{
val = ((HiddenField)currColType).Value;
}
if (currColType is TextBox)
{
val = ((TextBox)currColType).Text;
}
if (currColType is HtmlInputText)
{
val = ((HtmlInputText)currColType).Value;
}
if (currColType is DropDownList)
{
var selectedItem = ((DropDownList)currColType).SelectedItem;
val = new string[] { selectedItem.Text, selectedItem.Value };
}
if (currColType is RadDateTimePicker)
{
val = ((RadDateTimePicker)currColType).SelectedDate;
}
if (!(val is Control || val is WebControl || val is HtmlInputControl) && string.IsNullOrEmpty(Convert.ToString(val)))
{
return default(T);
}
return (T)val;
}
型キャストしながら、このコードは、多くの時間を失敗しました。それを効率的な方法で実装するにはどうしたらいいですか?