generics相关内容
编辑: 当然我真正的code看起来不完全一样。我试着写半伪code,使之更加明确whay我想做的事。 看起来它只是把事情搞乱来代替。 所以,我居然会喜欢做的事是这样的: 方法<&接口1 GT;(); 方法<接口2>(); 方法<&接口3 GT;(); ... 嗯......我想,也许我可以使用反射把它变成一个循环。所以,问题是:如何我怎么做。我的非常的浅反射的知
..
目前,我使用的: DataTable的DT = CreateDataTableInSomeWay();清单<&的DataRow GT;名单=新名单,LT; DataRow的>(); 的foreach(在dt.Rows的DataRow博士) { list.Add(DR); } 有没有更好/魔法方法吗? 解决方案 如果您正在使用.NET 3.5中,你可以使用
..
给出一个泛型类定义,就像 公共类ConstrainedNumber< T> : IEquatable< ConstrainedNumber< T>>中 IEquatable< T&GT ;, IComparable的< ConstrainedNumber< T>>中 IComparable的<
..
是否有可能实现以下code?我知道这是行不通的,但我不知道是否有解决方法吗? K型= typeof运算(双); 清单< K> LST =新的List< K>(); 解决方案 是的,有: VAR genericListType = typeof运算(名单<>); VAR specificListType = genericListType.Make
..
这导致编译时异常: 公共密封类ValidatesAttribute< T> :属性 {}[void验证<串GT] 公共静态类StringValidation {} 我知道C#不支持通用的属性。然而,许多谷歌搜索后,我似乎无法找到原因。 有谁知道为什么泛型类型不能从属性导出?任何理论? 解决方案 好吧,我不能回答为什么它是不可用的,但我的可以的确认,它不是一个CLI的问题
..
我会做什么,如果我想有只接受已重载操作类型,例如减法运算符的通用方法。我试图用一个接口作为约束,但接口不能有运算符重载。 什么是实现这一目标的最佳途径? 解决方案 有没有直接的答案;运营商是静态的,并且不能在约束pssed前$ P $ - 和现有primatives不实现任何特定的接口(对比IComparable的并[d T>],它被用来模拟大于/小于) 不过,如果你只是希望它的
..
在C#中,我有以下对象: 公共类项目 {}公共类任务< T> {}公共类TASKA< T> :任务< T> {}公共类TaskB< T> :任务< T> {} 我想用TASKA或TaskB C#反射动态创建( Activator.CreateInstance )。不过,我不知道前手的类型,所以我需要的基础上,如“namespace.
..
我在我的项目一个通用类派生类。 公共类GenericClass< T> :GenericInterface< T> { }公共类测试:GenericClass<&SOMETYPE GT; { } 有没有办法找出是否键入对象从 GenericClass ?来源 t.IsSubclassOf(typeof运算(GenericClass<>)) 不起作
..
按照 == 运营商的 MSDN , 有关predefined值类型时, 等号(==)返回如果属实 其操作数的值相等, 否则为false。对于引用类型 不是字符串,返回==如果是真的 其两个操作数指的是同 目的。对于字符串类型,= = 比较字符串的值。 用户定义的值类型可以重载 ==操作符(请参见运算符)。所以可以 用户定义的引用类型,虽然 默认==行为描述 以上为pr
..
谁能给我解释一下我为什么会想在C#中使用的IList超过列表? 的相关问题:为什么认为是坏,露出列表< T> 的 解决方案 如果您通过其他人会使用一个库暴露你的类,你通常要通过接口而不是具体实现揭露它。如果您决定以后更改类的实现使用不同的具体类这将帮助。在这种情况下,磁带库的用户并不需要更新其code,因为接口不改变。 如果你只是使用它的内部,你可能顾不了那么多,并使用列表
..
我在C#对象的泛型列表,并希望克隆名单。在列表中的项目是可复制的,但似乎没有成为一种选择做 list.Clone()。 有没有解决这个简单的方法? 解决方案 您可以使用扩展方法。 静态类扩展 { 公共静态的IList< T>克隆< T>(这个IList的< T> listToClone)其中T:ICloneable {
..
我主要是使用Java和泛型是相对较新。我继续读了Java做出的错误决定或.NET具有更好的实现等等等等。 那么,什么是仿制药C ++,C#,Java之间的主要区别?优点/每个的利弊? 解决方案 我将添加我的声音噪声,并采取刺伤澄清事情: C#泛型可以声明这样的事情。 列表<&人GT;富=新的List<&人GT;(); 和则编译器将prevent你把东西并不人到列表
..
任何人有一个快速的方法去复制在C#泛型列表? 解决方案 也许你应该考虑使用的HashSet 的?
..
让说我有一个列表< T> ABC =新的List< T&GT ;; A类中公共类MyClass的< T> // ... 。 后来,当我初始化类中, T 变成 MyTypeObject1 。所以我有一个通用的列表,名单,LT; MyTypeObject1> 。 我想知道,我的班级列表中包含什么类型的对象,例如名为 ABC 列表中包含什么类型的对象? 我做不到
..
我要寻找一个更好的模式的与每个需要处理的元素列表的工作,然后根据结果从列表中删除。 您不能使用上卸下摆臂(元素)在的foreach(在X VAR元素)(因为它导致集合已修改;枚举操作可能不会执行除外)......你也不能使用的for(int i = 0; I< elements.Count();我++)和 .RemoveAt(我),因为它会破坏在收集相对你的当前位置 I 。 有一种优雅的
..
我有一个名为订单有诸如的OrderId ,订购日期,数量和总。我有这个订单类的列表: 列表<排序> objListOrder =新的List<排序>(); GetOrderList(objListOrder); //填写订单列表 现在我想根据订单对象的一个属性列表进行排序,比如我需要通过订单日期或订单ID来排序。 我怎样才能做到这一点在C#? 解决方案 我能想
..
标题是那种晦涩。我想知道的是,如果这是可能的: 字符串的typeName =<从somwhere&GT阅读类型名称;; 键入=的myType Type.GetType(typeName的);MyGenericClass<&的myType GT; myGenericClass =新MyGenericClass<&的myType GT;(); 显然,MyGenericClass
..
谁能告诉我,如果有泛型的方式来限制一个泛型类型参数 T 仅 的Int16 的Int32 的Int64 UINT16 UInt32的 UINT64 我知道了其中,关键字,但无法找到一个接口的仅这些类型, 是这样的: 静态布尔IntegerFunction< T>(T值),其中T:INumeric 解决方案 Hejlsberg为描述了为何不实施该功能接受
..
什么是调用一个泛型方法时,类型参数是不是在编译时已知的最佳方式,而是在运行时动态获得? 考虑下面的示例code - 在例()方法中,什么是调用 GenericMethod&LT最简洁的方式; T>( )使用键入存储在的myType 变量? 公共类样品 { 公共void示例(字符串的typeName) { 键入=的myType FindType(typeNa
..
我试着在C通用的比较函数用法的一个简单的例子,但在初始化时,我得到的警告信息的类型时,初始化它们是不相容的。感觉,因为我失去了一些东西基本在这里... 的#include<&stdio.h中GT; #包括LT&;&string.h中GT;INT 比较(INT(* COMP)(void *的第一,无效*秒),无效*改编,诠释大小) { INT I,J,的DUP = 0,arrsize
..