2012-11-21 7 views
5

に空またはnull値を持つタプルを初期化します - 私は以下のように)(GetValueメソッドでタプルをretriveしようとしていますは、私は以下のようにこの辞書やタプルのSetValue()に設定しているC#の

var myDict = new Dictionary<string, Tuple<string, string>>(); 

private void SetValue() 
{ 
    var myTuple1= Tuple.Create("ABC", "123"); 
    var myTuple2= Tuple.Create("DEF", "456"); 
    myDict.Add("One", myTuple1) 
    myDict.Add("Two", myTuple2) 
} 

: -

private void GetValue() 
{ 
    var myTuple = new Tuple<string, string>("",""); //Is this correct way to initialize tuple 
    if (myDict.TryGetValue(sdsId, out myTuple)) 
    { 
    var x = myTuple.Item1; 
    var y = myTuple.Item2; 
    } 
} 

私の質問は、これが辞書から同じものを取得する際にタプルを初期化する正しい方法であるかどうかです。より良いコードはありますか?

var myTuple = new Tuple<string, string>("",""); 
+0

タプルを初期化することは、辞書を使用することとは直接関係がありません。 2つのクラスは関連していません。 – usr

答えて

11

outパラメータの場合、オブジェクトを使用する前に初期化する必要はありません。

Tuple<string,string> myTuple; 
if (myDict.TryGetValue(sdsId, out myTuple)) 
{ 
    var x = myTuple.Item1; 
    var y = myTuple.Item2; 
} 
+0

これは本当です。私は確かにダンボです。ありがとう:) – rajibdotnet

13

outパラメータのインスタンスを作成する必要はありません。ローカル変数をタプルとして宣言するだけで、値を代入しないでください。

Tuple<string, string> myTyple; 
+0

@TimSchmelter私は正直なところ、そのシナリオで使用する変数を定義する最良の方法を尋ねる質問を読んでいます。それだけで宣言する必要がありました。 – fsimonazzi

関連する問題