C# 为数组赋值
我试图将值放入数组中,但当我编译代码时,它告诉我这两个数组从未被赋值,并且它们的值都设置为null。有人能看一下代码,告诉我我做错了什么吗C# 为数组赋值,c#,arrays,C#,Arrays,我试图将值放入数组中,但当我编译代码时,它告诉我这两个数组从未被赋值,并且它们的值都设置为null。有人能看一下代码,告诉我我做错了什么吗 class SinusoidalWaveform { double[] angleArray; double[] resultArray; public SinusoidalWaveform(double minAngle, double maxAngle, int size) { int c = 0;
class SinusoidalWaveform
{
double[] angleArray;
double[] resultArray;
public SinusoidalWaveform(double minAngle, double maxAngle, int size)
{
int c = 0;
for(double temp = minAngle; temp <= maxAngle; temp+=maxAngle/(size - 1d))
{
this.angleArray[c] = temp;
this.resultArray[c] = Math.Sin(temp);
c++;
}
}
}
类正弦波
{
双角度阵列;
双[]结果射线;
公共正弦波形(双角度、双最大角度、整数大小)
{
int c=0;
对于(double temp=minAngle;temp,您需要为两个阵列分配内存:
double[] angleArray = new double[5];
double[] resultArray = new double[5];
在构造函数中或在声明中这样做。5在本例中表示为该数组在内存中分配的元素数量
for(double temp = minAngle; temp <= maxAngle; temp+=maxAngle/(size - 1d))
{
this.angleArray[c] = temp;
this.resultArray[c] = Math.Sin(temp);
c++;
}
for(double temp=minAngle;temp您需要为两个阵列分配内存:
double[] angleArray = new double[5];
double[] resultArray = new double[5];
在构造函数中或在声明中这样做。5在本例中表示为该数组在内存中分配的元素数量
for(double temp = minAngle; temp <= maxAngle; temp+=maxAngle/(size - 1d))
{
this.angleArray[c] = temp;
this.resultArray[c] = Math.Sin(temp);
c++;
}
for(double-temp=minAngle;temp两个数组实际上都没有分配
试试这个:
class SinusoidalWaveform
{
double[] angleArray = new double[MAX_SIZE];
double[] resultArray = new double[MAX_SIZE];
.....
其中MAX_SIZE是数组的大小。
如果您不确定最大大小是多少,请考虑使用一个,例如。两个数组实际上都没有分配
试试这个:
class SinusoidalWaveform
{
double[] angleArray = new double[MAX_SIZE];
double[] resultArray = new double[MAX_SIZE];
.....
其中MAX_SIZE是数组的大小。
如果不确定最大大小,请考虑使用,例如。在启动循环之前,使用用户指定的大小实例化数组,如下所示:
angleArray = new double[size];
resultArray = new double[size];
数组是C#中的对象。在使用它们之前必须实例化。在启动循环之前,请使用用户指定的大小实例化数组,如下所示:
angleArray = new double[size];
resultArray = new double[size];
数组是C#中的对象。它们必须在使用之前实例化。看起来在运行循环之前您不知道数组大小,所以最简单的解决方案是使用通用列表,然后在循环后分配数组:
List<double> angleList = new List<double>();
List<double> resultList= new List<double>();
for(double temp = minAngle; temp <= maxAngle; temp+=maxAngle/(size - 1d))
{
angleList.Add(temp);
resultList.Add(Math.Sin(temp));
}
this.angleArray = angleList.ToArray();
this.resultArray= resultList.ToArray();
List angleList=新列表();
列表结果列表=新列表();
for(double temp=minAngle;temp看起来在运行循环之前您不知道数组大小,因此最简单的解决方案是使用通用列表,然后在循环之后分配数组:
List<double> angleList = new List<double>();
List<double> resultList= new List<double>();
for(double temp = minAngle; temp <= maxAngle; temp+=maxAngle/(size - 1d))
{
angleList.Add(temp);
resultList.Add(Math.Sin(temp));
}
this.angleArray = angleList.ToArray();
this.resultArray= resultList.ToArray();
List angleList=新列表();
列表结果列表=新列表();
对于(double temp=minAngle;temp,它实际上告诉您这一点,因为您没有分配数组
double[] angleArray;
double[] resultArray;
如果要为这两个数组赋值,可以尝试以下方法之一
1 |如果您想在一个步骤中分配值,那么您可以尝试以下操作
double[] angleArray = { 1, 2, 3 };
double[] resultArray = { 4, 5, 6 };
然后,您可以使用以下代码访问其值,例如
int n = 1;
angleArray[n] = 1; //Set (2) to (1)
double[] angleArray = new double[3];
int o = 0;
for (int i = 0; i < angleArray.Length; i++)
{
angleArray[i] = o;
o++;
}
其中n是数组中项目的索引。通常,在数组中,第一个项目的索引0
,而不是1
。因此,如果您说angelarray[1]
,它将输出2
2 | |如果要将数组最大值设置为特定值,请分两步分配值
double[] angleArray = new double[3];
double[] resultArrau = new double[3];
虽然这将分配值,但值仍然未知,因为当您说
double[] angleArray = new double[3];
您正在告诉程序您希望分配3个值,但现在不会指示这些值
在这种情况下,您可以使用以下代码指示值,例如
int n = 1;
angleArray[n] = 1; //Set (2) to (1)
double[] angleArray = new double[3];
int o = 0;
for (int i = 0; i < angleArray.Length; i++)
{
angleArray[i] = o;
o++;
}
double[]angelarray=新的双精度[3];
INTO=0;
对于(int i=0;i
这将为循环分配一个o
值,每个循环将增加1
。您可能会注意到,我没有说I
,因为数组中的索引以0
开始,而不是1
重要提示:如果您有一个最多6个值的数组集double[]\u array=new double[6];
,则不能设置索引7
(\u array[7]=1;
)的值,因为您只有6
索引。否则,您将得到索引自动异常未处理
谢谢,
我希望这对您有所帮助:)它实际上告诉您这一点,因为您没有分配数组
double[] angleArray;
double[] resultArray;
如果要为这两个数组赋值,可以尝试以下方法之一
1 |如果您想在一个步骤中分配值,那么您可以尝试以下操作
double[] angleArray = { 1, 2, 3 };
double[] resultArray = { 4, 5, 6 };
然后,您可以使用以下代码访问其值,例如
int n = 1;
angleArray[n] = 1; //Set (2) to (1)
double[] angleArray = new double[3];
int o = 0;
for (int i = 0; i < angleArray.Length; i++)
{
angleArray[i] = o;
o++;
}
其中n是数组中项目的索引。通常,在数组中,第一个项目的索引0
,而不是1
。因此,如果您说angelarray[1]
,它将输出2
2 | |如果要将数组最大值设置为特定值,请分两步分配值
double[] angleArray = new double[3];
double[] resultArrau = new double[3];
虽然这将分配值,但值仍然未知,因为当您说
double[] angleArray = new double[3];
您正在告诉程序您希望分配3个值,但现在不会指示这些值
在这种情况下,您可以使用以下代码指示值,例如
int n = 1;
angleArray[n] = 1; //Set (2) to (1)
double[] angleArray = new double[3];
int o = 0;
for (int i = 0; i < angleArray.Length; i++)
{
angleArray[i] = o;
o++;
}
double[]angelarray=新的双精度[3];
INTO=0;
对于(int i=0;i
这将为循环分配一个o
值,每个循环将增加1
。您可能会注意到,我没有说I
,因为数组中的索引以0
开始,而不是1
重要提示:如果您有一个最多6个值的数组集double[]\u array=new double[6];
,则不能设置索引7
(\u array[7]=1;
)的值,因为您只有6
索引。否则,您将得到索引自动异常未处理
谢谢,
我希望你发现这有帮助:这是C语言还是C++?它们是完全不同的语言?@ USER 1781027?