Immaginiamo di avere una classe che contiene un vettore, i quali primi valori sono visibili solo agli amministratori, gli altri a tutti. Il codice potrebbe essere più o meno così:
public class VectorInfo
{
public VectorInfo()
{
this.data = new string[] { "Admin1", "Admin2", "Admin3", "Std1", "Std2", "Std3" };
}
[PrincipalPermission(SecurityAction.Demand, Role="Administrators")]
public string GetAdminValue(uint idx)
{
if (idx < data.Length)
return data[idx];
return string.Empty;
}
public string GetValue(uint idx)
{
if (idx + adminLastIndex < data.Length)
return data[idx + adminLastIndex];
else
return string.Empty;
}
private string[] data;
private const int adminLastIndex = 2;
}
Non voglio soffermarmi sul design, ma solamente sull'algoritmo. Secondo voi, che cosa c'è di sbagliato?