提问人:Ajinkya Jagtap 提问时间:1/31/2022 最后编辑:Ajinkya Jagtap 更新时间:1/31/2022 访问量:314
using 语句对变量进行多次赋值
using statement for multiple assignments to the variable
问:
我有一个System.Drawing.Pen类型的变量“pen”,它在特定方法中被多次分配。我想把它放在“使用”语句中。我该怎么做?
Pen pen = new Pen(Color.Gray);
// some code which uses gray value
pen = new Pen(Color.Green);
// some code which uses green value
pen = new Pen(Color.Red);
// some code which uses red value
提前致谢。
答:
4赞
Dmitry Bychenko
1/31/2022
#1
好吧,实现,因为它分配了非托管资源(),因此在一般情况下是必需的。
在当前代码中,存在资源泄漏:Pen
IDisposable
HPEN
using
Pen pen = new Pen(Color.Gray);
// some code which uses gray value
pen = new Pen(Color.Green); // <- from now on Pen(Color.Gray) is leaked
// some code which uses green value
pen = new Pen(Color.Red); // <- from now on Pen(Color.Green) is leaked
// some code which uses red value
您可以使用预定义的笔(不需要):using
Pen pen = Pens.Gray;
// some code which uses gray value
pen = Pens.Green;
// some code which uses green value
pen = Pens.Red;
// some code which uses red value
或者,如果要手动创建 s,请将它们包装成:Pen
using
using (Pen pen = new Pen(Color.Gray)) {
// some code which uses gray value
}
using (Pen pen = new Pen(Color.Green) {
// some code which uses green value
}
using (Pen pen = new Pen(Color.Red)) {
// some code which uses red value
}
评论
IDisposable
Pen
IDisposable
using
using
using Pen grayPen = new Pen(Color.Gray); using Pen greenPen = new Pen(Color.Green);
等。?(如果您使用的是比 8 更旧的 C# 版本,则需要传统的样式块,但概念是相同的:每支笔一个变量)。using
using (var pen = new Pen(Color.Gray)) { ... } using (var pen = new Pen(Color.Green)) { ... }