c# - 为静态类定义全局别名

标签 c# static alias

我有一个看起来像这样的静态 ExceptionHelper:

public static class ExceptionHelper
{
    public static async void ShowDialog(string message)
    {
        // Show message
    }
}

每当我想调用这个方法时,我都会这样做:

ExceptionHelper.ShowDialog("This is a message.");

我现在想为 ExceptionHelper 定义一个别名,这样每次我想使用它时都不必写出整个单词。

我知道我可以通过 using 实现它:

using Ex = MyNamespaces.ExceptionHelper;

但是我必须在我想使用该方法的每个文件中定义它。有没有一种方法可以在不更改类名的情况下全局定义别名?或者我可以在类声明上方设置任何属性吗?

最佳答案

扩展方法

您可以将其作为字符串的扩展方法。

public static class ExceptionHelper
{
    public static async void ShowDialog(this string message)
    {
        // Show message
    }
}

然后你会像这样使用它:

using WhateverNamespaceExceptionHelperLivesIn;

public class TestClass
{
    public void TestMethod()
    {
        "This is a message".ShowDialog();
    }
}

这使您的问题变得毫无意义 - 您根本不必定义别名。

静态导入

另一种方法是静态导入类。您不需要别名,因为您可以直接引用 ShowDialog 方法。这将需要 C#6/Visual Studio 2015。

using static WhateverNamespaceExceptionHelperLivesIn.ExceptionHelper;

public class TestClass
{
    public void TestMethod()
    {
        ShowDialog("This is a message");
    }
}

关于c# - 为静态类定义全局别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38051450/

相关文章:

c# - WPF 中静态属性的数据绑定(bind)

java - 如何使用 XStream 为 java.lang.Integer 别名?

python - Python 中的模块是否有标准别名?

c# - 如何检查列表是否已排序?

c# - 使用静态方法的充分理由?

c# - 在 C# 中从 XML 文档中提取和汇总数据

java - 我的一个类中的一个变量 "cannot be resolved or is not a field"

performance - Prolog 有像 Haskell 一样的别名 "operator"吗?

c# - 从 Action 中提取表达式树

c# - Visual Studio + Razor : "Surround with..." Snippets