Почему «использование» улучшает производительность C# ⇐ C#

Место общения программистов C#
Anonymous
Почему «использование» улучшает производительность C#

Сообщение Anonymous »

Похоже, что в большинстве случаев компилятор C# может вызывать Dispose() автоматически. Как и в большинстве случаев, шаблон using выглядит так:

Код: Выделить всё

public void SomeMethod()
{
...

using (var foo = new Foo())
{
...
}

// Foo isn't use after here (obviously).
...
}
Поскольку foo не используется (это очень простое обнаружение) и поскольку он не предоставляется в качестве аргумента другому методу (это предположение применимо ко многим вариантов использования и может быть расширен), компилятор может автоматически и немедленно вызвать Dispose(), причем разработчик не требует этого.

Это означает, что в большинстве случаев использование совершенно бесполезно, если компилятор выполняет какую-то умную работу. IDisposable кажется мне низким уровнем достаточно, чтобы его учитывал компилятор.

Почему же этого не делается? Разве это не улучшит производительность (если разработчики... грязные).

Подробнее здесь: https://stackoverflow.com/questions/306 ... rformances

Вернуться в «C#»