extension-methods相关内容
我有一个字符串形式的整数数组: var arr = new string[] { "1", "2", "3", "4" }; 我需要一个“真实"整数数组来进一步推动它: void Foo(int[] arr) { .. } 我尝试转换 int 并且它当然失败了: Foo(arr.Cast.ToArray()); 接下来我可以做: var list = new List(arr.Len
..
我是 EF 的新手,我正在尝试使用一种扩展方法,该方法将我的数据库类型 User 转换为我的信息类 UserInfo. 如果有区别,我会先使用数据库吗? 我下面的代码给出了错误 操作无法完成,因为 DbContext 已被释放. 试试{IQueryable用户;使用 (var dataContext = new dataContext()){用户 = dataContext.Use
..
我正在执行以下 LINQ 查询,该查询有效但不返回已填充的导航属性 Person,我得到 null. public IEnumerableGetSharePeopeByCarId(int carId){从 _context.Cars 中的 q 返回加入 _context.Shares在 q.CarId 上等于 s.Car.CarId将 p 加入 _context.SharePeople.Incl
..
在我维护一个严重违反 winforms 中的跨线程更新规则的旧应用程序的过程中,我创建了以下扩展方法,以便在发现非法调用时快速修复它们: ///////在控件所属线程上执行一个方法.//////正在更新的控件.///更新uiElement的方法.///True 强
..
我在各种网站上都读到 Thread.Abort 不太好用.在这种情况下,您如何实现超时模式?例如,我读到 MS 在整个框架中使用以下模式(我已将其包装在扩展方法中).就个人而言,我认为这是一个非常酷的扩展,但我担心 Thread.Abort.有人有更好的方法吗? public static bool CallandWait(this Action action, int timeout){线程
..
在C#中创建一个将实例作为引用传递的扩展方法真的不可能吗? 这是一个示例 VB.NET 控制台应用程序: 导入 System.Runtime.CompilerServices模块模块1子主()昏暗的工作日作为工作日workDays.Add(Weekdays.Monday)workDays.Add(Weekdays.Tuesday)Console.WriteLine("星期二是工作日:{0}
..
我可以为 System.Object 的所有子类(一切)创建一个扩展方法吗? 示例: Public Function MyExtension(value As Object) As Object返回值结束函数 以上函数不适用于对象实例: Dim myObj1 As New Object()Dim myObj2 = myObj1.MyExtension() 编译器不接受,是我电脑的问题
..
受到另一个关于缺少 Zip 函数的问题的启发: 为什么IEnumerable 接口上没有ForEach 扩展方法?或者任何地方?获得 ForEach 方法的唯一类是 List.是否有丢失的原因,也许是性能? 解决方案 在大多数情况下,该语言中已经包含了一个 foreach 语句. 我不想看到以下内容: list.ForEach( item =>{item.DoSomethin
..
我安装了 Active Support 3.0.3 和 Rails 3.0.3 和 Ruby 1.8.7. 当我尝试使用 1.week.ago 我得到 NoMethodError: 未定义方法 'week' 为 1:Fixnum来自 (irb):2 其他核心扩展似乎有效.我在朋友的计算机上尝试过(他的安装规格和旧版本都相同),结果相同. 是什么? 所有这些都在 IRB 中.
..
是的,所以我有一个可枚举并希望从中获得不同的值. 使用System.Linq,当然还有一个叫做Distinct 的扩展方法.在简单的情况下,它可以不带参数使用,例如: var distinctValues = myStringList.Distinct(); 很好,但是如果我有一个需要为其指定相等性的可枚举对象,则唯一可用的重载是: var distinctValues = myCus
..
我很喜欢 C# 中的扩展方法,但在向静态类(例如 Console)添加扩展方法方面没有取得任何成功. 例如,如果我想向控制台添加一个名为“WriteBlueLine"的扩展,以便我可以: Console.WriteBlueLine("此文字为蓝色"); 我尝试通过添加一个本地公共静态方法,将 Console 作为“this"参数...但没有骰子! public static class
..
让我们列出您最喜欢的优秀扩展方法的答案列表. 要求必须发布完整的代码以及示例和使用说明. 基于对这个主题的高度兴趣,我在 Codeplex. 请将您的答案标记为接受将代码放入 Codeplex 项目. 请发布完整的源代码而不是链接. Codeplex 新闻: 24.08.2010 Codeplex 页面现在在这里:http://extensionoverflow
..
我不知道这是在 PR 还是 Beta 中发生的,但是如果我在 HtmlHelper 上创建扩展方法,它在 Razor 驱动的页面中无法识别: namespace SomeNamespace.Extensions {公共静态类 HtmlExtensions {公共静态字符串 Foo(this HtmlHelper html) {返回“Foo";}}} 我将其添加到 Web.config 中的 部
..
在 System.Linq 命名空间中,我们现在可以扩展我们的 IEnumerable 的 拥有Any() 和 Count() 扩展方法. 最近有人告诉我,如果我想检查一个集合中是否包含 1 个或多个项目,我应该使用 .Any() 扩展方法而不是 .Count() >0 扩展方法,因为 .Count() 扩展方法必须遍历所有项目. 其次,一些集合有一个 属性(不是扩展方法),它是 Co
..
我希望在对象列表中实现一个功能,就像我在 C# 中使用扩展方法一样. 像这样: List列表;//... 列表初始化.list.getData(id); 我如何在 Java 中做到这一点? 解决方案 Java 不支持扩展方法. 相反,您可以创建一个常规的静态方法,或者编写您自己的类.
..
接口+扩展方法(mixin)是否比抽象类更可取? 如果您的答案是“取决于",那取决于什么? 我认为接口 + 扩展方法有两个可能的优势. 接口是可多重继承的,而类则不是. 您可以使用扩展方法以不间断的方式扩展接口.(实现您的接口的客户端将获得您的新基本实现,但仍可以覆盖它.) 我还没有想到这种方法的缺点.接口+扩展方法失败的原因可能很简单. 关于这个主题的两篇有用的文
..
我正在对使用 IMemoryCache 接口的 ClientService 进行单元测试: ClientService.cs: 公共字符串 Foo(){//... 代码_memoryCache.Set("MyKey", "SomeValue", new TimeSpan(0, 0, 60));} 当我尝试模拟 IMemoryCache 的 Set 扩展时: AutoMock mock
..
我正在编写一个简单的测试用例来测试我的控制器在调用我的服务之前调用了缓存.我正在使用 xUnit 和 Moq 来完成这项任务. 我面临一个问题,因为 GetOrCreateAsync 是一种扩展方法,框架无法模拟这些方法.我依靠内部细节来确定我可以模拟 TryGetValue 而不是我的测试(参见 https://github.com/aspnet/Caching/blob/c432e582
..
在 C# 中,我可以为 T 类型的泛型数组定义一个扩展方法,如下所示: public static T GetOrDefault(this T[] arr, int n){if (arr.Length > n){返回 arr[n];}返回默认值(T);} 但对于我的生活,我不知道如何在 F# 中做同样的事情!我试过 type 'a array with, type arraywith 和 ty
..
我习惯于向 IEnumerable 等外部类添加方法.但是我们可以在 C# 中扩展数组吗? 我打算向数组添加一个方法,即使它是多维的,也可以将其转换为 IEnumerable. 与如何在C#中扩展数组 无关 解决方案 static class Extension{公共静态字符串扩展(此数组数组){return "是的,你可以";}}课程计划{静态无效主(字符串 [] args){
..