using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Web_Test
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(GenericMethod.Output<int>(23) + "<br />");
Response.Write(GenericMethod.Output<string>("abc") + "<br />");
Response.Write("<br /><br />------------------------------------------------------------------------<br /><br />");
GenericChild gc = new GenericChild();
Response.Write(gc.Output<string, IComparable>("aaa", "xxx") + "<br />");
Response.Write(gc.Output2<System.Data.DataTable>(new System.Data.DataTable())+"<br />");
}
}
public class GenericMethod
{
public static string Output<T>(T t)
{
return "类型" + t.GetType().ToString() + ";值:" + t.ToString();
}
}
public abstract class GenericPrent
{
public abstract X Output<X, Y>(X x, Y y) where X : Y;
public abstract string Output2<X>(X x) where X : System.ComponentModel.IListSource;
}
public class GenericChild : GenericPrent
{
public override T Output<T, Z>(T t, Z z)
{
return t;
}
public override string Output2<T>(T t)
{
return t.GetType().ToString();
}
}
}