我确信这已经得到了解答,如果我不知道该怎么回答,我很抱歉,但我对C#很新,所以请不要激怒我,因为这是一个非常基本的问题
我学过一些python,我想在python中创建一个类似print语句的函数,或者像这样:
public static void PRINT(string d)
{
System.Diagnostics.Debug.WriteLine(d);
}
因此我不必经常一直编写Debug.WriteLine()。它将像我习惯的python print语句一样简单。 Buuut。我似乎无法传递多个参数
PRINT("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite);
现在我已经了解了重载,并且我可以在C#中创建另一个PRINT函数作为重载,但我想知道是否有更简单的方法。 (顺便说一句,我发现了一些名为ArgIterator结构的东西听起来很有希望。那用的是什么?我尝试将其作为参数传递无效。)
答案 0 :(得分:2)
替代方法:
void Main(){
Print("{0}, {1}", "test", "another test");
}
void Print(string format, params string[] args){
Console.WriteLine(format, args);
}
输出:
测试,另一个测试
答案 1 :(得分:1)
尝试:
PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}",
elapsedTime,
changeDelayedTime,
currentSprite));
将格式化的字符串传递给函数
答案 2 :(得分:0)
你的意思是这样的;
PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite));
答案 3 :(得分:0)
发生的事情是你错过了对string.Format()
的电话。所以改成它:
PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite));
答案 4 :(得分:0)
完成您要做的事情的最简单方法是在方法的参数中连接。
对于以下方法:
public static void PRINT(string d)
{
System.Diagnostics.Debug.WriteLine(d);
}
只要连接就可以传入多个变量,如下所示:
TimeSpan elapsedTime;
TimeSpan changedDelayedTime;
string current sprite;
PRINT("Elapsed Time: " + elapsedTime + "..ChangeDelayTime: " + changedDelayTime + "..CurrentSprite: " + currentSprite);