Инициализировать кортеж с пустыми или нулевыми значениями в C#

У меня есть этот словарь и кортежи, установленные в SetValue(), как показано ниже:-

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

Я пытаюсь получить кортеж в GetValue(), как показано ниже:

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>("","");

2 ответа

Решение

Если это параметр out, объект не нужно инициализировать перед использованием. Вы должны просто быть в состоянии сделать:

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

Вам не нужно создавать экземпляр для параметра out. Просто объявите локальную переменную как Tuple, но не присваивайте значение.

Tuple<string, string> myTyple;
Другие вопросы по тегам