using (Font font3 = new Font("Arial", 10.0f),
font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
Я знаю, что несколько объектов того же типа могут использоваться в пункте использования.
Наклон я использую различные типы объектов в пункте использования?
Хорошо я попробовал, но хотя они были различными именами и различными объектами, они действовали, то же = имело тот же набор методов
Там какой-либо другой путь состоит в том, чтобы использовать класс использования с различными типами?
В противном случае, что самый соответствующий путь состоит в том, чтобы использовать его?
using(Font f1 = new Font("Arial",10.0f))
using (Font f2 = new Font("Arial", 10.0f))
using (Stream s = new MemoryStream())
{
}
Так?
Вы можете инициализировать только один тип объекта в каждом с использованием блока
. Однако вы можете вкладывать их сколько угодно:
using (Font font3 = new Font("Arial", 10.0f))
{
using (Brush b4 = new Brush())
{
}
}
Нет, вы не можете сделать это таким образом, но вы можете вложить
в , используя
блоки.
using (Font font3 = new Font("Arial", 10.0f))
{
using (Font font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
}
или, как говорили другие, но я бы не рекомендовал это из-за удобочитаемости.
using(Font font3 = new Font("Arial", 10.0f))
using(Font font4 = new Font("Arial", 10.0f))
{
// use font3 and font4
}
Вы можете разделять запятыми элементы одного и того же типа - ну, все, что я знаю, это то, что компилятор не жалуется. Вы также можете складывать, используя операторы () (используйте один набор скобок {}) разных типов.
http://adamhouldsworth.blogspot.com/2010/02/things-you-dont-know.html
Цель оператора 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);
}
Тем не менее, Я не рекомендую это и считаю это оскорбительным, поэтому этот ответ просто заявляет, что вы можете взломать его, но, вероятно, не должны.
Для этого можно складывать с помощью операторов:
using(Font font3 = new Font("Arial", 10.0f))
using(Font font4 = new Font("Arial", 10.0f))
{
// use font3 and font4
}
Их можно вкладывать:
using (Font font3 = new Font("Arial", 10.0f))
using (font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
Они должны располагаться в обратном порядке (сначала шрифт font4).
РЕДАКТИРОВАТЬ:
Это в точности то же самое, что и:
using (Font font3 = new Font("Arial", 10.0f))
{
using (font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
}