extension-methods相关内容
我有一个扩展方法,有人给我提供了非常有用的方法...它在 IQueryable 上执行 orderby ...但我想要一个普通的 IQueryable(非通用) 这是代码,计数和跳过,我认为缺少. public static IQueryable GetPage(this IQueryable query,int page, int pageSize, out int count){in
..
假设我的数据库中有一个叫做 Stuff 的东西,有一个叫做 Id 的属性.从用户那里,我获得了一系列选定的 Range 对象(或者更确切地说,我从他们的输入中创建了它们)以及他们想要的 Id.该结构体的精简版本如下所示: public struct Range:IEquatable,IEqualityComparer>{公共TA;公共 T B;公共范围(T a, T b){一 = 一;乙=乙;}
..
在 LINQ to SQL 中,当我尝试在从 LINQ to SQL 查询返回的 IQueryable 上使用 ElementAt 扩展方法时,出现异常“不支持查询运算符 'ElementAt'.". 这是堆栈跟踪: at System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpres
..
我在 Playground 文件中有以下代码: extension Dictionary {功能测试(){对于 self.keys 中的键 {自我[键]}}}var dict: [字符串: AnyObject?] = [“测试":无]dict.test() 此后我将把 for-each 循环中的行称为输出,因为它是相关的.在此特定实例中,输出为 nil. 当我将 for-each 循环更
..
背景: 我有一个静态类,但静态方法不是扩展方法.我决定将这些方法重构为扩展方法,并没有想到任何代码会中断,因为扩展方法可以像静态方法一样被调用.但是,当静态导入用于包含扩展方法的静态类时,代码确实会中断. 示例: 我有一个带有扩展方法和静态方法的静态类: 命名空间 UsingStaticExtensionTest.Extensions{静态类扩展类{内部静态无效测试1(本程序p
..
我想为一些通用类创建很多扩展方法,例如对于 公共类 SimpleLinkedList;其中 T:IComparable 我已经开始创建这样的方法: 公共静态类 LinkedListExtensions{public static T[] ToArray(this SimpleLinkedList simpleLinkedList) where T:IComparable{////代码}}
..
在 Visual Studio 2008 下 我可以创建一个扩展方法来在 .NET Framework 2.0 项目下工作吗? 解决方案 有一个 丑陋的 hack 使扩展方法在 .Net 2.0 中工作;但最好只是将您的框架升级到 3.5. 替代来源:1、2. 简而言之(来自链接#2):扩展方法只是标有 [Extension] 属性的普通静态方法.这个属性实际上只是编译器在幕
..
由于 String 实现了 IEnumerable,我期待在 Intellisense 中看到 Enumerable 扩展方法,例如,在 中输入句点时 String s = "asdf";s. 我期待看到 .Select(...)、.ToList() 等.然后我惊讶地看到扩展方法 do 实际上适用于字符串类,它们只是没有出现在 Intellisense 中.有人知道为什么是这样吗?这可能与这
..
我希望能够在两个不兼容的类之间进行隐式转换. 其中一个类是 Microsoft.Xna.Framework.Vector3,另一个只是 F# 项目中使用的 Vector 类.我正在用 XNA 用 C# 编写一个 3d 游戏,虽然它是用 3D 绘制的,但游戏玩法只发生在二维(这是一个鸟瞰图).F# 类使用 2D 向量处理物理: type Vectorx.newValue(sqrt (x.un
..
如果您在用 F# 编写的程序集中定义一些扩展方法、属性,然后在 C# 中使用该程序集,您会看到 C# 中定义的扩展吗? 如果是这样,那就太酷了. 解决方案 []模块方法 =[]让存在(选择:字符串选项)=匹配选择|一些 _ ->真的|无 ->错误的 此方法只能通过将命名空间(使用 using)添加
..
C# 有扩展属性吗? 例如,我可以向 DateTimeFormatInfo 添加一个名为 ShortDateLongTimeFormat 的扩展属性,它会返回 ShortDatePattern + " " + LongTimePattern? 解决方案 目前 Roslyn 编译器仍然不支持开箱即用 ... 直到现在,扩展属性的价值还不足以包含在以前版本的 C# 标准中.C# 7
..
编译错误 'System.Data.SqlClient.SqlConnection' 没有名为 'Query' 的适用方法,但似乎具有该名称的扩展方法.不能动态调度扩展方法.考虑强制转换动态参数或在没有扩展方法语法的情况下调用扩展方法. 现在,我知道如何解决这个问题,但我正在努力更好地了解错误本身.我正在构建利用 Dapper 的课程.最后,我将提供一些更多的自定义功能,使我们的数据访
..
如果在具有 Count 属性(例如 List),Count() 方法是否查找该属性并返回它(而不是通过枚举它们来计算项目)?以下测试代码似乎表明它确实如此: 使用系统;使用 System.Collections;使用 System.Collections.Generic;使用 System.Diagnostics;使用 System.Linq;命名空间 CountSpeedTest{//输出:/
..
我想知道对于值类型是否有任何可能的方式...... public static class ExtensionMethods {public static void SetTo(this Boolean source, params Boolean[] bools) {for (int i = 0; i
..
该方法是使用空值调用还是给出空引用异常? MyObject myObject = null;myObject.MyExtensionMethod();//
..
我正在实施 James Bennett 出色的 django-contact-form 但遇到了障碍.我的联系页面不仅包含表单,还包含其他平面页面信息. 在不重写联系表单使用的现有视图的情况下,我希望能够包装或链接视图.这样我就可以通过上下文注入一些额外的信息,这样表单和平面页面数据就可以在同一个模板中呈现. 我听说它提到这是可能的,但我似乎无法弄清楚如何使它起作用.我创建了自己的包装
..
如何在 ASP.Net MVC 视图中访问扩展方法?在 C# 中我做 使用 MyProject.Extensions; 我记得看到过一个等效于放入视图的 XML,但我再也找不到了. 解决方案 在视图中: 或在 web.config 中(对于所有视图):
..
我试图在我的 中的交替行上简单地将一个 css 类添加到一个 div 中,而不需要包含一个完整的 这将迫使我在未来保持很多标记同步. 我见过一个解决方案,例如 http://blog.net-tutorials.com/2009/04/02/how-to-alternate-row-color-with-the-aspnet-repeate
..
今天一位同事问我如何将范围添加到集合中.他有一个继承自 Collection 的类.有一个该类型的 get-only 属性已经包含一些项目.他想将另一个集合中的项目添加到属性集合中.他怎么能以 C#3 友好的方式做到这一点?(请注意关于 get-only 属性的约束,这会阻止诸如联合和重新分配之类的解决方案.) 当然,一个带有属性的 foreach.添加将起作用.但是 List 样式的 Ad
..
在 C# 中是否有一种使用反射来确定方法是否已作为扩展方法添加到类中的技术? 给定如下所示的扩展方法,是否可以确定已将 Reverse() 添加到字符串类中? 公共静态类 StringExtensions{公共静态字符串反向(此字符串值){char[] cArray = value.ToCharArray();Array.Reverse(cArray);返回新字符串(cArray);}}
..