已有57人关注
C#泛型接口问题
发表在C#图书答疑 2012-09-08
是否精华
版块置顶:
c#羊皮卷《学通c#的24堂课》——7.5泛型及其使用
1.所有的文字都看懂了,但是看完后还是不明白其意思
2.没有接触过c#3.5,您能否帮我解释一下。
3.书中例子我的理解
例子中实例化的factory,实际是一个DataTable的类型,他继承自System.ComponentModel.IListSource。
4.这么做的意义和实际作用是什么?
假设,我重载一个DataGrid加入比如DropDownlist,等其他控件和我自己的方法,我可以从也面层获取该类的实例,避免装箱传递给其他层的函数?还是说完成了多重继承?(我的假设是否正确?请您给出一个实际的应用的场景。)
分享到:
精彩评论 1
whw83
学分:0 LV1
TA的每日心情
加油
2021-01-05 20:59:07
2012-09-08
沙发
1.<>的作用就是表示里边是参数?
2.接口中调用CreateInstance方法是否指类中的构造函数
3.    public class Factory<T, TI> : IGenericInterface<TI> where T : TI, new()
T代表的是当前类Factory的类型,TI表示父类的类型?whereT:TI表示T继承自TI,T:TI,new()是T:TI,T,new()的缩写?要是没有new(),Factory类就不能实例化?
=========================================================================
下面是书中附带的代码
=========================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


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

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照