В 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()