usingDyrektywa daje nam dostęp do typów bez użycia ich w pełni kwalifikowane nazwy:
using MyNamespace.Foo.Bar;
usingOświadczenie działa jak cukier składniowej dla try/ finallybloków, które zapewniają, że obiekty są usuwane odpowiednio:
using(var x = new MyDisposableClass()) { ... }
Te dwie sytuacje wydają się nie mieć ze sobą nic wspólnego. Dlaczego używają tego samego słowa kluczowego?
Wątpię, czy ktokolwiek kiedykolwiek pomyliłby te dwa przypadki, ale wydaje się dziwne, że nie tworzy się nowego słowa dla nowej funkcji.
Nawiasem mówiąc, przeczytałem również o podwójnym użyciu classw C ++ (jednym do deklarowania klas, drugim do definiowania parametrów szablonu), ale drugi przypadek w końcu otrzymał własne słowo kluczowe typename, co ma dla mnie większy sens.