Erreur avec Tuple en C # 2008

J’ai créé un programme en C # 2010 et mon code contient un tuple, mais lorsque je mets mon programme en C # 2008, il ne le reconnaît pas et génère l’erreur suivante:

"The type of namespace name 'Tuple' could not be found"

Donc je ne sais pas comment faire fonctionner ça, c’est la ligne de code dans laquelle l’erreur se produit:

 private List<Tuple> lines = new List<Tuple>(); 

S’il vous plaît aider.

MODIFIER

En gros, c’est mon code pour le moment qui ne comstack pas à cause de l’erreur:

 public partial class Form1 : Form { private bool isMoving = false; private Point mouseDownPosition = Point.Empty; private Point mouseMovePosition = Point.Empty; private List<Tuple> lines = new List<Tuple>(); public Form1() { InitializeComponent(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { var g = e.Graphics; if (isMoving) { g.Clear(pictureBox1.BackColor); g.DrawLine(Pens.Black, mouseDownPosition, mouseMovePosition); foreach (var line in lines) { g.DrawLine(Pens.Black, line.Item1, line.Item2); } } } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { isMoving = true; mouseDownPosition = e.Location; } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (isMoving) { mouseMovePosition = e.Location; pictureBox1.Invalidate(); } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { if (isMoving) { lines.Add(Tuple.Create(mouseDownPosition, mouseMovePosition)); } isMoving = false; } } 

J’ai donc besoin d’un moyen de changer ou de faire fonctionner le Tuple dans VS C # 2008 ainsi qu’en 2010,

Merci

La classe Tuple n’est pas dans la structure antérieure à la v4, mais voici une version simplifiée qui devrait correspondre à la plupart de vos besoins:

 public class Tuple { public T Item1 { get; private set; } public U Item2 { get; private set; } public Tuple(T item1, U item2) { Item1 = item1; Item2 = item2; } } public static class Tuple { public static Tuple Create(T item1, U item2) { return new Tuple(item1, item2); } } 

vous pouvez facilement append des classes pour avoir Tuples avec plus de 2 parameters

Les tuples sont nouveaux en C # 4.0

Consultez l’article lié à cette question, il explique leur utilisation.

Une future version de .NET prendra-t-elle en charge les n-uplets en C #?

Tuple est une nouveauté de .NET Framework 4. Visual Studio cible uniquement .NET Framework 3.5 en tant que version la plus récente. Par conséquent, vous ciblez un Framework qui ne contient pas la classe Tuple et il ne comstackra pas.

Si vous en avez vraiment besoin dans Framework 3.5 / VS2008, il ne serait pas trop difficile d’écrire votre propre classe Tuple pour comstackr le code existant sous cette version (à condition que vous n’utilisiez pas d’autres éléments spécifiques à la version 4.0).

Tuple est uniquement disponible dans .NET 4, qui n’est pas pris en charge par VS2008.

Mise à jour de la structure 4.0 (recherchez tous les correctifs pour VS 2008), sinon, Visual Studio 2010 est recommandé pour Tuple.