为了账号安全,请及时绑定邮箱和手机立即绑定

您发现扩展方法的哪些优势?

您发现扩展方法的哪些优势?

C#
犯罪嫌疑人X 2019-12-25 10:25:22
C#的“非信奉者”在问我扩展方法的目的是什么。我解释说,然后您可以向已定义的对象添加新方法,尤其是当您不拥有/控制原始对象的源时。他提出了“为什么不只是在自己的类中添加方法呢?” 我们一直在走(很好的方式)。我的一般回答是它是工具带中的另一个工具,而他的回答是这是对工具的无用浪费……但是我认为我会得到一个更“开明”的答案。在哪些情况下使用了扩展方法而又没有(或不应该)使用扩展方法添加到自己的类中?
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

我认为扩展方法在编写代码时有很大帮助,如果您将扩展方法添加到基本类型中,则可以在智能感知中快速获得它们。


我有一个格式提供程序来格式化文件大小。要使用它,我需要写:


Console.WriteLine(String.Format(new FileSizeFormatProvider(), "{0:fs}", fileSize));

创建一个扩展方法,我可以编写:


Console.WriteLine(fileSize.ToFileSize());

更干净,更简单。


查看完整回答
反对 回复 2019-12-25
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

不要忘记工具!当在类型Foo上添加扩展方法M时,您将在Foo的智能感知列表中获得“ M”(假设扩展类在作用域内)。这使得'M'比MyClass.M(Foo,...)更容易找到。

归根结底,这只是其他静态方法的语法糖,但就像买房一样:“位置,位置,位置!” 如果它挂在类型上,人们会发现它!


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信