为对象声明'var'有什么好处?

时间:2012-04-30 10:43:32

标签: c# var

  

可能重复:
  Use of var keyword in C#

  1. 使用var初始化对象有什么好处,如以下代码的第一行所示,var sp用于SerialPort。

  2. 使用后处理对象有什么好处?如下面的代码所示,对象SerialPortSMS发送给收件人后处理。

  3. 代码:

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

3 个答案:

答案 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)

  1. 使用var键入较少的内容。

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

答案 2 :(得分:1)

在你的情况下,var是一个不能像

那样编写两次SerialPort的选项
SerialPort sp = new SerialPort(cbcomport.Text)

var sp = new SerialPort(cbcomport.Text)

以上两个陈述都是相同的

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