public class Form1 : System.Windows.Forms.Form
{
private void eachCornerPix (object sender, PaintEventArgs e, out float Wx, out float Wy, out float Vx, out float Vy)
{
Graphics g = this.CreateGraphics();
Pen penBlu = new Pen(Color.Blue, 2);
SolidBrush redBrush = new SolidBrush(Color.Red);
int width = 2; // 1 pixel wide in x
int height = 2;
float [] Wxc = {0.100f, 5.900f, 5.900f, 0.100f};
float [] Wyc = {0.100f, 0.100f, 3.900f, 3.900f};
for (int i = 0; i<3; i++)
{
Wx = Wxc[i];
Wy = Wyc[i];
Vx = ((Wx - WXmin)*((VXmax-VXmin)+VXmin)/(WXmax-WXmin));
Vy = ((Wy - WYmin)*(VYmax-VYmin)/(WYmax-WYmin)+VYmin);
Console.WriteLine("eachCornerPix Vx= {0}", Vx);
Console.WriteLine("eachCornerPix Vy= {0}", Vy);
g.FillRectangle(redBrush, Vx, Vy, width, height);
g.Dispose();
}
}
}
所需效果:使用数组值(Wxc、Wyc)并将其重新指定给Wx和Wy。然后使用Wx和Wy作为分量来计算Vx和Vy。我的最终goal...once编译问题都解决了,就是用这个方法来传递列出的每个数组值。这将允许绘制4个xy点对。
错误:
pass1.cs(51,18): error CS0177: The out parameter 'Wx' must be assigned to before control leaves the current method
pass1.cs(51,18): error CS0177: The out parameter 'Wy' must be assigned to before control leaves the current method
pass1.cs(51,18): error CS0177: The out parameter 'Vx' must be assigned to before control leaves the current method
pass1.cs(51,18): error CS0177: The out parameter 'Vy' must be assigned to before control leaves the current method
发布于 2010-03-25 10:41:11
把这个放在你的方法的开头:
Wx = 0f;
Wy = 0f;
Vx = 0f;
Vy = 0f;
发布于 2010-03-25 10:42:20
我认为这个错误消息是不言而喻的。只需放入
Wx = Wy = 0;
Vx = Vy = 0;
在方法的顶部。我可以从您的逻辑中看出,代码保证在返回之前将值设置为某个值,但是编译器用来确定这一点的静态分析相对简单,有时还有点悲观。
https://stackoverflow.com/questions/2512776
复制相似问题