C# - 我可以将一个函数的调用映射到实际调用另一个函数吗

标签 c# .net

这是我的情况:我必须暂时从 .NET4 降级到 .NET3.5 一段时间。但是,我希望以后能够尽快迁移回来。

我们使用的 .NET4 中有一些函数没有 3.5 等效项,例如 String.IsNullOrWhitespace。我可以自己实现此功能,但我不想更新数十个调用以使用另一个静态类(例如 MyString.IsNullOrWhitespace)。

有没有办法,也许是利用一些创造性的“使用”语法将所有对 String.IsNullOrWhitespace 的引用映射到 MyString.IsNullOrWhitespace? 或者有没有可以执行此操作的 C# 编译器的其他特性或功能?或者我只需要全局搜索并将 "String.IsNullOrWhitespace" 替换为 "MyString.IsNullOrWhitespace"?谢谢!

最佳答案

我认为您正在寻找扩展方法。

http://msdn.microsoft.com/en-us/library/bb383977.aspx

您根本不需要更改代码。您可以实现自己的 IsNullOrWhiteSpace,它直接附加到字符串类上。如果您引用扩展方法所在的 namespace 。

编辑: 我刚刚意识到 IsNullOrWhiteSpace 是一个静态方法,您不能创建静态扩展方法。但也许你可以这样做:

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static bool IsNullOrWhiteSpace(this String str)
        {
            // ToDo: implement this
        }
    }   
}

将在字符串的实际实例上调用,即:

if(myString.IsNullOrWhiteSpace())

这实际上比您目前正在做的要短一些:

if(string.IsNullOrWhiteSpace(myString))

关于C# - 我可以将一个函数的调用映射到实际调用另一个函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823641/

相关文章:

C# web api Swagger 集成

c# - 如何制作一个aspxdocumentviewer方向rtl?

c# - csc2.exe是什么?

c# - 如何使用 FileOpenDialog 在 C# 中打开文件

c# - 如何 stub 具体类的 ReadOnly 属性

c# - DateTimePicker:选择日期和时间

c# - 如何在 ASP.NET Core 中获取 HttpContext.Current?

c# - 如何配置自包含的单文件程序?

.net - 使用 LINQ 计算文本字段中的单词出现次数

.net - 运行 docker-compose build 后恢复包时收到 'The SSL connection could not be established' 消息