extension-methods相关内容

操作无法完成,因为 DbContext 已被处理错误

我是 EF 的新手,我正在尝试使用一种扩展方法,该方法将我的数据库类型 User 转换为我的信息类 UserInfo. 如果有区别,我会先使用数据库吗? 我下面的代码给出了错误 操作无法完成,因为 DbContext 已被释放. 试试{IQueryable用户;使用 (var dataContext = new dataContext()){用户 = dataContext.Use ..
发布时间:2021-12-08 20:46:27 C#/.NET

为什么 Include 没有任何效果?

我正在执行以下 LINQ 查询,该查询有效但不返回已填充的导航属性 Person,我得到 null. public IEnumerableGetSharePeopeByCarId(int carId){从 _context.Cars 中的 q 返回加入 _context.Shares在 q.CarId 上等于 s.Car.CarId将 p 加入 _context.SharePeople.Incl ..
发布时间:2021-12-08 20:11:29 C#/.NET

超时模式 - Thread.Abort 到底有多糟糕?

我在各种网站上都读到 Thread.Abort 不太好用.在这种情况下,您如何实现超时模式?例如,我读到 MS 在整个框架中使用以下模式(我已将其包装在扩展方法中).就个人而言,我认为这是一个非常酷的扩展,但我担心 Thread.Abort.有人有更好的方法吗? public static bool CallandWait(this Action action, int timeout){线程 ..
发布时间:2021-12-06 11:49:51 C#/.NET

C# 扩展方法不允许通过引用传递参数吗?

在C#中创建一个将实例作为引用传递的扩展方法真的不可能吗? 这是一个示例 VB.NET 控制台应用程序: 导入 System.Runtime.CompilerServices模块模块1子主()昏暗的工作日作为工作日workDays.Add(Weekdays.Monday)workDays.Add(Weekdays.Tuesday)Console.WriteLine("星期二是工作日:{0} ..
发布时间:2021-12-06 10:50:11 C#/.NET

为什么 IEnumerable 上没有 ForEach 扩展方法?

受到另一个关于缺少 Zip 函数的问题的启发: 为什么IEnumerable 接口上没有ForEach 扩展方法?或者任何地方?获得 ForEach 方法的唯一类是 List.是否有丢失的原因,也许是性能? 解决方案 在大多数情况下,该语言中已经包含了一个 foreach 语句. 我不想看到以下内容: list.ForEach( item =>{item.DoSomethin ..
发布时间:2021-12-02 13:43:52 C#/.NET

Distinct() 与 lambda?

是的,所以我有一个可枚举并希望从中获得不同的值. 使用System.Linq,当然还有一个叫做Distinct 的扩展方法.在简单的情况下,它可以不带参数使用,例如: var distinctValues = myStringList.Distinct(); 很好,但是如果我有一个需要为其指定相等性的可枚举对象,则唯一可用的重载是: var distinctValues = myCus ..
发布时间:2021-12-01 10:04:29 C#/.NET

我可以向现有的静态类添加扩展方法吗?

我很喜欢 C# 中的扩展方法,但在向静态类(例如 Console)添加扩展方法方面没有取得任何成功. 例如,如果我想向控制台添加一个名为“WriteBlueLine"的扩展,以便我可以: Console.WriteBlueLine("此文字为蓝色"); 我尝试通过添加一个本地公共静态方法,将 Console 作为“this"参数...但没有骰子! public static class ..
发布时间:2021-12-01 09:50:16 C#/.NET

你最喜欢的 C# 扩展方法是什么?(codeplex.com/extensionoverflow)

让我们列出您最喜欢的优秀扩展方法的答案列表. 要求必须发布完整的代码以及示例和使用说明. 基于对这个主题的高度兴趣,我在 Codeplex. 请将您的答案标记为接受将代码放入 Codeplex 项目. 请发布完整的源代码而不是链接. Codeplex 新闻: 24.08.2010 Codeplex 页面现在在这里:http://extensionoverflow ..
发布时间:2021-12-01 09:44:20 C#/.NET

哪种方法性能更好:.Any() vs .Count() >0?

在 System.Linq 命名空间中,我们现在可以扩展我们的 IEnumerable 的 拥有Any() 和 Count() 扩展方法. 最近有人告诉我,如果我想检查一个集合中是否包含 1 个或多个项目,我应该使用 .Any() 扩展方法而不是 .Count() >0 扩展方法,因为 .Count() 扩展方法必须遍历所有项目. 其次,一些集合有一个 属性(不是扩展方法),它是 Co ..
发布时间:2021-11-26 09:50:58 C#/.NET

Java 等价于 C# 扩展方法

我希望在对象列表中实现一个功能,就像我在 C# 中使用扩展方法一样. 像这样: List列表;//... 列表初始化.list.getData(id); 我如何在 Java 中做到这一点? 解决方案 Java 不支持扩展方法. 相反,您可以创建一个常规的静态方法,或者编写您自己的类. ..
发布时间:2021-11-25 19:53:25 Java开发

接口 + 扩展(mixin)与基类

接口+扩展方法(mixin)是否比抽象类更可取? 如果您的答案是“取决于",那取决于什么? 我认为接口 + 扩展方法有两个可能的优势. 接口是可多重继承的,而类则不是. 您可以使用扩展方法以不间断的方式扩展接口.(实现您的接口的客户端将获得您的新基本实现,但仍可以覆盖它.) 我还没有想到这种方法的缺点.接口+扩展方法失败的原因可能很简单. 关于这个主题的两篇有用的文 ..
发布时间:2021-11-25 09:57:53 C#/.NET

测试 ASP.NET Core IMemoryCache 的正确方法

我正在编写一个简单的测试用例来测试我的控制器在调用我的服务之前调用了缓存.我正在使用 xUnit 和 Moq 来完成这项任务. 我面临一个问题,因为 GetOrCreateAsync 是一种扩展方法,框架无法模拟这些方法.我依靠内部细节来确定我可以模拟 TryGetValue 而不是我的测试(参见 https://github.com/aspnet/Caching/blob/c432e582 ..
发布时间:2021-11-24 15:12:49 C#/.NET

如何在 F# 中为 T[] 定义类型扩展?

在 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 ..
发布时间:2021-11-18 04:11:39 C#/.NET

是否可以在 C# 中扩展数组?

我习惯于向 IEnumerable 等外部类添加方法.但是我们可以在 C# 中扩展数组吗? 我打算向数组添加一个方法,即使它是多维的,也可以将其转换为 IEnumerable. 与如何在C#中扩展数组 无关 解决方案 static class Extension{公共静态字符串扩展(此数组数组){return "是的,你可以";}}课程计划{静态无效主(字符串 [] args){ ..
发布时间:2021-11-18 03:31:26 C#/.NET