2016-09-05 2 views

ответ

5

Ну, конечно, это делает! Вы устанавливаете значение p внутри сеттера для p. Это приводит к бесконечной рекурсии вызовов методов, что приводит к переполнению доступного пространства стека для выполнения методов.

Похоже, вы просто хотите авто недвижимость:

public pawn[] p { get; set; } 

Или, если вы действительно хотите явное поле подложки, то назвать его по-разному

private pawn[] _p; 
public pawn[] p 
{ 
    get { return _p; } 
    set { _p = value; } 
} 

(Отказ от ответственности: я абсолютно ненависть подчеркнули частные переменные, но это свидетельствует о том, что я чувствую себя слегка отвратительным)

+0

Вы должны указать, что это создает «бесконечный цикл», который вызывает переполнение imo – DarkBee

+1

@DarkBee хорошо, это не цикл, но бесконечная рекурсия – slawekwin

+0

@slawekwin point taken :) – DarkBee

Смежные вопросы