C# 如何在C中转义message System.Int32#
我刚开始学C#,所以我有个问题 为什么我会收到消息C# 如何在C中转义message System.Int32#,c#,C#,我刚开始学C#,所以我有个问题 为什么我会收到消息System.Int 32[] public static int[] GetFirstEvenNumbers(int count) { int[] array = new int[count]; for (int i = 1; i <= array.Length; i++) array[i - 1] = i * 2; for (int j = 0; j < count; j++)
System.Int 32[]
public static int[] GetFirstEvenNumbers(int count)
{
int[] array = new int[count];
for (int i = 1; i <= array.Length; i++)
array[i - 1] = i * 2;
for (int j = 0; j < count; j++)
Console.Write(array[j] + " ");
return new int[count];
}
public static void Main(string[] args)
{
Console.Write(GetFirstEvenNumbers(5));
Console.ReadKey();
}
public static int[]GetFirstEvenNumbers(int计数)
{
int[]数组=新的int[count];
对于(int i=1;i您看到bahaviour的原因是,当您将对象(无论类型)传递到Console.Write方法时,它将调用objects ToString()方法。
某些类型已重写此方法,以便以对该类型有意义的方式显示对象或值(例如,整数将打印其值)
许多对象没有重写此方法,因此它们默认返回Object.ToString(),Object.ToString()的行为是打印出对象的类型
您可以阅读更多有关它的信息。您向控制台写入的类型为int[]
。此类型int[]
,不重写ToString()
。因此使用它从对象继承的行为,即只返回其类型的全名,即System.Int32[]
您要做的是创建一个字符串
,该字符串由数组中的所有条目组成,用一些符号分隔。您可以使用string.Join
。例如:
var firstFiveEven = GetFirstEvenNumbers(5);
var firstFiveEvenAsStringWithSeparators = string.Join(" - ", firstFiveEven);
Console.Write(firstFiveEvenAsStringWithSeparators);
Console.ReadKey();
斯图亚特说的是真的:
在代码中,假设要写入数组的每个整数,然后写入所有数组
在一段时间内,需要对代码进行一些更改
1-在方法GetFirstEvenNumbers中返回新的空数组或零数组时,需要将其替换为代码中的数组变量,该数组变量包含两个相乘的值
2-由于您的方法(函数)返回int数组,因此您需要将其转换为string,以便控制台可以编写它。一个好的c#方法是string.join
因此,这些更改后的代码应该如下所示:
public static int[] GetFirstEvenNumbers(int count)
{
int[] array = new int[count];
for (int i = 1; i <= array.Length; i++)
array[i - 1] = i * 2;
// if you don't need to repeat the result twice get rid off the
// second for loop and Console.Write
for (int j = 0; j < count; j++)
Console.Write(array[j] + " ");
return array;
}
public static void Main(string[] args)
{
Console.Write(string.Join(",",GetFirstEvenNumbers(5)));
Console.ReadKey();
}
public static int[]GetFirstEvenNumbers(int计数)
{
int[]数组=新的int[count];
对于(int i=1;i,因为当您调用Console.Write时,使用的值不是字符串,默认行为是输出值的类型。您可以使用Console.Write(string.Join(“,”,GetFirstEvenNumbers(5));返回新的int[count];应该是:返回数组;因为尚未构建(或将要构建)的编译器/运行时无法进行打印(something)
并正确推断出您希望看到的内容。将有默认设置,但没有魔力