Цель оператора using состоит в том, чтобы гарантировать, что полученные ресурсы явным образом утилизируются путем вызова метода Dispose
, предоставляемого интерфейсом IDisposable
. Спецификация не позволяет вам получать ресурсы разных типов внутри одного оператора using, но, имея в виду первое предложение, вы можете написать этот совершенно правильный код с точки зрения компилятора.
using (IDisposable d1 = new Font("Arial", 10.0f),
d2 = new Font("Arial", 10.0f),
d3 = new MemoryStream())
{
var stream1 = (MemoryStream)d3;
stream1.WriteByte(0x30);
}
Однако, Я не рекомендую это и считаю его оскорбительным, поэтому этот ответ просто состоит в том, чтобы заявить, что вы можете взломать его, но, вероятно, не следует.