Korzystanie z drugiego konstruktora.

Korzystanie z drugiego konstruktora.
wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Witam, mój problem polega na przypisaniu właściwości A do właściwości B.

Mam następujące konstruktory:

Kopiuj
            public Prostokat(double a, double b, double c)
            {
                a = A;
                b = B;
                c = C;
            }

            public Prostokat(double a, double c)
            {
                a = A;
                b = A;
                c = C;
            }

Oraz Metody odpowiedzialne za przekazywanie parametrów:

Kopiuj
        public void Wyswietl()
        {
            try
            {
                double c = int.Parse(FC.Text);
                double a = int.Parse(FA.Text);
                double b = int.Parse(FB.Text);
                Prostokat p = new Prostokat(a, b, c);
                p.A = a;
                p.B = b;
                p.C = c;
                FWynik.Text = "a * b * c = " + p.A.ToString() + " * " + p.B.ToString() + " * " + p.C.ToString() + " = " + p.Objetosc.ToString();
                FWysA.Text = "= " + p.A.ToString() + "cm";
                FWysB.Text = "= " + p.B.ToString() + "cm";
                FWysC.Text = "= " + p.C.ToString() + "cm";
                FFigura.Text = Prostokat.Krawedz.Prostopadloscian.ToString();
            }
            catch (Exception)
            {
                MessageBox.Show("Wprowadź Poprawne wartości! !", "Błąd 2!");
            }

        }

        public void WyswietlDwa()
        {
            try
            {
                double a = int.Parse(FA.Text);
                double c = int.Parse(FC.Text);
                Prostokat p1 = new Prostokat(a, c);
                p1.A = a;
                p1.C = c;
                FWynik.Text = "a * b * c = " + p1.A.ToString() + " * " + p1.B.ToString() + " * " + p1.C.ToString() + " = " + p1.Objetosc.ToString();
                FWysA.Text = "= " + p1.A.ToString() + "cm";
                FWysB.Text = "= " + p1.B.ToString() + "cm";
                FWysC.Text = "= " + p1.C.ToString() + "cm";
                FFigura.Text = Prostokat.Krawedz.Prostopadloscian.ToString();
            }

Pierwsza metoda działa bez zarzutu, natomiast druga przypisuje do właściwości B "0". Wiem że mógłbym dodać p1.B = p1.A. Tylko jaki by był sens tworzenia tego konstruktora.

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
3

Źle

Kopiuj
public Prostokat(double a, double b, double c)
            {
                a = A;
                b = B;
                c = C;
            }

Tak samo i drugi konstruktor, to nie ma sensu.
Powinno być

Kopiuj
A = a;
B = b;

itd

Zamiast bloku try catch użyj TryParse http://msdn.microsoft.com/pl-pl/library/f02979c7(v=vs.110).aspx

Kopiuj
FWynik.Text = "a * b * c = " + p.A.ToString() + " * " + p.B.ToString() + " * " + p.C.ToString() + " = " + p.Objetosc.ToString();

A to co? Liczysz objętość prostokątowi?

I nie musisz walić wszędzie ToString().
Jeśli masz gdzieś "jakiś tekst"+ liczba wtedy ToString() zostanie samo wywołane.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
4
dam1an napisał(a):
Kopiuj
FWynik.Text = "a * b * c = " + p.A.ToString() + " * " + p.B.ToString() + " * " + p.C.ToString() + " = " + p.Objetosc.ToString();

A to co? Liczysz objętość prostokątowi?

I nie musisz walić wszędzie ToString().
Jeśli masz gdzieś "jakiś tekst"+ liczba wtedy ToString() zostanie samo wywołane.

Przede wszystkim w takiej sytuacji lepiej użyć string.Format.

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

Dzięki panowie :)

wojas666
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łuków
  • Postów: 177
0

A jak można odczytać wartość właściwości z zewnątrz kiedy setter jest prywatny?

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
0

A getter?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
0

Normalnie, co ma do tego setter?
Jeśli setter będzie prywatny to nie będziesz mógł nadpisać właściwości ale pobrać tak.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.