-3

重複の可能性:
C#でのvarキーワードの使用

  1. var次のコードの最初の行のようにオブジェクトを初期化するために使用する利点はvar sp、SerialPortに使用されます。

  2. オブジェクトを使用した後に廃棄することの利点は何ですか?次のコードのように、 SMSが受信者に送信SerialPortされた後にオブジェクトが破棄されます。

コード:

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回書き出す必要はありません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 に答える
4
  1. var入力を減らしてください。

  2. GCは、適切と判断されたときに、廃棄されたオブジェクトを自由に収集できます。管理されていないリソースの場合、toを呼び出すとDisposeそれらのリソースがクリーンアップされます。

于 2012-04-30T10:48:21.200 に答える
1

あなたの場合、varはSerialPortを2回書かないオプションです。

SerialPort sp = new SerialPort(cbcomport.Text)

var sp = new SerialPort(cbcomport.Text)

上記のステートメントは両方とも同じです

さらに、LINQのようないくつかの場所では、LINQクエリの結果がわからない場合、フェッチされた結果を格納するためにvarを記述します。

于 2012-04-30T10:49:18.633 に答える