我必须在我的代码中多次输入Console.WriteLine().. 所以任何人都可以告诉我为Console.WriteLine创建一个快捷方式,就像我可以将它用作
CW=Console.WriteLine();
//After that i can use this CW for my Console.WriteLine() like
CW("Print Something");
答案 0 :(得分:101)
Visual Studio已经有一个默认的代码片段。只需输入cw
,然后按标签即可。请注意,如果您正在考虑使用某种方法,则可能缺少某些功能,例如自动string.Format和其他重载参数。
答案 1 :(得分:30)
如果您使用的是.net 3.5或更高版本:
Action<string> cw = Console.WriteLine;
cw("Print Something");
答案 2 :(得分:12)
你无疑会为它创建一个Visual Studio snippet(虽然实际上cw
已经存在了Console.WriteLine
,显然 - 试试吧!)。
我个人建议您不在代码中使用快捷方式 - 如果读取,任何人都可能更清楚它仍然说Log
。
根据这是什么,可能有意义地编写一个名为CW
的辅助方法,它具有合理的含义,而{{1}}没有。
(如果此 用于记录,请考虑使用更强大的功能,例如log4net。)
答案 3 :(得分:8)
C# 6添加了using static
功能:
using static System.Console;
class Program {
void Main(string[] args) {
WriteLine("Hello, {0}!", "world");
}
}
Visual Studio 2015中的IntelliSense了解这种新语法。
答案 4 :(得分:4)
如果您想要全局,可以编写扩展方法:
public static class StringExtensions
{
public static void ConLog(this string msg)
{
Console.WriteLine(msg);
}
}
现在,无论您身在何处,都可以在应用程序中的任何字符串上调用"My Message".ConLog();
并将其写入控制台。
答案 5 :(得分:2)
public static void CW(string str)
{
Console.WriteLine(str);
}
答案 6 :(得分:2)
如果您有 ReSharper ,则可以输入 out 并输入和行
Console.Out.WriteLine("");
将被写入。
如果您想输出变量,还有另一个实时模板: outv 。
Console.Out.WriteLine("time = {0}", time);
此处时间是您在输入 outv 后可以选择的变量。
答案 7 :(得分:1)
编写一个方法,在Console.WriteLine()
void Log(string msg)
{
Console.WriteLine(msg);
}
答案 8 :(得分:1)
您可以声明一个静态方法来包装调用:
static class C
{
static void W(string s)
{
Console.WriteLine(s);
}
}
然后:
C.W("Print Something");
在检入调用此方法的任何代码之前,我倾向于使用“内联方法”重构。正如Jon Skeet所指出的那样,直接使用Console.WriteLine就不那么容易混淆了。
答案 9 :(得分:1)
如果你在页面顶部写这个
using j = System.Console;
然后随时可以使用
j.WriteLine("Anything you want to write");
这就是全部。顺便说一下,你可以用任何东西代替“j”。
答案 10 :(得分:1)
// 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
答案 11 :(得分:1)
要搭载Michael Stum的答案,我们还可以将object
作为Action
委托的类型参数,如下所示:
Action<object> cw = x => Console.WriteLine(x.ToString());
我通常在C#交互式窗口中执行此操作,以快速打印出正在使用的对象。
例如:
> var grid = driver.FindElements(By.XPath("//div[@class='ReactVirtualized__Grid__innerScrollContainer']//div"));
> cw(grid);
System.Collections.ObjectModel.ReadOnlyCollection`1[OpenQA.Selenium.IWebElement]
>
答案 12 :(得分:0)
此快捷方式将避免在使用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;
}
答案 13 :(得分:0)
我最喜欢的一个...... 来自BASIC和Python ...我经常错过Print()... 我还经常在JS / ES中使用Print()来控制console.log / other-console ...
因此将其声明为函数:
color 17
cls
@echo off
echo.
echo Cloud Backup to External Hard Drive Backup Utility
echo.
echo Please ensure External Hard Drive is plugged into the computer
echo and that it is showing in "This PC"
pause
SET SOURCE=Z:
FOR %%a in (E F G H I J K L M N O P Q R) DO IF EXIST "%%a:" robocopy %SOURCE% "%%a\Appraisal Service Backup" /E
pause
public static void Print( object x ){ Console.WriteLine( x ); }
Print( "Hi\n\n" + x.toString() + "\n\nBye!!!" );
答案 14 :(得分:-1)
只需创建一个函数;
static void print(string str)
{
Console.WriteLine(str);
}
并在任何地方调用它... (如果您愿意,可以将其公开。)