Chr*_*con 1 c# tuples visual-studio-2010 visual-studio-2008
我在C#2010中创建了一个程序,我的代码包含一个元组,但是当我将我的程序放入C#2008时,它无法识别它,并且出现了以下错误:
"The type of namespace name 'Tuple' could not be found"
所以我不知道如何使这项工作,这是发生错误的代码行:
private List<Tuple<Point, Point>> lines = new List<Tuple<Point, Point>>();
Run Code Online (Sandbox Code Playgroud)
请帮忙.
编辑
基本上这是我的代码,由于错误,目前无法编译:
public partial class Form1 : Form
{
private bool isMoving = false;
private Point mouseDownPosition = Point.Empty;
private Point mouseMovePosition = Point.Empty;
private List<Tuple<Point, Point>> lines = new List<Tuple<Point, Point>>();
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;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我需要一种改变或使Tuple在VS C#2008和2010中工作的方法,
谢谢
该Tuple班是不是在V4预框架,但这里是一个简化的版本,应该匹配满足你的需要:
public class Tuple<T,U>
{
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<T, U> Create<T, U>(T item1, U item2)
{
return new Tuple<T, U>(item1, item2);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以轻松添加类以使元组具有2个以上的参数