C#的“非信奉者”在问我扩展方法的目的是什么。我解释说,然后您可以向已定义的对象添加新方法,尤其是当您不拥有/控制原始对象的源时。他提出了“为什么不只是在自己的类中添加方法呢?” 我们一直在走(很好的方式)。我的一般回答是它是工具带中的另一个工具,而他的回答是这是对工具的无用浪费……但是我认为我会得到一个更“开明”的答案。在哪些情况下使用了扩展方法而又没有(或不应该)使用扩展方法添加到自己的类中?
3 回答
www说
TA贡献1775条经验 获得超8个赞
我认为扩展方法在编写代码时有很大帮助,如果您将扩展方法添加到基本类型中,则可以在智能感知中快速获得它们。
我有一个格式提供程序来格式化文件大小。要使用它,我需要写:
Console.WriteLine(String.Format(new FileSizeFormatProvider(), "{0:fs}", fileSize));
创建一个扩展方法,我可以编写:
Console.WriteLine(fileSize.ToFileSize());
更干净,更简单。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
不要忘记工具!当在类型Foo上添加扩展方法M时,您将在Foo的智能感知列表中获得“ M”(假设扩展类在作用域内)。这使得'M'比MyClass.M(Foo,...)更容易找到。
归根结底,这只是其他静态方法的语法糖,但就像买房一样:“位置,位置,位置!” 如果它挂在类型上,人们会发现它!
- 3 回答
- 0 关注
- 369 浏览
添加回答
举报
0/150
提交
取消