Static-Felder müssen logischerweise initialisiert werden, bevor die Klasse das erste Mal verwendet wird. Wenn die Klasse keinen statischen Konstruktor besitzt (jetzt wird's implementationsspezifisch), passiert das sogar schon, sobald die erste Methode ausgeführt wird, die auf die Klasse verweist. Die Exception trat also wahrscheinlich auf, bevor überhaupt dein erster try-Block ausgeführt wurde - du bräuchtest einen Block
um diese Methode,
in ihr ist zu spät.
Also quasi:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| class Foo { static Socket socket = ...; static void TuWas(); }
...
void Start() { try { ... Foo.TuWas(); |