C#的“非信奉者”在问我扩展方法的目的是什么。我解释说,然后您可以向已定义的对象添加新方法,尤其是当您不拥有/控制原始对象的源时。
他提出了“为什么不只是在自己的类中添加方法呢?” 我们一直在走(很好的方式)。我的一般回答是它是工具带中的另一个工具,而他的回答是这是对工具的无用浪费……但是我认为我会得到一个更“开明”的答案。
在哪些情况下使用了扩展方法而又没有(或不应该)使用扩展方法添加到自己的类中?
我认为扩展方法在编写代码时有很大帮助,如果您将扩展方法添加到基本类型中,则可以在智能感知中快速获得它们。
我有一个格式提供程序来格式化文件大小。要使用它,我需要写:
Console.WriteLine(String.Format(new FileSizeFormatProvider(), "{0:fs}", fileSize));
创建一个扩展方法,我可以编写:
Console.WriteLine(fileSize.ToFileSize());
更干净,更简单。