Как сделать ярлык для Console.WriteLine
Мне нужно набирать Console.WriteLine() много раз в моем коде..
так может кто-нибудь сказать мне сделать ярлык для Console.WriteLine, как я могу использовать его как
CW=Console.WriteLine();
//After that i can use this CW for my Console.WriteLine() like
CW("Print Something");
Ответы
Ответ 1
Для этого Visual Studio уже имеет фрагмент кода по умолчанию. Просто введите cw
и нажмите вкладку. Обратите внимание: если вы планируете использовать метод, возможно, ему не хватает некоторых функций, таких как автоматическая строка. Форматирование и другие перегруженные параметры.
Ответ 2
Если вы находитесь на .net 3.5 или новее:
Action<string> cw = Console.WriteLine;
cw("Print Something");
Ответ 3
Вы без сомнения могли бы создать фрагмент Visual Studio для него (хотя на самом деле там уже для cw
, по-видимому, попробуйте!).
Я лично предположил бы, что вы не используете ярлык в коде - он может быть более ясным для всех, кто его читает, если он все еще говорит Console.WriteLine
.
В зависимости от того, для чего это, может иметь смысл написать вспомогательный метод, называемый, скажем, Log
, - который имеет разумный смысл, тогда как cw
не делает.
(Если это для ведения журнала, рассмотрите возможность использования более мощного, например log4net.)
Ответ 4
Если вы хотите, чтобы он был глобальным, вы могли бы написать метод расширения:
public static class StringExtensions
{
public static void ConLog(this string msg)
{
Console.WriteLine(msg);
}
}
Теперь, где бы вы ни были, вы можете вызывать "My Message".ConLog();
в любой строке вашего приложения и записывать его на консоль.
Ответ 5
С# 6 добавляет функцию using static
:
using static System.Console;
class Program {
void Main(string[] args) {
WriteLine("Hello, {0}!", "world");
}
}
IntelliSense в Visual Studio 2015 понимает этот новый синтаксис.
Ответ 6
public static void CW(string str)
{
Console.WriteLine(str);
}
Ответ 7
Напишите метод, который возвращает void и вызов, когда это требуется для Console.WriteLine()
void Log(string msg)
{
Console.WriteLine(msg);
}
Ответ 8
Вы можете объявить статический метод для переноса вызова:
static class C
{
static void W(string s)
{
Console.WriteLine(s);
}
}
то
C.W("Print Something");
Я бы предпочел использовать рефакторинг "встроенного метода", прежде чем проверять любой код, вызывающий этот метод. Как отмечает Джон Скит, это менее запутывает просто использовать Console.WriteLine напрямую.
Ответ 9
Если у вас ReSharper, вы можете ввести out и Enter и строку
Console.Out.WriteLine("");
будет записано.
Если вы хотите вывести переменную, есть еще один живой шаблон: outv.
Console.Out.WriteLine("time = {0}", time);
Здесь время - это переменная, которую вы можете выбрать после ввода outv.
Ответ 10
Если вы пишете это в верхней части страницы
using j = System.Console;
то в любое время вы можете использовать
j.WriteLine("Anything you want to write");
А что все. Кстати, вы можете использовать что-либо вместо "j".
Ответ 11
Этот ярлык позволит избежать исключений, возникающих при использовании сложной форматирующей перегрузки типа Console.WriteLine(String, Object[])
и количества элементов формата в format
, а количество элементов в списке аргументов args
отличается:
public bool WriteToConsole(string format, params object[] args)
{
var succeeded = false;
var argRegex = new Regex(@"\{\d+\}");
if ((args != null) && (argRegex.Matches(format).Count == args.Length))
{
Console.WriteLine(format, args);
succeeded = true;
}
else
{
Console.WriteLine(format);
}
return succeeded;
}
Ответ 12
// For formatting string and parameters define a function
// The shortcut function wl, kind of write line
public void wl( string format, params object[] parms){
Console.WriteLine(format, parms);
}
// Just for strings we can use Action delegate
Action<string> ws = Console.WriteLine;
// examples:
ws("String with no formatting parameters");
wl("String without formatting parameters");
wl("String with {0} parameters {1}", 2, "included");
wl("several parameters {0} {1} {2} repeated {0}", 1234, 5678, 6543);
или используя метод расширения: formatString.wl(arguments...)
public static class ConsoleWriteExtensions
{
public static void wl(this string format, params object[] parms){
Console.WriteLine(format, parms);
}
}
"{0} -> {1}".wl("Mili",123.45); // prints Mili -> 123.45
Ответ 13
просто введите: cw
и дважды нажмите кнопку вкладок.
Это на самом деле визуальный фрагмент кода студии для записи Console.WriteLine(); быстро. Так же, как вы набираете prop для объявления любого свойства в классе.
Ответ 14
Один из моих любимых тоже...
Исходя из BASIC и Python... Я очень часто пропускал Print()...
Я также широко использую Print() в JS/ES для консольных/других консолей...
Так объявите его как функцию:
public static void Print( object x ){ Console.WriteLine( x ); }
- вы можете создавать строки по своему желанию в качестве параметра функции, например:
Print( "Hi\n\n" + x.toString() + "\n\nBye!!!" );
- или интерполировать vars по желанию.
Print( $"{x} ~ {y} ~ {z}" );