generics相关内容

调用泛型方法,只有在执行时已知的类型参数

编辑: 当然我真正的code看起来不完全一样。我试着写半伪code,使之更加明确whay我想做的事。 看起来它只是把事情搞乱来代替。 所以,我居然会喜欢做的事是这样的: 方法<&接口1 GT;(); 方法<接口2>(); 方法<&接口3 GT;(); ... 嗯......我想,也许我可以使用反射把它变成一个循环。所以,问题是:如何我怎么做。我的非常的浅反射的知 ..
发布时间:2016-08-26 14:39:01 C#/.NET

你如何转换数据表为一个泛型列表?

目前,我使用的: DataTable的DT = CreateDataTableInSomeWay();清单<&的DataRow GT;名单=新名单,LT; D​​ataRow的>(); 的foreach(在dt.Rows的DataRow博士) { list.Add(DR); } 有没有更好/魔法方法吗? 解决方案 如果您正在使用.NET 3.5中,你可以使用 ..
发布时间:2016-08-26 14:37:45 C#/.NET

为什么C#泛型禁止的属性类型?

这导致编译时异常: 公共密封类ValidatesAttribute< T> :属性 {}[void验证<串GT] 公共静态类StringValidation {} 我知道C#不支持通用的属性。然而,许多谷歌搜索后,我似乎无法找到原因。 有谁知道为什么泛型类型不能从属性导出?任何理论? 解决方案 好吧,我不能回答为什么它是不可用的,但我的可以的确认,它不是一个CLI的问题 ..
发布时间:2016-08-26 14:28:28 C#/.NET

解决方案在.NET泛型重载运算约束

我会做什么,如果我想有只接受已重载操作类型,例如减法运算符的通用方法。我试图用一个接口作为约束,但接口不能有运算符重载。 什么是实现这一目标的最佳途径? 解决方案 有没有直接的答案;运营商是静态的,并且不能在约束pssed前$ P $ - 和现有primatives不实现任何特定的接口(对比IComparable的并[d T>],它被用来模拟大于/小于) 不过,如果你只是希望它的 ..
发布时间:2016-08-26 14:27:10 C#/.NET

如何使用反射动态创建通用的C#对象吗?

在C#中,我有以下对象: 公共类项目 {}公共类任务< T> {}公共类TASKA< T> :任务< T> {}公共类TaskB< T> :任务< T> {} 我想用TASKA或TaskB C#反射动态创建( Activator.CreateInstance )。不过,我不知道前手的类型,所以我需要的基础上,如“namespace. ..
发布时间:2016-08-26 14:06:37 C#/.NET

检查是否类是从一个通用类派生

我在我的项目一个通用类派生类。 公共类GenericClass< T> :GenericInterface< T> { }公共类测试:GenericClass<&SOMETYPE GT; { } 有没有办法找出是否键入对象从 GenericClass ?来源 t.IsSubclassOf(typeof运算(GenericClass<>)) 不起作 ..
发布时间:2016-08-26 14:05:59 C#/.NET

不能==操作符在C#中被应用到泛型类型?

按照 == 运营商的 MSDN , 有关predefined值类型时, 等号(==)返回如果属实 其操作数的值相等, 否则为false。对于引用类型 不是字符串,返回==如果是真的 其两个操作数指的是同 目的。对于字符串类型,= = 比较字符串的值。 用户定义的值类型可以重载 ==操作符(请参见运算符)。所以可以 用户定义的引用类型,虽然 默认==行为描述 以上为pr ..
发布时间:2016-08-26 14:03:54 C#/.NET

清单< T>或IList的< T>

谁能给我解释一下我为什么会想在C#中使用的IList超过列表? 的相关问题:为什么认为是坏,露出列表< T> 的 解决方案 如果您通过其他人会使用一个库暴露你的类,你通常要通过接口而不是具体实现揭露它。如果您决定以后更改类的实现使用不同的具体类这将帮助。在这种情况下,磁带库的用户并不需要更新其code,因为接口不改变。 如果你只是使用它的内部,你可能顾不了那么多,并使用列表 ..
发布时间:2016-08-26 13:59:55 C#/.NET

我如何克隆在C#泛型列表?

