0

我确信这已经得到了回答,如果我不知道要问什么才能正确找到它,我很抱歉,但是我对 C# 很陌生,所以请不要激怒我,因为这是一个非常基本的问题。

我学了一些 python,我想在 python 中创建一个类似 print 语句的函数,或者像这样:

public static void PRINT(string d)
{
        System.Diagnostics.Debug.WriteLine(d);
}

这样我就不必一直不断地编写 Debug.WriteLine() 了。它将像我习惯的 python 打印语句一样简单。布特。我似乎无法传递多个参数

PRINT("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite);

现在我已经了解了重载,并且我可以在 C# 中创建另一个 PRINT 函数作为重载,但我想知道是否有更简单的方法。(顺便说一句,我发现了一种叫做 ArgIterator 结构的东西,听起来很有希望。它是用来做什么的?我尝试将它作为参数传递但无济于事。)

4

5 回答 5

2

替代方法:

void Main(){
    Print("{0}, {1}", "test", "another test");
}

void Print(string format, params string[] args){
 Console.WriteLine(format, args);
}

输出:

测试,另一个测试

于 2013-10-15T01:00:53.137 回答
1

尝试:

PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", 
          elapsedTime, 
          changeDelayedTime,
          currentSprite));

这会将格式化的字符串传递给函数

于 2013-10-15T00:59:31.563 回答
0

你的意思是这样的吗?

PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite));
于 2013-10-15T01:00:43.767 回答
0

发生的事情是您错过了对string.Format(). 所以改成:

PRINT(string.Format("Elapsed Time: {0}..ChangeDelayTime: {1}..CurrentSprite: {2}", elapsedTime, changeDelayedTime, currentSprite));
于 2013-10-15T01:01:16.283 回答
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);
于 2013-10-15T01:03:08.890 回答