Saya menerapkan dekomposisi LU di C#. Dalam MainWindow.xaml.cs saya membaca elemen matriks dari formulir, mengubahnya menjadi ganda, dan menggunakan kelas LowerUpper.cs dan fungsinya (diedit agar lebih mudah dibaca) untuk perhitungan. Ini adalah segmen masalah:

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

Saya menemukan pertanyaan serupa tetapi kebanyakan tentang jenis variabel yang tidak cocok, kesalahan ketik, atau penggunaan Convert.ToDouble yang salah. Saya yakin tidak ada yang demikian. Saya tidak mengerti mengapa A11 entah bagaimana merupakan tipe? Itu adalah fungsi ganda yang sangat normal.

Saya juga memiliki kesalahan dalam LowerUpper.cs saat mendeklarasikan LowerUpper(): "Tipe atau namespace 'A11' tidak dapat ditemukan (apakah Anda melewatkan petunjuk penggunaan atau referensi Majelis?)".

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

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

        }
    }
}

Saya tidak punya banyak pengalaman dengan proyek Visual Studio sehingga kesalahan ini sangat membingungkan. Apa yang saya lakukan salah?

0
knifecentipede 10 Maret 2019, 19:28

1 menjawab

Jawaban Terbaik

Alasan Anda mengalami kesalahan ini adalah karena Anda lupa menentukan tipe argumen di konstruktor LowerUpper. Itulah mengapa Visual Studio berpikir bahwa A11-A33 adalah tipe.

Kelas LowerUpper Anda akan terlihat seperti ini:

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
        }
    }
}
3
Tolik Pylypchuk 10 Maret 2019, 16:44