当函数具有另一个函数时,C#中的变量参数

时间:2013-10-15 00:53:56

标签: c# debugging

我确信这已经得到了解答,如果我不知道该怎么回答,我很抱歉,但我对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结构的东西听起来很有希望。那用的是什么?我尝试将其作为参数传递无效。)

5 个答案:

答案 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);