泛型,望指点~~ 本帖最后由 yollxt 于 2009-07-31 15:43:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 List <UserInfo> cList = new List <UserInfo>(); cList.UserName="张三"; cList.Password="123"; 错误的List <UserInfo> cList = new List <UserInfo>(); cList[0].UserName="张三"; cList[0].Password="123"; 泛型最大的优点可以进行约束的可变的集合.. 以下代码可以体现泛型的优势之一:class StackCls<T> { T[] arr = new T[10]; int count = 0; public void Push(T value) { arr[count] = value; count++; } public T Pop(int index) { return arr[index]; } }//可以定义这样的泛型类,在运行时实例化类,根据不同的参数,而操作不同类型的数据,提高了代码了可用性,避免因为装箱、拆箱操作造成的性能损失。 StackCls<int> stk = new StackCls<int>(); StackCls<string> stk = new StackCls<string>();..//客户端实例化类 List <UserInfo> cList = new List <UserInfo>(); cList.UserName="张三"; cList.Password="123"; 这种使用方式是错误的!访问List成员要使用索引或者索引值.. List<ProductClass> List_ProductClass = new List<ProductClass>(); ProductClassSystem productClassSystem = new ProductClassSystem(); List_ProductClass = productClassSystem.Get_ProductClass(0); ClassID.DataSource = List_ProductClass; ClassID.DataTextField = "ClassName"; ClassID.DataValueField = "ClassID"; ClassID.DataBind();帮忙解释一下这里用到的泛型的意义? 1. List <UserInfo> MYList = new List <UserInfo>(); UserInfo cList =new UserInfo; UserInfo cList1 =new UserInfo; MYList .Add(cList );MYList .Add(cList1 ); MYList[0].UserName="张三"; MYList[0].Password="123"; List <UserInfo> cList = new List <UserInfo>(); cList.UserName="张三"; cList.Password="123"; 错误的 ,正确如下:List <UserInfo> cList = new List <UserInfo>(); cList[0].UserName="张三"; cList[0].Password="123"; 泛型最大的优点可以对添加数据进行约束,能够提前发现不合法的数据类型;泛型还有很多方法,可以对数据进行排序等操作;可以通过索引来取数据。 在没有泛型以前代码会是这样的List List_ProductClass=new List();List_ProductClass.Add(new ProductClass());虽然 你知道你往 List_ProductClass 里 存的是 ProductClass 类但是因为 List 中存储的是 object 对象,所以在使用的时候你还需要 类型转换有了泛型之后,你可以直接 指定List<ProductClass> List_ProductClass=new List<ProductClass>();这个时候 List_ProductClass 就只能存储 ProductClass 类型的对象(ProductClass类 或继承了ProductClass的类)了,存别的就会报错~ 是ProductClass 这个类里面有两个函数 Name Pwd 的话,这样就只能往里面传两个函数? List <UserInfo> MYList=new List <UserInfo>();//定义泛型集合 MYList ,MYList只能存储 UserInfo 类型UserInfo cList=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cListUserInfo cList1=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cList1MYList .Add(cList );//将cList 添加到 MYList 中MYList .Add(cList1 );//将cList1 添加到 MYList 中 使用泛型的好处:假设ProductInfo中有一个companyID属性,返回私有字段_companyID的值(int类型)List<ProductInfo> list=new List<ProductInfo>();可以这样使用:int companyId=list.company在没有泛型的时候:List list=new List();list.Add(new ProductInfo());因为list中存储的是object类型,所以在使用的时候需要进行类型转换,会占用系统资源。使用:int companyId=(int)list.company; UserInfo 不是类型啊,他是一个实体类~~,你的意思?new两个对象出来是什么意思?之后怎么用? UserInfo cList =new UserInfo; 少了个()UserInfo cList =new UserInfo(); 楼主的第一种写法是错误的,cList 是一个List,而不是UserInfo实体,想赋值的首先要选择器重一个UserInfocList[0].UserName="aaa";cList[0].Password="bbb";泛型的两大好处就是1. 不用装箱拆箱2. 因为是编译时就确定了类型,所以会防止你的类型错误~~ new两次添加进去之后会是怎么样?形容一下~,谢谢大家 List <UserInfo> cList = new List <UserInfo>(); foreach(DataRow dr in dt.Rows){ UserInfo u=new UserInfo(); u.UserName="张三"; u.Password="123"; cList.Add(u);} List <UserInfo> 是对象集合,类似于数据集,UserInfo 类似数据集中的行参考参考 第一种写法是错误的,他要有索引,应该是clist[i].UserName="张三";clist[i].PassWord=“123”; 1. List <UserInfo,AAA> cList = new List <UserInfo,AAA>(); cList[0].UserName="张三"; cList[0].Password="123";那么 我要用到AAA呢 可以用 cList[1].(改类的属性)=XXX 当使用ArrayList中的元素时,必须要进行强制类型转换将元素转换为合适的元素类型,如果元素是值类型的值时,会引起CLR进行拆箱装箱操作,造成一定性能开销,还必须小心处理类型转换中可能出现的错误。泛型能处理这种形式的不足,经由指定一个或多个类型占位符,在处理类型操作时,不用知道具体类型,而将具体类型的指定交由运行时来实现,泛型集合类型使集合能处理多个类型,而又不用重复编码。 参考这个精华帖http://topic.csdn.net/u/20090622/21/df7f7b8a-61cd-4c8f-a964-0fe15377523d.html?7885里面讲的很好 急求16进制数据分析 请教高手!!!急 C#怎么判断数字类型还是字符类型 byte[] 与string之间如何实现相互转换? 如何动态获取Datagrid的选中行的各字段的值?? iframe上传是怎么回事,需要详细点的 WPF Combobox里面的选项是checkbox C#打印程序相关问题 请教C#WinForm下的UDP代码(服务器和客户端) delegate的具体含义? 做好的C/S结构的项目,如何才能在没有装framwork的机器上运行? 按惯例,找工作前先来csnd贴简历
cList.UserName="张三";
cList.Password="123"; 错误的
List <UserInfo> cList = new List <UserInfo>();
cList[0].UserName="张三";
cList[0].Password="123"; 泛型最大的优点可以进行约束的可变的集合..
class StackCls<T>
{
T[] arr = new T[10];
int count = 0;
public void Push(T value)
{
arr[count] = value;
count++;
}
public T Pop(int index)
{
return arr[index];
}
}
//可以定义这样的泛型类,在运行时实例化类,根据不同的参数,而操作不同类型的数据,提高了代码了可用性,避免因为装箱、拆箱操作造成的性能损失。
StackCls<int> stk = new StackCls<int>();
StackCls<string> stk = new StackCls<string>();
..
//客户端实例化类
cList.UserName="张三";
cList.Password="123";
这种使用方式是错误的!
访问List成员要使用索引或者索引值..
List<ProductClass> List_ProductClass = new List<ProductClass>();
ProductClassSystem productClassSystem = new ProductClassSystem();
List_ProductClass = productClassSystem.Get_ProductClass(0);
ClassID.DataSource = List_ProductClass;
ClassID.DataTextField = "ClassName";
ClassID.DataValueField = "ClassID";
ClassID.DataBind();帮忙解释一下这里用到的泛型的意义?
List <UserInfo> MYList = new List <UserInfo>();
UserInfo cList =new UserInfo;
UserInfo cList1 =new UserInfo;
MYList .Add(cList );
MYList .Add(cList1 );
MYList[0].UserName="张三";
MYList[0].Password="123";
cList.UserName="张三";
cList.Password="123"; 错误的 ,正确如下:
List <UserInfo> cList = new List <UserInfo>();
cList[0].UserName="张三";
cList[0].Password="123";
泛型最大的优点可以对添加数据进行约束,能够提前发现不合法的数据类型;
泛型还有很多方法,可以对数据进行排序等操作;
可以通过索引来取数据。
代码会是这样的List List_ProductClass=new List();
List_ProductClass.Add(new ProductClass());虽然 你知道你往 List_ProductClass 里 存的是 ProductClass 类
但是因为 List 中存储的是 object 对象,所以在使用的时候你还需要 类型转换有了泛型之后,你可以直接 指定
List<ProductClass> List_ProductClass=new List<ProductClass>();
这个时候 List_ProductClass 就只能存储 ProductClass 类型的对象(ProductClass类 或继承了ProductClass的类)了,存别的就会报错~
是ProductClass 这个类里面有两个函数 Name Pwd 的话,这样就只能往里面传两个函数?
List <UserInfo> MYList=new List <UserInfo>();//定义泛型集合 MYList ,MYList只能存储 UserInfo 类型
UserInfo cList=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cList
UserInfo cList1=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cList1
MYList .Add(cList );//将cList 添加到 MYList 中
MYList .Add(cList1 );//将cList1 添加到 MYList 中
假设ProductInfo中有一个companyID属性,返回私有字段_companyID的值(int类型)List<ProductInfo> list=new List<ProductInfo>();
可以这样使用:int companyId=list.company
在没有泛型的时候:
List list=new List();
list.Add(new ProductInfo());
因为list中存储的是object类型,所以在使用的时候需要进行类型转
换,会占用系统资源。
使用:int companyId=(int)list.company;
new两个对象出来是什么意思?之后怎么用?
少了个()
UserInfo cList =new UserInfo();
想赋值的首先要选择器重一个UserInfocList[0].UserName="aaa";
cList[0].Password="bbb";泛型的两大好处就是
1. 不用装箱拆箱
2. 因为是编译时就确定了类型,所以会防止你的类型错误~~
new两次添加进去之后会是怎么样?形容一下~,谢谢大家
foreach(DataRow dr in dt.Rows)
{
UserInfo u=new UserInfo();
u.UserName="张三";
u.Password="123";
cList.Add(u);
}
UserInfo 类似数据集中的行
参考
参考
应该是
clist[i].UserName="张三";
clist[i].PassWord=“123”;
1. List <UserInfo,AAA> cList = new List <UserInfo,AAA>();
cList[0].UserName="张三";
cList[0].Password="123";那么 我要用到AAA呢 可以用 cList[1].(改类的属性)=XXX
里面讲的很好