Setter uzycie

Wątek przeniesiony 2016-10-13 00:56 z C# i .NET przez somekind.

WO
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 137
0

public int a
{
get
{
return a*2;
}
set
{
a = 5+value;
}
}

Pojawia się error StackOverflowException
Chcialem ustawic jakies metody np przy wpisywaniu do zmiennej dodać 5. A jak wypisuje to przemnożone razy 2;

Pozdrawiam i z góry dziękuje za pomoc.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Utwórz sobie prywatne pole a bez żadnych getterów i setterów oraz publiczne pole A, w którym one już będą.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
5
Kopiuj
            get
            {
                return a*2;
            }

Żeby odczytać wartość a, wywoływany jest getter, który zwraca a*2. Żeby odczytać wartość a z tego wyrażenia, wywoływany jest getter, który zwraca a*2. Żeby odczytać wartość a z tego wyrażenia...

Luki91
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bytom
  • Postów: 81
2
Kopiuj

 class Klasa
    {
        private int a;

        public int A
        {
            get { return a; }
            set { a = 5 + value; }
        }
    }

:D

WO
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 137
0

Czytalem wlasnie i oczywiście można dodać dodatkową zmienną 'a' to 'A' czy podobnie. Myslalem jednak aby od razu tę samą zmienną mnożyć/inkrementować. Dziękuję wszystkim za pomoc. :)

Aventus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: UK
  • Postów: 2235
2

Jeszcze małe sprostowanie- a to **pole **(ang. field) natomiast A to **właściwość **(ang. property).

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.