c# - 在C#/VB中,如何判断一个方法是正常声明还是扩展方法?

标签 c# vb.net extension-methods

扩展方法对于您不拥有并且不能/不想从中派生和扩展的类型很有用(例如引用类型和接口(interface))。

显然,接口(interface)应该尽可能简短和切题,因此接口(interface)的扩展方法特别有用(例如 LINQ)。

对于类,尤其是您拥有的类,它们仍然有用 - 但我想知道您如何确定什么应该是扩展方法或什么应该是类本身的方法。

就个人而言,每当我想到它时,我都会带着以下想法在原地打转:

  • 如果它足够有用,它应该在类里面。
  • 这不是类的核心职责的一部分,它应该是一个扩展方法——但如果它足够有用,它肯定应该是类的职责...

你怎么看?

最佳答案

扩展方法对于扩展你没有源代码的类很有用,特别是如果你想扩展一堆从特定基派生的类,但不想创建你自己的派生版本他们只是添加了一个新方法。当你想扩展一些实现一个或多个接口(interface)的类,但你不能让它们都派生自一个基类时,它们也很有用。我不会真的将它们用于其他用途。

关于c# - 在C#/VB中,如何判断一个方法是正常声明还是扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263937/

相关文章:

c# - 验证输入用户密码与登录页面上数据库的哈希密码匹配 C# asp.net

c# - 如何在 ASP.NET Core 1.0 中记录 HTTP 响应主体

c# - 使用 Windows 虚拟邮件服务器发送带有 header 返回路径的电子邮件

sql-server - SQL Server 到 VB.Net IF EXISTS 需要返回任何内容,但不返回

javascript - vb.net整数除法

C#、WinForms 和扩展方法

c# - setIfNull 扩展方法不会将值设置给对象

c# - 将列表 <> 绑定(bind)到 asp.net c# 中的 ListView

c# - 在 EXE 安装后保持提升的权限并在重启期间自动启动?

swift - 字典序列的扩展,其中值是 Equatable