在.net 2.0 以后引入了泛型的概念,支持泛型的对象有类、方法、接口等。这里只是一个泛型的简单(方法)的简单的示例。。。
泛型函数
#region 转换 Request 值为指字类型
/// <summary>
/// 转化 Request 值为指字类型
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="param">参数</param>
/// <param name="defaultValue">默认值</param>
/// <param name="isRequestForm">是否表单参数(否为 url 中的参数)</param>
/// <returns>T: 泛型</returns>
public static T ConvertRequest<T>(string param, T defaultValue, bool isRequestForm)
{
string RequestStr = "";
if (!isRequestForm)
{ RequestStr = HttpContext.Current.Request.QueryString[param]; }
else
{ RequestStr = HttpContext.Current.Request.Form[param]; }
if (RequestStr != null)
{
try
{ return (T)System.Convert.ChangeType(RequestStr, typeof(T)); }
catch
{ return defaultValue; }
}
else
{ return defaultValue; }
}
#endregion
#region 转换 Request 值为指字类型
/// <summary>
/// 转化 Request 值为指字类型
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="param">参数</param>
/// <param name="defaultValue">默认值</param>
/// <param name="isRequestForm">是否表单参数(否为 url 中的参数)</param>
/// <returns>T: 泛型</returns>
public static T ConvertRequest<T>(string param, T defaultValue, bool isRequestForm)
{
string RequestStr = "";
if (!isRequestForm)
{ RequestStr = HttpContext.Current.Request.QueryString[param]; }
else
{ RequestStr = HttpContext.Current.Request.Form[param]; }
if (RequestStr != null)
{
try
{ return (T)System.Convert.ChangeType(RequestStr, typeof(T)); }
catch
{ return defaultValue; }
}
else
{ return defaultValue; }
}
#endregion
泛型函数应用
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = ConvertRequest<int>("id", 0, false).ToString();
Label1.Text = ConvertRequest<string>("catalog", "null", true);
}
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = ConvertRequest<int>("id", 0, false).ToString();
Label1.Text = ConvertRequest<string>("catalog", "null", true);
}