可能重复:
Use of var keyword in C#
使用var
初始化对象有什么好处,如以下代码的第一行所示,var sp
用于SerialPort。
使用后处理对象有什么好处?如下面的代码所示,对象SerialPort
在SMS发送给收件人后处理。
代码:
using (var sp = new SerialPort(cbcomport.Text))
{
sp.Open();
sp.WriteLine("AT" + Environment.NewLine);
sp.WriteLine("AT+CMGF=1" + Environment.NewLine);
sp.WriteLine("AT+CMGS=\"" + dt.Rows[i]["PhoneNo"] + "\"" + Environment.NewLine);
sp.WriteLine(tbsms.Text + (char)26);
Thread.Sleep(5000);
}
答案 0 :(得分:4)
1)使用var
,您不必两次写出SerialPort
这个词。
如果您正在调用返回可能具有非常复杂签名的对象的方法,则使用var
肯定有帮助。最常见的情况是linq查询。
var q = from c in orders
order by c.id
select c;
q的类型是IOrderedQueryAble<Order>
我不想写出来。
2)完成后立即处理串口会将其关闭并将其释放以供其他应用程序使用。如果您不进行处理,端口将被锁定,直到GC收集了对象(可能需要一段时间)。
答案 1 :(得分:4)
使用var
键入较少的内容。
当GC认为合适时,GC可以自由收集处理过的物体。如果它是非托管资源,则对Dispose
的调用将清理这些资源。
答案 2 :(得分:1)
在你的情况下,var是一个不能像
那样编写两次SerialPort的选项SerialPort sp = new SerialPort(cbcomport.Text)
和
var sp = new SerialPort(cbcomport.Text)
以上两个陈述都是相同的
此外在某些地方,比如LINQ,当我们不确定LINQ查询的结果是什么时,我们写var来存储获取的结果。