C# 数组读取问题#
我得到这段代码是为了将一些数字存储到一个特定的数组中,但是IDE向我显示了这个错误“使用未分配的局部变量‘ascchar’”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
在为数组赋值之前,您应该设置数组边界,如果您像这样初始化一个数组(
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
。