Generics / get-set problem
class DataValue{
object data;
public DataValue(string name, object data)
{
this.data = data;
}
public object Data{
get { return (data); }
set {
Console.Writeline("DV.set")
data = value; }
}
}
class DataRow
{
ArrayList row;
public DataRow()
{
row = new ArrayList();
}
public void Load()
{
/* load code here */
row.Add(new DataValue(5551212));
row.Add(new DataValue("Fred"));
row.Add(new DataValue(2355.23m));
}
public DataValue this[int column]
{
get { return ((DataValue)row[column - 1]); }
set {
Console.Writeline("DR.Set")
row[column - 1] = value; }
}
}
class Program
{
static void Main(string[] args)
{
DataRow row = new DataRow();
row.Load();
Console.WriteLine("Column 2: {0}", row[1].Data);
row[1].Data = 12; // set the ID
}
}
Dette program skulle gerne skrive:
/////////////
Column 2: 5551212
DR.set
Tryk på en vilkårlig tast for at fortsætte . . .
/////////////
men skriver i stedet :
/////////////
Column 2: 5551212
DV.set
Tryk på en vilkårlig tast for at fortsætte . . .
/////////////
dvs min DataRow.set bliver sprunget over ???
nogen som kan forklare dette fenomen ?