我在C#对象的泛型列表,并希望克隆名单。在列表中的项目是可复制的,但似乎没有成为一种选择做 list.Clone()。 有没有解决这个简单的方法? 解决方案 您可以使用扩展方法。 静态类扩展 { 公共静态的IList< T>克隆< T>(这个IList的< T> listToClone)其中T:ICloneable { ..
发布时间:2016-08-26 13:57:56 C#/.NET

什么是仿制药之间的C#和Java和模板在C ++的区别...?

我主要是使用Java和泛型是相对较新。我继续读了Java做出的错误决定或.NET具有更好的实现等等等等。 那么,什么是仿制药C ++​​,C#,Java之间的主要区别?优点/每个的利弊? 解决方案 我将添加我的声音噪声,并采取刺伤澄清事情: C#泛型可以声明这样的事情。 列表<&人GT;富=新的List<&人GT;(); 和则编译器将prevent你把东西并不人到列表 ..
发布时间:2016-08-26 13:57:24 Java开发

如何从一个普通的名单,LT获得T的类型; T&GT ;?

让说我有一个列表< T> ABC =新的List< T&GT ;; A类中公共类MyClass的< T> // ... 。 后来,当我初始化类中, T 变成 MyTypeObject1 。所以我有一个通用的列表,名单,LT; MyTypeObject1> 。 我想知道,我的班级列表中包含什么类型的对象,例如名为 ABC 列表中包含什么类型的对象? 我做不到 ..
发布时间:2016-08-26 13:56:12 C#/.NET

如何从一个泛型列表在遍历它删除元素?

我要寻找一个更好的模式的与每个需要处理的元素列表的工作,然后根据结果从列表中删除。 您不能使用上卸下摆臂(元素)在的foreach(在X VAR元素)(因为它导致集合已修改;枚举操作可能不会执行除外)......你也不能使用的for(int i = 0; I< elements.Count();我++)和 .RemoveAt(我),因为它会破坏在收集相对你的当前位置 I 。 有一种优雅的 ..
发布时间:2016-08-26 13:55:22 C#/.NET

如何排序列表< T>通过在对象中的属性

我有一个名为订单有诸如的OrderId ,订购日期,数量和总。我有这个订单类的列表: 列表<排序> objListOrder =新的List<排序>(); GetOrderList(objListOrder); //填写订单列表 现在我想根据订单对象的一个​​属性列表进行排序,比如我需要通过订单日期或订单ID来排序。 我怎样才能做到这一点在C#? 解决方案 我能想 ..
发布时间:2016-08-26 13:51:38 C#/.NET

通过实例化System.Type的一个类型参数的泛型类

标题是那种晦涩。我想知道的是,如果这是可能的: 字符串的typeName =<从somwhere&GT阅读类型名称;; 键入=的myType Type.GetType(typeName的);MyGenericClass<&的myType GT; myGenericClass =新MyGenericClass<&的myType GT;(); 显然,MyGenericClass ..
发布时间:2016-08-26 13:50:51 C#/.NET

有没有限制我的泛型方法来数值类型约束?

谁能告诉我,如果有泛型的方式来限制一个泛型类型参数 T 仅 的Int16 的Int32 的Int64 UINT16 UInt32的 UINT64 我知道了其中,关键字,但无法找到一个接口的仅这些类型, 是这样的: 静态布尔IntegerFunction< T>(T值),其中T:INumeric 解决方案 Hejlsberg为描述了为何不实施该功能接受 ..
发布时间:2016-08-26 13:47:30 C#/.NET

如何使用反射来调用一个泛型方法?

什么是调用一个泛型方法时,类型参数是不是在编译时已知的最佳方式,而是在运行时动态获得? 考虑下面的示例code - 在例()方法中,什么是调用 GenericMethod&LT最简洁的方式; T>( )使用键入存储在的myType 变量? 公共类样品 { 公共void示例(字符串的typeName) { 键入=的myType FindType(typeNa ..
发布时间:2016-08-26 13:44:59 C#/.NET

如何初始化在C通用功能

我试着在C通用的比较函数用法的一个简单的例子,但在初始化时,我得到的警告信息的类型时,初始化它们是不相容的。感觉,因为我失去了一些东西基本在这里... 的#include<&stdio.h中GT; #包括LT&;&string.h中GT;INT 比较(INT(* COMP)(void *的第一,无效*秒),无效*改编,诠释大小) { INT I,J,的DUP = 0,arrsize ..
发布时间:2016-08-24 13:58:35 C/C++