-3

可能重复:
在 C# 中使用 var 关键字

  1. var像下面代码的第一行那样用于初始化对象有什么好处,var sp用于 SerialPort。

  2. 使用对象后处理它有什么好处?在下面的代码中,对象SerialPortSMS发送给接收者之后被释放。

代码:

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);
}
4

3 回答 3

4
  1. 随着var你少打字。

  2. 当 GC 认为合适时,它可以自由地收集已处置的对象。如果它是非托管资源,则调用Dispose将清理这些资源。

于 2012-04-30T10:48:21.200 回答
4

1)有了var你不必写出SerialPort两次。

如果您调用的方法返回的对象可能具有非常复杂的签名,那么使用var肯定会有所帮助。最常见的情况是 linq 查询。

var q = from c in orders
        order by c.id
        select c;

q 的类型是IOrderedQueryAble<Order>我不想写出来的。

2) 处理完串口后立即将其关闭并释放以供其他应用程序使用。如果你不处理它,端口将被锁定,直到 GC 收集到对象(这可能需要相当长的时间)。

于 2012-04-30T10:46:27.580 回答
1

在您的情况下, var 是一种不写 SerialPort 两次的选项

SerialPort sp = new SerialPort(cbcomport.Text)

var sp = new SerialPort(cbcomport.Text)

以上两种说法都是一样的

此外,在某些地方,如 LINQ,当我们不确定 LINQ 查询的结果是什么时,我们会编写 var 来存储获取的结果。

于 2012-04-30T10:49:18.633 回答