Perchè quando ci vuole, ci vuole... Reflection :-)

Avete mai avuto l'esigenza di conoscere l'indice di una riga (una DataRow, per intenderci) all'interno della DataTable che la contiene? Ebbene, se vi fosse capitato, vi sareste accorti che la classe DataRow non espone alcun membro che fornisca questo dato. Ma ne siamo proprio sicuri? In verità, non esiste un membro pubblico che fornisca questa info ma ricorrendo ad un po' di malizia e, soprattutto, a Reflection possiamo utilizzare il campo privato rowID:

DataRow unaRiga = unaDataTable.NewRow();
FieldInfo rowFieldsInfo = typeof(DataRow).GetField("rowID", BindingFlags.NonPublic | BindingFlags.Instance);
int rowId = (int) rowFieldsInfo.GetValue(unaRiga);

«novembre»
domlunmarmergiovensab
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456