在 C# 中,有没有一种方法可以将 Microsoft.VisualBasic.Interaction.MsgBox() 之类的引用调用缩短为 myMsgBox() 之类的东西?

In C# is there a way to shorten reference calls like Microsoft.VisualBasic.Interaction.MsgBox() to something like myMsgBox()?

我是 c# 的新手,所以如果这是一个显而易见的愚蠢问题,或者我措辞不当,我深表歉意。

我正在开发一个 VC# 项目,该项目需要非常频繁地使用 MsgBox() 和 InputBox() 方法,无论是键入整个内容还是在某个地方找到它都让人感到沮丧else 在代码中并复制粘贴它。首先想到的是#define,但由于它是一个函数而不是 constant/variable,我不确定该怎么做,或者它是否可能。

在此先感谢您的帮助。

您可以创建一个调用所需方法的委托:

Action<string> print = (s) => System.Console.WriteLine(s);

用法:

print("hello");

如果您只需要缩短命名空间和 class 名称就可以了,您可以使用类型别名:

using C  = System.Console;

用法:

C.WriteLine("hello");

使用 C# 6.0,您甚至可以从一个类型中导入所有静态方法:

using static System.Console;

用法:

WriteLine("hello");

System.Console.WriteLine 只是一个示例,它适用于任何(静态)方法。

如果您使用的是 C# 6,则可以使用 using static

using static Microsoft.VisualBasic.Interaction;

这允许调用静态 class(此处 Interaction)的任何方法,而无需稍后在代码中再次引用它。因此,您可以调用 MsgBox() 而不是 Interaction.MsgBox()