PDA

View Full Version : [C#] Proprietà


Teo@Unix
17-04-2011, 00:03
Scusate, avrei bisogno di una piccola delucidazione su C#, se dichiaro all'interno di una classe la variabile con le sue proprietà in questo modo:

/// <summary>
/// Current weight value, used in the computation
/// </summary>
public double CurrentValue
{
get
{
return CurrentValue;
}
set
{
PreviousValue = CurrentValue;
CurrentValue = value;
}
}

perchè ogni volta che la uso mi ritorna un'eccezzione? (Eccezione non gestita di tipo 'System.StackOverflowException' in Modulo sconosciuto.) Anzi, anche senza utilizzarla, quando il debugger si trova nella zona, si interrompe tutto (credo perchè non riesca nemmeno a visualizzarne il valore nel riquadro watch).

A questo punto credo di non aver capito le proprietà allora.
(Uso C# da qualche giorno) grazie per l'aiuto.

Kralizek
17-04-2011, 00:50
perchè hai creato un loop di chiamate sul getter della proprietà.
Ti serve quello che tecnicamente viene chiamato "backing field"


public class MyClass
{
private double _currentValue;
private double _previousValue;

public double CurrentValue
{
get { return _currentValue; }
set
{
_previousValue = _currentValue;
_currentValue = value;
}
}

public double PreviousValue
{
get
{
return _previousValue;
}
}
}

Teo@Unix
17-04-2011, 09:01
a, credo di aver capito, io utilizzavo anche nomi uguali rispetto al tuo esempio.
Si infatti ora non mi da errore, thanks.