我想知道如何在参数括号中直接声明新变量并将其传递给它:
MethodA(new int[]) //but how to fill the array if declared here? E.g. how to declare and set string?
MethodA(int[] Array)
...
如果需要声明一个对象(带有构造函数参数的类)怎么办?在参数列表中仍然可以吗?
答案 0 :(得分:7)
MethodA(new int[] { 1, 2, 3 }); // Gives an int array pre-populated with 1,2,3
或
MethodA(new int[3]); // Gives an int array with 3 positions
或
MethodA(new int[] {}); // Gives an empty int array
你可以对字符串,对象等做同样的事情:
MethodB(new string[] { "Do", "Ray", "Me" });
MethodC(new object[] { object1, object2, object3 });
如果要将字符串传递给方法,请执行以下操作:
MethodD("Some string");
或
string myString = "My string";
MethodD(myString);
<强>更新强> 如果要将类传递给方法,可以执行以下操作之一:
MethodE(new MyClass("Constructor Parameter"));
或
MyClass myClass = new MyClass("Constructor Parameter");
MethodE(myClass );
答案 1 :(得分:2)
你可以试试这个:
MethodA(new int[] { 1, 2, 3, 4, 5 });
这样您就可以实现所要求的功能。
似乎无法在参数列表中声明变量;但是你可以使用一些常用的技巧,比如调用一个创建和初始化变量的方法:
int[] prepareArray(int n)
{
int[] arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = i;
return arr;
}
...
MethodA(prepareArray(5));
...
使用字符串,为什么不使用字符串文字:
MethodB("string value");
答案 2 :(得分:0)
new int[0]
或new int {}
都适合您。您也可以传递值,如new int {1, 2, 3}
中所示。适用于列表和其他集合。
答案 3 :(得分:0)
在您的情况下,您需要声明MethodB(string[] strArray)
并将其称为MethodB(new string[] {"str1", "str2", "str3" })
P.S。 我建议您从C#教程开始,例如this一个。
答案 4 :(得分:0)
你的意思是:
MethodA("StringValue");
??
答案 5 :(得分:0)
作为旁注:如果你添加了params关键字,你可以简单地指定多个参数,它们将自动包装成一个数组:
void PrintNumbers(params int[] nums)
{
foreach (int num in nums) Console.WriteLine(num.ToString());
}
然后可以将其称为:
PrintNumbers(1, 2, 3, 4); // Automatically creates an array.
PrintNumbers(new int[] { 1, 2, 3, 4 });
PrintNumbers(new int[4]);