extension-methods相关内容

C#扩展方法 - 字符串分割这也接受一个转义字符

我想写的.NET String类的扩展方法。我想这是对分割方法的特殊varation - 一个接受一个转义字符,以prevent分割字符串时,转义字符分隔符之前使用。 什么是写这个的最好方法是什么?我很好奇的最佳非正则表达式的方式来对待它。 大一些的签名一样...... 公共静态字符串[]斯普利特(此字符串输入,字符串分隔符,字符escapeCharacter) { // ... } ..
发布时间:2015-11-24 21:35:53 C#/.NET

是否有解决办法的泛型类型约束"特级"枚举在C#3.0吗?

更新:查看这个问题的底部为一个C#的解决方法 您好, 考虑下面的扩展方法: 公共静态布尔HasFlags< T>(这件T值,T标志) 其中T:System.Enum { // ... } 这个意愿,大家可能都知道,扔在编译时错误,因为一个类,一般是不允许从 System.Enum 继承。问题是,使用枚举关键字事实上确实从 System.Enum 继承指定的 ..
发布时间:2015-11-24 20:53:15 C#/.NET

扩展方法VS静态工具类

我在寻找一些优点和缺点,使用了静态工具类扩展方法在C#应用程序。 例如,在扩展方法列加是通过调用类的名字,而不是像“StringUtils的”东西的舒适。但是一个反面的是,它可以模糊分辨什么是在框架中,什么不是行。 解决方案 我会说一个的 PRO 的是,它模糊了区别什么是在框架中,什么不是行:可以用自己的code一样自然框架code,对框架类型进行操作。 扩展方法不宜随意使用的,当然 - ..
发布时间:2015-11-24 20:51:15 C#/.NET

在值类型定义的扩展方法不能用于创建代表 - 为什么不呢?

扩展方法可以分配给匹配的对象在他们的使用,这样的代表: 静态类FunnyExtension { 公共静态字符串双(此字符串str){返回STR + STR; } 公共静态INT双(这个INT NUM){返回NUM + NUM; } } FUNC<字符串> aaMaker =“一”。双; FUNC<字符串,字符串>倍频= FunnyExtension.D ..
发布时间:2015-11-24 20:43:47 C#/.NET

扩展方法与传承

是否有经验,以帮助确定在什么情况下使用的规则?我应该preFER一个比其他大部分时间? 谢谢! 解决方案 扩展方法是有用的,但它们是难以发现通过IDE比常规方法中,由于它们没有附加到原始类和有没有线索到了code他们可能驻留。有一些通常你会使用扩展方法,如果你只添加功能众所周知,很好用的类或接口,比如.NET基类,你没有访问到$ C $下。扩展方法也有在约束你不仅要有原装配,你必须有一个与它的 ..
发布时间:2015-11-24 20:43:39 C#/.NET

EF code先删除批次的IQueryable< T>?

我知道这是可能的LINQ到SQL和我见过的点点滴滴,导致我相信这是可能的EF。是否有一个扩展,有可以做这样的事情: VAR peopleQuery = Context.People.Where(P => p.Name ==“吉姆”); peopleQuery.DeleteBatch(); 其中, DeleteBatch 刚拿起拆开peopleQuery并创建一个SQL语句删除所 ..
发布时间:2015-11-24 20:17:17 C#/.NET

热身调用C#方法时,

刚刚遇到以 //在应用程序的开始 MyClass的实例=新MyClass的(); instance.MyMethod(); instance.MyMethod(); //比第一次调用速度更快,因为现在它的回暖。 难道我们真的有这样的热身理论在C#中?如果是的话,为什么(会出现什么CLR做准备活动时)?而就是一切相同的,如果这个方法是一个扩展一(静态的)? 解决方案 如果通过“热身”你是指JI ..
发布时间:2015-11-24 20:14:01 C#/.NET

扩展方法的使用

在什么时候使用扩展方法有意义吗? 在是否加入扩展方法,一种影响性能? 这些问题是跟进的问题我刚才问了一下扩展方法。 解决方案 当不使用扩展方法是否合理? 这些道理,当您使用LINQ和想要链或管道输出功能从一个功能到另一个。它提高了code的可读性,让你的前preSS概念更优雅(不管它是什么值得)。 他们还让你得到任何你喜欢不修改该类型的源类型实例方法的出现,这往往可以帮助可读性和你的co ..
发布时间:2015-11-24 20:13:35 C#/.NET

为什么"静态"和"这&Q​​UOT;需要扩展方法,以及如何在他们的记忆分配呢?

一个有关扩展方法的几个问题: 为什么扩展方法静态? 为什么他们需要一个静态类中声明? 什么是这个关键字表明扩展方法的参数列表?由于这是一个静态类,请问该怎么做“这个”关键字的工作在这方面? 如何内存分配发生这些类型的方法? 解决方案 静态和非静态方法之间的唯一区别是,一个非静态方法接受一个隐含参数 - 这个。扩展方法中,不调用在其上的方法被声明的对象的情况下,因此没有办法通过它们的 ..
发布时间:2015-11-24 16:28:12 C#/.NET

计算计数的IEnumerable(非通用)

谁能帮我用计数的扩展方法的IEnumerable (非通用接口)。 我知道这是不支持LINQ但如何手动写呢? 解决方案 yourEnumerable.Cast<对象>()COUNT() 应用于对性能的注释:的 我觉得这是premature优化一个很好的例子,但在这里你去: 静态类EnumerableExtensions { 公共静态诠释计数(这IEnum ..
发布时间:2015-11-24 16:10:51 C#/.NET

是什么原因导致"扩展方法不能进行动态调度和QUOT;这里?

编译错误 “System.Data.SqlClient.SqlConnection”没有名为“查询”适用的方法,但似乎有该名称的扩展方法。扩展方法不能动态调度。考虑强制转换动态参数或调用不带扩展方法的语法扩展方法。 现在,我知道如何解决这个问题,但我想更好地了解错误本身。我有我建立利用小巧精致的类。最后我将提供一些更多的自定义功能,使我们这种类型的数据访问了很多更精简。在跟踪和东西特别的建 ..
发布时间:2015-11-24 15:48:41 C#/.NET

什么是名单,其中最后的()扩展方法的性能; T>?

我真的很喜欢末()键,会使用它所有的时间名单,其中,T> 秒。但是,因为它似乎为的IEnumerable&LT被定义; T> ,我想这枚举枚举第一 - 这应该是为O(n),而不是O(1)直接索引的最后一个元素名单,其中,T> 是标准的(LINQ)扩展方法意识到这一点? 在C ++ STL是意识到这一点凭借整体“继承树”的迭代器和诸如此类的东西。 解决方案 我只是用反光寻找 ..
发布时间:2015-11-24 15:44:34 C#/.NET

为什么这个扩展方法扔在VB.NET一个NullReferenceException?

从previous经验,我一直在IM pression,这是完全合法的(尽管可能不建议)来调用扩展方法上的空实例。因此,在C#中,该code编译和运行: // code在静态类 静态布尔ISNULL(此对象OBJ){ 返回的obj == NULL; } // $ C $别处Ç 对象X = NULL; !布尔存在= x.IsNull(); 不过,我刚刚组建了一个小套房例如cod ..
发布时间:2015-11-24 15:29:48 C#/.NET

我可以使用.NET 2.0或3.0的扩展方法和LINQ?

当我尝试使用.NET 2.0或3.0运行时添加一个扩展方法,我得到的错误: 不能确定,因为所需的编译器一个新的扩展方法 类型“System.Runtime.CompilerServices.ExtensionAttribute”不能 找到。是否缺少引用System.Core.dll的? 但我找不到System.Core程序可用引用的列表,当我尝试将其添加到项目中。什么我需要做的是能够使用扩 ..
发布时间:2015-11-24 15:08:12 C#/.NET

VB.NET:不可能对System.Object的实例,使用扩展方法

我可以做一个扩展方法 System.Object的的所有子类(一切)? 例如: <扩展> 公共功能MyExtension(值作为对象)作为对象 返回值 端功能 以上的功能不会为对象实例的工作: 昏暗myObj1作为新对象() 昏暗myObj2 = myObj1.MyExtension() 编译器不接受它,是在我的电脑问题? :) 更新 这个问题似 ..
发布时间:2015-11-24 15:05:37 C#/.NET

两个C#泛型的扩展方法之间暧昧的一个电话,其中T:类等,其中T:结构

考虑两个扩展方法: 公共静态牛逼MyExtension< T>(这件T O),其中T:类 公共静态牛逼MyExtension< T>(这件T O)其中T:结构 和一个类: 类MyClass的(){...} 现在调用扩展方法对上述类的一个实例: 变种O =新MyClass的(...); o.MyExtension(); //这里编译器错误.. o.MyE ..
发布时间:2015-11-24 14:46:13 C#/.NET

.NET名单< T> CONCAT VS的AddRange

这是一个泛型列表中的AddRange和Concat的功能之间的区别是什么?一个建议比其他? 解决方案 他们有完全不同的语义。 的AddRange通过添加其他项目将其修改列表中。 的毗连返回包含列表和其他项目的新序列,而不修改列表。 选择哪一个有你想要的语义。 ..
发布时间:2015-11-24 14:37:15 C#/.NET

什么是最好或最有趣的使用扩展方法,你见过?

我开始真的爱扩展方法...我想知道是否有人有她一个真正自爆自己的心意,或者只是在偶然发现聪明。 今天我写了一个例子: 由于其他用户的评论编辑: 公共静态的IEnumerable< INT>要(这个中断fromNumber,诠释toNumber){ 而(fromNumber< toNumber){ 收益回报fromNumber; fro ..
发布时间:2015-11-24 14:25:26 C#/.NET