Mi stavo chiedendo perché dobbiamo specificare esplicitamente il modificatore static per tutti i membri di una static class. Per esempio, tutti i membri di un'interfaccia, hanno implicitamente l'accesso public ed è vietato specificare qualunque modificatore. Cerco di darmi una risposta, ma è solo una mia supposizione:
Visto che possiamo dichiarare una static class così:
partial class Foo
{
//...
}
static partial class Foo
{
//...
}
senza essere obbligati a specificare static per tutte le dichiarazioni parziali:
static partial class Foo
{
//...
}
static partial class Foo
{
//...
}
la dichiarazione implicita static per i membri creerebbe confusione nella dichiarazione parziale:
partial class Foo
{
// membri static o instance?
}
visto che potrebbe seguire per la stessa classe:
static partial class Foo
{
//...
}
Certo, potevano imporre l'obbligo di specificare static per tutte le dichiarazioni parziali di una static class ma, hanno scelto diversamente... :-) In più, c'è anche il discorso del costruttore statico per le static class: troppa confusione non specificare static per un costruttore statico!
Quindi, li do ragione.