我正在复习我的 C# 技能并阅读 C# 书籍。我在数组一章中遇到了 params
关键字。为什么有人会实际使用 params
关键字而不是将常规数组传递给该方法。我测试了两种传递数组的方法,无论是否使用 params
关键字。他们都工作得很好。在现实世界中是否有使用 params
关键字的理由?
这是我的代码:
using System;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
string[] classname = new string[5] { "cs150", "cs250", "cs270", "cs300", "cs350" };
Prints(classname);
Console.Read();
}
public static void Prints(params string[] t)
{
foreach (var s in t)
{
Console.WriteLine(s);
}
}
}
}
下面是没有参数的代码:
using System;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
string[] classname = new string[5] { "cs150", "cs250", "cs270", "cs300", "cs350" };
Prints(classname);
Console.Read();
}
public static void Prints(string[] t)
{
foreach (var s in t)
{
Console.WriteLine(s);
}
}
}
}
最佳答案
您觉得对 Console.WriteLine
的哪些调用更清晰?
Console.WriteLine("Hello {0}, you are {1}", person.Name, person.Age);
或
Console.WriteLine("Hello {0}, you are {1}",
new object[] { person.Name, person.Age });
(在上述情况下,您甚至不能使用隐式类型数组 (new[]
),除非 person.Name
或 person.Age
是 object
类型...如果它们都是 string
类型你没问题,但它会创建一个字符串数组...)
我更喜欢第一个。阅读起来更简单。这就是 params
的全部内容 - 它只是允许调用者使用更简洁的语法。您仍然可以像在代码中那样以正常方式传递数组引用 - 但您可以也只写:
Prints("cs150", "cs250", "cs270", "cs300", "cs350");
...同样,这比声明一个单独的变量更易于阅读。
关于c# - 为什么要使用 params 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12992008/