C # - не может конвертировать из двойного в [имя переменной] - PullRequest
0 голосов
/ 10 марта 2019

Я реализую декомпозицию LU в C #. В MainWindow.xaml.cs я считываю матричные элементы из формы, преобразовываю их в double и использую класс LowerUpper.cs и его функции (отредактированные для удобства чтения) для вычисления. Это проблемный сегмент:

using System;
using System.Linq;
using System.Windows;

namespace NM1test
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Compute()
        {
            double A11 = Convert.ToDouble(a11.Text);
            double A12 = Convert.ToDouble(a12.Text);
            double A13 = Convert.ToDouble(a13.Text);

            double A21 = Convert.ToDouble(a21.Text);
            double A22 = Convert.ToDouble(a22.Text);
            double A23 = Convert.ToDouble(a23.Text);

            double A31 = Convert.ToDouble(a31.Text);
            double A32 = Convert.ToDouble(a32.Text);
            double A33 = Convert.ToDouble(a33.Text);

            LowerUpper lu = new LowerUpper(A11, A12, A13, A21, A22, A23, A31, A32, A33);
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Compute();
        }
    }
}

enter image description here

Я нашел похожие запросы, но в основном они касались несоответствующих типов переменных, опечаток или неправильного использования Convert.ToDouble. Я уверен, что это не так. Я не понимаю, почему A11 как-то типа? Это совершенно нормальные функциональные пары.

У меня также есть ошибка в LowerUpper.cs при объявлении LowerUpper(): «Не удалось найти тип или пространство имен« A11 »(отсутствует директива using или ссылка на сборку?)».

using System;
using System.Linq;
using System.Windows;

namespace NM1test
{
    class LowerUpper
    {
        public LowerUpper(A11, A12, A13, A21, A22, A23, A31, A32, A33)
        {

        }
    }
}

У меня нет большого опыта работы с проектами Visual Studio, поэтому эти ошибки действительно сбивают с толку. Что я делаю не так?

1 Ответ

3 голосов
/ 10 марта 2019

Причиной возникновения этой ошибки является то, что вы забыли указать типы аргументов в конструкторе LowerUpper. Вот почему Visual Studio считает, что A11 - A33 являются типами.

Ваш LowerUpper класс должен выглядеть следующим образом:

using System;
using System.Linq;
using System.Windows;

namespace NM1test
{
    class LowerUpper
    {
        public LowerUpper(double A11, double A12, double A13, double A21, double A22, double A23, double A31, double A32, double A33)
        {
            // initialization code here
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...