extension-methods相关内容

我可以在扩展方法中设置DECIMAL变量的值吗?

我已经创建了一个void扩展方法,它可以与decimal数据类型一起使用。我希望能够在方法的作用域内修改this参数变量。以下是我的扩展方法的代码: public static void SetAndConvertIfHasValue(this decimal assignTo, double? valueToAssign) { if (valueToAssign.HasValue) ..
发布时间:2022-04-18 19:38:24 C#/.NET

打印件中数字的扩展方法

我读到过add Extension Methods to types in TypeScript是可能的,但是将其应用于内置类型编号时遇到了一些问题。 以下是一些代码: 文件A:NumberExtensions.ts // tslint:disable-next-line:class-name interface-name export interface Number { ..
发布时间:2022-04-18 19:35:46 其他开发

将扩展方法传递给需要委托的方法。这是怎么回事?

所以在工作中我使用了一个我们没有编写的API,其中一个方法接受了一个委托。出于这样或那样的原因,我突然想到我有一个适合该签名的扩展方法,所以我想知道它是否可行。我肯定它不会,但令我惊讶的是,它确实做到了。请允许我演示: 假设我有这些类: public interface IMyInterface { } public class MyClass : IMyInterface { ..
发布时间:2022-04-18 19:32:47 C#/.NET

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

我是 C# 中的扩展方法的粉丝,但没有成功将扩展方法添加到静态类,例如 Console. 例如,如果我想在Console中添加一个扩展,名为'WriteBlueLine',这样我就可以去: Console.WriteBlueLine("This text is blue"); 我尝试通过添加一个本地的公共静态方法,将 Console 作为 'this' 参数...但没有骰子! publ ..
发布时间:2022-01-30 10:41:00 C#/.NET

现有的类似于 Parallel.For 的 LINQ 扩展方法?

可能重复: LINQ 等效于 foreach for IEnumerable ienumerable 的 linq 扩展方法非常方便......但如果您只想对枚举中的每个项目应用一些计算而不返回任何内容,那么它就没有那么有用了.所以我想知道我是否只是错过了正确的方法,或者它真的不存在,因为我宁愿使用内置版本(如果它可用的话)......但我还没有找到一个:-) 我可以发誓在某个 ..
发布时间:2022-01-24 11:51:06 C#/.NET

字符串数据类型的 C# 扩展方法

我的 Web 应用程序处理需要大量转换为数字的字符串 - 用户经常在这些字段中放置逗号、单位(如 cm、m、g、kg)和货币符号,所以我想做的是创建一个清除字段并将其转换为小数的字符串扩展方法. 例如: 十进制 myNumber = "15 cm".ToDecimal(); 解决方案 您是否希望不同“文化"的用户使用您的应用程序?如果是这样,最好考虑用户的区域设置: 静态十进制 To ..
发布时间:2022-01-17 09:40:23 C#/.NET

扩展方法是否隐藏依赖关系?

全部, 想对此有一些想法.最近,在设计/开发时,我越来越成为“纯粹"DI/IOC 原则的订户.其中一部分(很大一部分)涉及确保我的类之间几乎没有耦合,并且它们的依赖关系通过构造函数解决(当然还有其他管理方法,但你明白了). 我的基本前提是扩展方法违反了DI/IOC的原则. 我创建了以下扩展方法,用于确保插入到数据库表中的字符串被截断为正确的大小: 公共静态类 StringExt ..

使用扩展方法引发 C# 事件 - 这很糟糕吗?

我们都熟悉 C# 事件声明的可怕之处.为了确保线程安全,标准是这样写: 公共事件EventHandlerSomethingHappened;受保护的虚拟 void OnSomethingHappened(EventArgs e){var handler = 发生了什么;如果(处理程序!= null)处理程序(这个,e);} 最近在这个板上的一些其他问题(我现在找不到)中,有人指出在这种情况下可 ..
发布时间:2022-01-15 11:28:18 C#/.NET

命名空间“System.Windows"中不存在类型或命名空间名称“Window"

我正在尝试为 WPF Window 类编写扩展方法.我在我的解决方案的一个类库项目中这样做,以便我可以在解决方案中的所有项目中使用它. 这是我的代码: 使用系统;使用 System.Collections.Generic;使用 System.Linq;使用 System.Text;使用 System.Threading.Tasks;使用 System.Windows;命名空间扩展方法{公共 ..
发布时间:2022-01-14 23:47:26 C#/.NET

为通用约束使用属性

举个例子,比如.. 公共接口 IInterface { }public static void Insert(this IList list, IList items) where T : IInterface{//... 逻辑} 这很好用,但我想知道是否可以使用属性作为约束.比如…… class InsertableAttribute : 属性public static ..
发布时间:2022-01-13 18:27:24 C#/.NET

将字符串转换为可空类型(int、double 等...)

我正在尝试进行一些数据转换.不幸的是,大部分数据都在字符串中,应该是 int 或 double 等...... 所以我得到的是这样的: 双倍?金额 = Convert.ToDouble(strAmount); 这种方法的问题是如果 strAmount 为空,如果它是空的,我希望它为空,所以当我将它添加到数据库中时,该列将为空.所以我最终写了这个: 双倍?金额=空;if(strAmoun ..
发布时间:2022-01-12 23:39:39 C#/.NET

如何使用 Moq 模拟扩展方法?

我正在编写一个依赖于扩展方法结果的测试,但我不希望该扩展方法未来的失败会破坏这个测试.模拟该结果似乎是显而易见的选择,但 Moq 似乎没有提供覆盖静态方法的方法(扩展方法的要求).Moq.Protected 和 Moq.Stub 也有类似的想法,但它们似乎没有为这种情况提供任何东西.我是否遗漏了什么,或者我应该以不同的方式解决这个问题? 这里是一个简单的例子,失败了通常的“对不可覆盖成员的无 ..
发布时间:2022-01-08 21:23:29 C#/.NET