visual studio c# .NET 获取、设置对吗?值 0

visual studio c# .NET Get, Set right? values 0

在我用“<-----”标记的行中,调试器为 hoehe、laenge、breite、ekpre 提供了值 0。我不知道为什么,我是 c# 新手。你能帮我吗?

// Class clsBerechnung:

    public int Laenge { get; set; }

    public int Breite { get; set; }

    public int Hoehe { get; set; }

    public double Ekpreis { get; set; }

    public double Calculation()
    {
        double hilf = Oberflaeche(Laenge, Breite, Hoehe) / 1.52;    <---
        hilf = Math.Round(hilf * Ekpreis, 2);
        return hilf;
    }

    public double Oberflaeche(int laenge, int breite, int hoehe)
    {
        double hilf = 0;
        hilf = 2 * (laenge * hoehe) + 2 * (breite * hoehe) + (breite * laenge);
        hilf = hilf / 1000000;
        hilf = Math.Round(hilf * 0.8, 2);
        return hilf;
    }

// 在 frmMain 中:

    static clsBerechnung Berechnung = new clsBerechnung();

    Berechnung.Ekpreis = Convert.ToDouble(reader["EK-Preis"]);
    Berechnung.Laenge = Convert.ToInt32(reader["Länge"]);
    Berechnung.Breite = Convert.ToInt32(reader["Breite"]);
    Berechnung.Hoehe = Convert.ToInt32(reader["Höhe"]);

    lblOberflaeche.Text = "Oberfläche: " + Convert.ToString(Berechnung.Oberflaeche(Berechnung.Laenge, Berechnung.Breite, Berechnung.Hoehe)) + " m²";

lblLaufmeter.Text = "Laufmeter: " + Convert.ToString(Math.Round((Berechnung.Oberflaeche(Berechnung.Laenge, Berechnung.Breite, Berechnung.Hoehe) / 1.52),2));

// 在 frmErgebnis 中:

        static clsBerechnung Berechnung = new clsBerechnung();
        label1.Text = Convert.ToString(Berechnung.Calculation());

逻辑是否正确?

虽然 Berechnung 成员在 frmMainfrmErgebnis 中是静态的,但它们是 clsBerechnung class 和 [=14] 的两个不同实例=]、BreiteHoehe 属性不是静态的。因此在 frmMain 中初始化这些属性不会影响 frmErgebnis.

中的属性

您要么需要以某种方式在 frmMainfrmErgebnis 之间共享 clsBerechnung 的单个实例,要么将使用它们的上述属性和方法设为静态。