我有一个静态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;
但是我必须在我想要使用该方法的每个文件中定义它。有没有办法可以在不改变类名的情况下全局定义别名?或者我可以在类声明之上设置任何属性吗?
答案 0 :(得分:4)
在C#6.0中,您可以使用静态用法:
using static MyNamespace.ExceptionHelper;
当然不是全局的,仅适用于定义。但是在使用此行的文件中,您可以使用ExceptionHelper
的成员而不带任何前缀。
答案 1 :(得分:2)
你可以把它作为字符串的扩展方法。
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");
}
}
答案 2 :(得分:0)
这可能适用,即使您使用的是方法。您可以使用ENUM类型,而不是任何名称空间,并以这种方式访问全局值。将枚举放在任何名称空间之外的文件中。您可以通过这种方式全局访问它,或者如果您遇到问题,可以使用" global"如果您在引用它时遇到任何问题,请输入以下关键字:
{{1}}