C#2008中的元组出错
我在C#2010中创建了一个程序,我的代码包含一个元组,但当我将我的程序放入C#2008时,它无法识别它,并且出现了以下错误:
"The type of namespace name 'Tuple' could not be found"
所以我不知道如何使这项工作,这是发生错误的代码行:
private List<Tuple> lines = new List<Tuple>();
请帮忙。
编辑
基本上这是我的代码,由于错误,目前无法编译:
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; } }
所以我需要一种改变或使Tuple在VS C#2008和2010中工作的方法,
谢谢
Tuple
类不在v4之前的框架中,但这是一个简化版本,可以满足您的大部分需求:
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); } }
您可以轻松添加类以使元组具有2个以上的参数
元组是C#4.0中的新function
检查链接到此问题的文章,它解释了它们的用法。
.NET的未来版本是否会支持C#中的元组?
Tuple是.NET Framework 4中的新增function.Visual Studio仅将.NET Framework 3.5作为最新版本。 因此,您的目标是不包含Tuple类的Framework,并且它不会编译。
如果你真的需要它在Framework 3.5 / VS2008中,那么编写你自己的Tuple类来使现有代码在该版本下编译并不会太难(假设你没有使用任何其他4.0特定的东西)。
Tuple
仅在.NET 4中可用,VS2008不支持。
更新到框架4.0(找到VS 2008的任何补丁)否则,推荐使用Visual Studio 2010 for Tuple,