【问题标题】:C# setting the values of a multidimensional array with a constructorC# 使用构造函数设置多维数组的值
【发布时间】:2018-09-24 21:36:54
【问题描述】:

我想知道如何使用类构造函数来设置多维数组的值。我之前使用过构造函数来设置整数的值(见下文),但这种语法似乎不适用于数组。

这是我将如何使用带整数的构造函数

public class Warehouse
{   
    //declares instance variables
    public int radios;
    public int televisions;
    public int computers;


    //Creates constructor with 0 inventory
    public Warehouse()
    {
        radios = 0;
        televisions = 0;
        computers = 0;
    }

上面的这段代码在以前的作业中对我有用。但是,下面的代码是我目前正在尝试修复的。 Visual Studio 表示这些变量未使用,并将保持默认值。此外,为每个索引分配值的行中的逗号带有红色下划线,表示应该使用分号。还有另一种使用构造函数来设置这些数组的值的方法吗?我只想声明这些值以及数组,但赋值要求使用构造函数。

public class Matrix
{
    public double[,] matrixX;
    public double[,] matrixY;
    public double[,] xySum;
    public double[,] xyDiff;
    public double[,] xScalar;

    public Matrix()
    {
        matrixX = { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };
        matrixY = { { 9.9, 8.8, 7.7 }, { 6.6, 5.5, 4.4 }, { 3.3, 2.2, 1.1 } };
        xySum = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
        xyDiff = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
        xScalar = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
    }

【问题讨论】:

  • matrixX = new double[,] { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };
  • 旁注:始终注意 Visual Studio 中的这些红色摆动线。不仅要注意其中的一些,还要注意所有这些。这些红色摆动蛇指示的一些错误只是代码中也有红色摆动蛇的其他错误的副作用。 (哦,有时那些蛇也可以是绿色的...... ;-)

标签: c# arrays multidimensional-array constructor


【解决方案1】:

每当实例化一个新对象时,new 关键字必须始终出现在某处(除非您使用反射和Activator.CreateInstance())。因此,要初始化数组,您必须将 new double[,] 声明为赋值的一部分。

所以不要这样:

    matrixX = { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };

使用这个:

    matrixX = new double[,] { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };

【讨论】:

  • 好的,但是顶部的变量仍然带有绿色下划线,并且将它们注释掉会使构造函数中的变量带有红色下划线以表示“在当前上下文中找不到”
  • 我无法重现该问题@Zachary。当您将鼠标悬停在绿线上时,您会看到什么消息?
  • public double[,] matrixX; 之类的行在变量下方有一条绿线,表示“从未分配给,并且将始终具有其默认值 null”。
  • 我相信我已经解决了这个问题。代码中的其他地方一定有错误导致问题。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2022-11-11
  • 2014-05-23
  • 1970-01-01
  • 2023-04-08
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
相关资源
最近更新 更多