我已经创建了一个函数,根据指定的类型返回值。我如何实现一个类型函数
代码:
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;
}
此代码失败很多时间,而类型转换。我如何实现它有效的方式?