C# 数组读取问题#

C# 数组读取问题#,c#,arrays,windows,forms,C#,Arrays,Windows,Forms,我得到这段代码是为了将一些数字存储到一个特定的数组中,但是IDE向我显示了这个错误“使用未分配的局部变量‘ascchar’” 在为数组赋值之前,您应该设置数组边界,如果您像这样初始化一个数组(int[]someArray=new int[somepositiveInt]),它将创建一个具有指定数量索引的数组(所有数组都具有0)。然后可以为每个索引分配值 private void strtoasc() { int[] ascchar=new int[tbox_string.Text.Len

我得到这段代码是为了将一些数字存储到一个特定的数组中,但是IDE向我显示了这个错误“使用未分配的局部变量‘ascchar’”


在为数组赋值之前,您应该设置数组边界,如果您像这样初始化一个数组(
int[]someArray=new int[somepositiveInt]
),它将创建一个具有指定数量索引的数组(所有数组都具有
0
)。然后可以为每个索引分配值

private void strtoasc()
{
    int[] ascchar=new int[tbox_string.Text.Length];// It will solve the issue
    int i = 0;
    foreach (char stg in tbox_string.Text)
    {
        ascchar[i] = Convert.ToInt32(stg);
        i++;
    }
}
或者,您可以使用以下方法获得相同的输出:

 int[] ascchar=tbox_string.Text.Select(c => (int)(c - '0')).ToArray();

在为数组赋值之前,您应该设置数组边界,如果您像这样初始化一个数组(
int[]someArray=new int[somepositiveInt]
),它将创建一个具有指定数量索引的数组(所有数组都具有
0
)。然后可以为每个索引分配值

private void strtoasc()
{
    int[] ascchar=new int[tbox_string.Text.Length];// It will solve the issue
    int i = 0;
    foreach (char stg in tbox_string.Text)
    {
        ascchar[i] = Convert.ToInt32(stg);
        i++;
    }
}
或者,您可以使用以下方法获得相同的输出:

 int[] ascchar=tbox_string.Text.Select(c => (int)(c - '0')).ToArray();

对于您当前的问题:

这个错误很直接。您已经声明了变量
ascchar
,但实际上没有为其赋值。您需要类似于
int[]ascchar=newint[somenumber]
的内容。或者,如果您不知道数组需要多大(可能是
tbox\u string.Text.Length
?),请使用
列表

然而,如果您的代码打算返回每个字符的ASCII代码,那么您就错了(这不是
Convert.ToInt32
的工作方式)。您可以通过以下方式实现相同的目标:

var ascchar = Encoding.ASCIIEncoding.GetBytes(tbox_string.Text);

请参见

,了解当前问题:

这个错误很直接。您已经声明了变量
ascchar
,但实际上没有为其赋值。您需要类似于
int[]ascchar=newint[somenumber]
的内容。或者,如果您不知道数组需要多大(可能是
tbox\u string.Text.Length
?),请使用
列表

然而,如果您的代码打算返回每个字符的ASCII代码,那么您就错了(这不是
Convert.ToInt32
的工作方式)。您可以通过以下方式实现相同的目标:

var ascchar = Encoding.ASCIIEncoding.GetBytes(tbox_string.Text);

请参见

ohh,thx,但我只需要ASCII数字和Convert.ToInt32给我。
GetBytes
给你它们。一气呵成。如果是ASCII码,它们应该是
bytes
,而不是
int
@jamescaruso将UTF-16码单元作为
Char
转换为UTF-16码单元作为
int
。哦,thx,但我只需要ASCII码和Convert.ToInt32给我。
GetBytes
给你。一气呵成。如果是ASCII码,它们实际上应该是
字节
而不是
int
@jamescaruso将UTF-16代码单元作为
Char
转换为UTF-16代码单元作为
int