登录
首页 » C#源码 » C# 创建一个泛型接口

C# 创建一个泛型接口

于 2022-03-11 发布 文件大小:20.08 kB
0 220
下载积分: 2 下载次数: 1

代码说明:

C# 创建一个泛型接口的例子,创建一个泛型接口的代码和方法如下:   public interface IGenericInterface   {    T CreateInstance(); //接口中调用CreateInstance方法   }   //实现上面泛型接口的泛型类   //派生约束where T : TI(T要继承自TI)   //构造函数约束where T : new()(T可以实例化)   public class Factory : IGenericInterface where T : TI, new()   {    public TI CreateInstance()//创建一个公共方法CreateInstance    {    return new T();    }   }   class Program   {    static void Main(string[] args)    {    //实例化接口    IGenericInterface factory =   Factory();    //输出指定泛型的类型    Console.WriteLine(factory.CreateInstance().GetType().ToString());    Console.ReadLine();    }   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 在LINQ to DataSet中对分组操作执行子查询
    C# 在LINQ to DataSet中对分组操作执行子查询,相关代码:   private void button1_Click(object sender, EventArgs e)   {//在LINQ to DataSet中对分组操作执行子查询    SqlConnection MyConnection = new SqlConnection();    MyConnection.ConnectionString = @"Data Source =.SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True";    MyConnection.Open();    SqlCommand MyCommand = new SqlCommand("Select * From Orders ", MyConnection);    DataSet MySet = new DataSet();    SqlDataAdapter MyAdapter = new SqlDataAdapter(MyCommand);    MyAdapter.Fill(MySet);    DataTable MyQueryTable = MySet.Tables[0];    var MyQuery = from MyOrder in MyQueryTable.AsEnumerable()    orderby MyOrder.Field("ShipCity")    group MyOrder by MyOrder.Field("ShipCity") into g    select new    {    MyCity = g.Key,    MyMaxFreight = (from MyData in g select MyData.Field("Freight")).Max()   
    2022-01-27 20:20:32下载
    积分:1
  • C# 锁定线程释放Mutex对象
    C# 锁定线程释放Mutex对象的例子,与锁定线程相比,多了释放Mutex对象的功能,实现方法和思路大致差不多:   C#锁定线程,可编写以下代码:   Program myProgram = new Program();//实例化类对象   myProgram.LockThread();//调用锁定线程方法   C# 释放Mutex对象,可编写以下代码:   Mutex myMutex = new Mutex(false);//实例化Mutex类对象   myMutex.WaitOne();//阻止当前线程   Console.WriteLine("锁定线程以实现线程同步");   myMutex.ReleaseMutex();//释放Mutex对象   完整可运行源码实例,请下载本源码。
    2022-08-10 07:43:23下载
    积分:1
  • Visual C# LINQ转换为一对多字典
    Visual C# 转换为一对多字典,构造泛型列表,使用LINQ查找用户代码小于3的列表,此时的query变量的类型是IEnumerable类型,使用ToLookup方法将query转换为一对多字典类型:   ILookup userLookup = query.ToLookup(itm => itm.UserCode);   label1.Text = "ILookup的结果是: ";   foreach (var user in userLookup)//遍历查询结果   {    label1.Text += user.Key;//显示主键    label1.Text += " ";    foreach (var user2 in user)//遍历所有值    {    label1.Text += user2.UserName + " , ";//显示键值    }    label1.Text += " ";   }
    2023-05-18 03:20:03下载
    积分:1
  • C# 使用 tabControl创建窗体TAB效果
    C# 使用 tabControl创建窗体TAB选项卡效果,大家都熟悉的功能,这个例子比较基础,面向C#的初学者,下面是实现本功能的核心代码:   private void Form1_Load(object sender, EventArgs e)   {    tabControl1.ImageList = imageList1;    tabPage1.ImageIndex = 0;    tabPage1.Text = "选项卡1";    tabPage2.ImageIndex = 0;    tabPage2.Text = "选项卡2";   }   本TAB运行效果请参见截图,完整源码请下载。
    2022-08-22 06:09:52下载
    积分:1
  • C# treeView节点动态删除和添加示例
    C# treeView节点动态删除和添加示例,本源码演示了创建一个treeView父节点,创建了三个子节点,然后演示了将这3个子节点添加到父节点中,最后演示了使用Remove方法移除指定的TreeView节点项,添加节点和删除节点定义了两个按钮事件,用户通过单击按钮,激活事件,两个事件的编写方法如下:   private void Form1_Load(object sender, EventArgs e)   {    //建立一个父节点    TreeNode tn1 = treeView1.Nodes.Add("名称");    //建立3个子节点    TreeNode Ntn1 = new TreeNode("明日科技");    TreeNode Ntn2 = new TreeNode("C#编程词典");    TreeNode Ntn3 = new TreeNode("C#从基础到项目实战");    //将这3个子节点添加到父节点中    tn1.Nodes.Add(Ntn1);    tn1.Nodes.Add(Ntn2);    tn1.Nodes.Add(Ntn3);   }   private void button1_Click(object sender, EventArgs e)   {    //如果用户选择了“名称”证明没有选择要删除的子节点    if (treeView1.SelectedNode.Text == "名称")    {    MessageBox.Show("请选择要删除的子节点"); //弹出选择删除节点的提示    }    else    {    treeView1.Nodes.Remove(treeView1.SelectedNode);//使用Remove方法移除选择项    }   }
    2023-07-29 02:55:08下载
    积分:1
  • 一个国外的C# 3D图表例子及源码
    一个国外的C# 3D图表例子及源码,不知道叫什么名字,有滚动条的应用,可用鼠标拖动改变图表的透视度,形成三维的图表效果,注释英文,有兴趣的自己下载源码研究吧。
    2023-01-07 08:20:03下载
    积分:1
  • C# 自定义DataGridView控件列单元格外观
    C# 自定义DataGridView控件列单元格外观的例子源码,这里只是一个演示,教会一种方法,因此仅定制DataGridView第一列单元格外观。最好是把数据库连接好,有数据读出这样能更好的看到自定义单元格的效果,详细的实现代码请下载源码包。
    2022-08-24 18:26:07下载
    积分:1
  • C# 文件排序、查找文件、正则表达式等操作实例集
    C# 文件排序等操作实例集,包括:按照文件修改日期排序、按照文件尺寸大小排序、按照时间范围查找文件、查找名称相同的文件、使用正则表达式设置查询条件、按照类型和类别查找日志事件、按照类型和类别查找日志事件、获取单个进程使用的最大物理内存。。
    2022-08-19 05:17:01下载
    积分:1
  • C#演示用Brush填充Rectangle图形
    C#画矩形,然后使用Brush填充Rectangle图形,单击按钮后会生成一个填充过的图形,需要创建Graphics对象,创建一个Brush对象,再使用Rectangle绘制一个矩形,然后使用Brush填充,实现这一过程,核心代码如下:   private void button1_Click(object sender, EventArgs e)   {    Graphics ghs = this.CreateGraphics();//创建Graphics对象    Brush mybs = new SolidBrush(Color.Red);//使用SolidBrush类创建一个Brush对象    Rectangle rt = new Rectangle(10, 10, 100, 100);//绘制一个矩形    ghs.FillRectangle(mybs, rt);//用Brush填充Rectangle   }
    2022-07-06 17:10:54下载
    积分:1
  • 鬼影源码去验证码3389 版本 用户
    鬼影源码去验证码3389 版本 用户 鬼影源码去验证码非常好用的
    2023-02-13 00:05:04下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载