Неквалифицированная ссылка будет всегда ссылаться на параметр, потому что он находится в более локальной области.
Если вы хотите сослаться на переменную-член, вам нужно указать ее имя класса (или this
для нестатических переменных-членов).
output = foo; // refers to the parameter
recursive.output = foo; // refers to a static member variable
this.output = foo; // refers to a non-static member variable
Но вам, вероятно, все равно стоит сменить имя. Это делает ваш код намного проще для чтения.
И у вас вообще не должно быть публичных статических переменных. Во всех рекомендациях по стилю кодирования .NET настоятельно рекомендуется вместо предоставления открытых полей properties . И поскольку они всегда в верблюжьей клетке, эта проблема решается сама собой.