Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中转义message System.Int32#_C# - Fatal编程技术网

C# 如何在C中转义message System.Int32#

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++)

我刚开始学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++)
        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)
并正确推断出您希望看到的内容。将有默认设置,但没有魔力