В C# есть ли способ сократить ссылочные вызовы, такие как Microsoft.VisualBasic.Interaction.MsgBox(), на что-то вроде myMsgBox()?

Я новичок в C#, поэтому я прошу прощения, если это глупо очевидный вопрос, или если я сформулировал его неправильно.

Я работаю над проектом VC#, который требует довольно частого использования методов MsgBox() и InputBox(), и это расстраивает, когда вы печатаете всю вещь целиком или находите ее где-то еще в коде и копируете ее, Первое, что пришло на ум, это #define, но так как это функция, а не константа / переменная, я не уверен, как это сделать, или если это вообще возможно.

Заранее спасибо за помощь.

2 ответа

Решение

Вы можете создать делегат, который вызывает нужный метод:

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 это просто пример, он работает для любого (статического) метода.

Ты можешь использовать using static если вы используете C# 6:

using static Microsoft.VisualBasic.Interaction;

Это позволяет вызывать любой метод статического класса (здесь Interaction) без ссылки на него позже в коде снова. Так что с этим вы можете позвонить MsgBox() вместо Interaction.MsgBox()

Другие вопросы по тегам