Каков наилучший способ заменить Tuple?с C # 2 - PullRequest
1 голос
/ 04 октября 2011

Я хочу использовать кортеж, но в C # 2 он не существует.Я думаю заменить его на KeyValuePair.

Это лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 04 октября 2011

Простой класс, содержащий два обобщенных члена, вероятно, является лучшим вариантом. По сути, это Tuple<T1,T2>.

Если вы знаете типы, которые вы используете, лучше создать класс с членами этих типов - таким образом, вы можете использовать хорошее именование для класса и членов, чтобы обеспечить хорошую читаемость (который является универсальным типом типа Tuple затемняет).


Из вашего комментария я бы предложил, чтобы создание небольшого класса-оболочки (или, возможно, структуры) для хранения значений int было бы лучшим выбором.

Непроверенные:

public class Point
{
   public Point(int xPos, int yPos)
   {
     this.xPos = xPos;
     this.yPos = yPos;
   }

   int xPos;
   int yPos;

   public int XPos { get { return xPos;} set { xPos = value;} }
   public int YPos { get { return yPos;} set { yPos = value;} }
}
2 голосов
/ 04 октября 2011

Если вы используете Tuple всегда как Tuple<T1,T2>, то вы можете легко переключиться на KeyValuePair<T1,T2> без проблем.

Единственное отличие состоит в том, что вы должны использовать Key и * 1007.* свойства вместо ItemN свойства Tuple.

...