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

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

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

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

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

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

using static Microsoft.VisualBasic.Interaction;

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

0 голосов
/ 06 мая 2018

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

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

...