using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace T { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { Convert.ToInt32(textBox1.Text); TTest <int> t = new TTest <int>(); t.OutPut(); } catch { TTest <string> t = new TTest <string>(); t.OutPut(); } } }
public abstract class TTest <T> { public virtual void OutPut() {
} } public class StringTTest : TTest <string> { public override void OutPut() { MessageBox.Show("输入的是字符串!"); } }
public class IntTTest : TTest <int> { public override void OutPut() { MessageBox.Show("输入的是一个整数!"); } } }
2、父类的类型参数没有被实例化,但来源于子类,也就是说父类和子类都是泛型类,并且二者有相同的类型参 ======================================== public abstract class TTest { public virtual void OutPut() {
} } public class StringTTest : TTest { public override void OutPut() { MessageBox.Show("输入的是字符串!"); } }
public class IntTTest : TTest { public override void OutPut() { MessageBox.Show("输入的是一个整数!"); } } 可以overrider ================================================ public abstract class TTest <T> { public virtual void OutPut() {
} } public class StringTTest <T> : TTest <T> where T:string { public override void OutPut() { MessageBox.Show("输入的是字符串!"); } }
public class IntTTest <T> : TTest <T> where T:int { public override void OutPut() { MessageBox.Show("输入的是一个整数!"); } } 可以Overrider =========================== 以上没测试,试试看
2、父类的类型参数没有被实例化,但来源于子类,也就是说父类和子类都是泛型类,并且二者有相同的类型参 ======================================== public abstract class TTest { public virtual void OutPut() {
} } public class StringTTest : TTest { public override void OutPut() { MessageBox.Show("输入的是字符串!"); } }
public class IntTTest : TTest { public override void OutPut() { MessageBox.Show("输入的是一个整数!"); } } 可以overrider ================================================ public abstract class TTest <T> { public virtual void OutPut() {
} } public class StringTTest <T> : TTest <T> where T:string { public override void OutPut() { MessageBox.Show("输入的是字符串!"); } }
public class IntTTest <T> : TTest <T> where T:int { public override void OutPut() { MessageBox.Show("输入的是一个整数!"); } } 可以Overrider =========================== 以上没测试,试试看