MSDN di gennaio 2005 riporta un articolo dedicato ai membri e classi statiche (Shared per i VB'ers...), a prima vista potrebbe sembrare superfluo, in realta' ci sono aspetti spesso sottovalutati che vale comunque la pena conoscere.

Quale dei due snippets e' piu' performante?

public class A
{
private static string _a=
"ok";
public static string Text{get{return
_a;}}
}

public class
B
{
 private static string
_a;
 static B () {_a=
"ok";}
 public string Text{get{return
_a;}}
}

Perche' le eccezioni generate nei costruttori statici non vengono correttamente intercettate?, come funziona Reflection con le classi che ereditano da una classe statica?, come fa VB a implementare i membri statici nelle proprieta'/metodi? (e quali controindicazioni ci sono...)
Se vi ho incuriosito dategli uno sguardo