using
Директива дає нам доступ до типам , не використовуючи їх повністю кваліфіковані імена:
using MyNamespace.Foo.Bar;
using
Заява діє як синтаксичний цукор для try
/ finally
блоків , які забезпечують об'єкти утилізуються належним чином:
using(var x = new MyDisposableClass()) { ... }
Ці дві ситуації, схоже, не мають нічого спільного. Чому вони використовують одне і те ж ключове слово?
Я сумніваюся, що хтось коли-небудь заплутав би два випадки, але здається дивним, щоб не створити нове слово для нового функціоналу.
Як осторонь, я читав і про подвійне використання class
в C ++ (один для оголошення класів, інший для визначення параметрів шаблону), але другий випадок зрештою отримав своє ключове слово typename
, що для мене має більше сенсу.