Манипулирование данными в Multiarray в C # в форме Windows - PullRequest
0 голосов
/ 02 декабря 2018

Управление данными в мульти-массиве в C # в форме Windows.Я портирую старое приложение VB, которое я написал на C #, и испытываю некоторые затруднения с пониманием синтаксиса, связанного с несколькими массивами.

В VB я могу DIM-массивы, а затем предварительно загружать в них данные

Пример

Private Sub FormMain_Load(ByVal eventSender As System.Object, ByVal 
eventArgs As System.EventArgs) Handles MyBase.Load 

Dim DataPoint_300_mCi(15, 10) As Object

DataPoint30Ci(1, 0) = 27780.4818
DataPoint30Ci(1, 1) = 13135.3365
DataPoint30Ci(1, 2) = 6552.5702
DataPoint30Ci(1, 3) = 3276.2851
DataPoint30Ci(1, 4) = 2642.1654
DataPoint30Ci(1, 5) = 1336.1808
DataPoint30Ci(1, 6) = 682.4336
DataPoint30Ci(1, 7) = 345.7462

(фрагмент кода)

Затем используйте две переменные для доступа к определенным значениям в массиве. Я пытаюсь получить правильный синтаксис в C #, но у меня возникли некоторые трудности.Я написал тестовое приложение, чтобы понять синтаксис, но он не работает.В основном у меня есть два текстовых поля, чтобы ввести значение xy, нажмите кнопку, а затем результат перейдет в другое текстовое поле.

Я отредактировал его, чтобы показать весь код.Я старая собака, пытающаяся освоить новые уловки

Я получаю сообщение об ошибке textBoxAnswer.Text = DataPoint30Ci [x, y] .ToString ();а именно DataPoint30Ci [x, y].Сообщение об ошибке гласит: «Имя DataPoint30Ci» не существует в текущем контенте.

Спасибо

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MultiArrayTest
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void FormMain_Load(object sender, EventArgs e)
    {
        Double[,] DataPoint30Ci = new Double[15, 2];

        DataPoint30Ci[0, 0] = 27780.4818;
        DataPoint30Ci[0, 1] = 13135.3365;
        DataPoint30Ci[0, 2] = 6552.5702;
        DataPoint30Ci[0, 3] = 3276.2851;
        DataPoint30Ci[1, 4] = 2642.1654;
        DataPoint30Ci[1, 5] = 1336.1808;
        DataPoint30Ci[1, 6] = 682.4336;
        DataPoint30Ci[1, 7] = 345.7462;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        int x = int.Parse(textBoxColumn1.Text);
        int y = int.Parse(textBoxColumn2.Text);
        textBoxAnswer.Text = DataPoint30Ci[x, y].ToString();
    }
  }
}

1 Ответ

0 голосов
/ 02 декабря 2018

Основываясь на разреженной информации (удаление скобок не очень помогло), я предлагаю следующее: Определите DataPoint30Ci как свойство / поле формы - что-то вроде:

public class Form1: Form
{
    private double[,] DataPoint30Ci;

    //rest of the code
}

Также убедитесь, что массив заполнен в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...