【问题标题】:In C# is there a way to shorten reference calls like Microsoft.VisualBasic.Interaction.MsgBox() to something like myMsgBox()?在 C# 中,有没有办法将 Microsoft.VisualBasic.Interaction.MsgBox() 之类的引用调用缩短为 myMsgBox() 之类的东西?
【发布时间】:2018-05-06 16:47:44
【问题描述】:

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

我正在开发一个 VC# 项目,该项目需要非常频繁地使用 MsgBox() 和 InputBox() 方法,并且将整个内容输入或在代码中的其他位置找到并复制,这令人沮丧-粘贴它。首先想到的是#define,但由于它是一个函数而不是一个常量/变量,我不知道该怎么做,或者它是否可能。

提前感谢您的帮助。

【问题讨论】:

  • 在您的源代码文件顶部使用using Microsoft.VisualBasic.Interaction。看看using-directive
  • 您开发什么类型的应用程序?表格? WPF?对于 WPF - MessageBox。对于 WinForms - MessageBox.

标签: c# inputbox msgbox


【解决方案1】:

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

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

用法:

print("hello");

如果您可以直接缩短命名空间和类名,您可以使用类型别名:

using C  = System.Console;

用法:

C.WriteLine("hello");

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

using static System.Console;

用法:

WriteLine("hello");

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

【讨论】:

    【解决方案2】:

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

    using static Microsoft.VisualBasic.Interaction;
    

    这允许调用静态类的任何方法(此处为Interaction),而无需稍后在代码中再次引用它。所以有了这个你可以打电话给MsgBox()而不是Interaction.MsgBox()

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多