C#如何动态创建对象

niuniuwoaini2627 2012-05-30 01:14:26

private void InitializeFace(Array InitializeTDInfo)
{
if (InitializeTDInfo.Length > 0)
{
//需要判断里面的值是否为空
for (Int32 i = 0; i < InitializeTDInfo.Length; i++)
{
Single r = ((TDFP.MyWebServiceRef.TDFPModel[])(InitializeTDInfo))[i].L1;//半径
Int32 x = ((TDFP.MyWebServiceRef.TDFPModel[])(InitializeTDInfo))[i].X;//圆点X坐标
Int32 y = ((TDFP.MyWebServiceRef.TDFPModel[])(InitializeTDInfo))[i].Y;//圆点Y坐标

Ellipse ellipseOne+ "i" = new Ellipse();//圆

ellipseOne.Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));//动态设置Stroke属性的方法。
ellipseOne.StrokeThickness = 2;
ellipseOne.Width = r * 2;
ellipseOne.Height = r * 2;
Canvas.SetLeft(ellipseOne, x - r);
Canvas.SetTop(ellipseOne, y - r);
panel.Children.Add(ellipseOne);
ellipse.Add(ellipseOne);
}
}
}


在动态创建圆对象的时候如何生成名称不一样的对象
我上面ellipseOne+ "i" 是错误的。
...全文
200 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
niuniuwoaini2627 2012-05-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

变量名是无所谓的。

你能不能想明白,如下两个源代码编译器产生的程序完全一样:

C# code
void Main()
{
int i = 10;
i++;
Console.WriteLine(i);
}

void Main()
{
int x = 10;
x++;
Console.WriteLine(x);
}


当你的程序离……
[/Quote]

诶、一下迷糊了 我刚刚自己也测试了 可以通过索引获得存入的对象
threenewbee 2012-05-30
  • 打赏
  • 举报
回复
变量名是无所谓的。

你能不能想明白,如下两个源代码编译器产生的程序完全一样:

void Main()
{
int i = 10;
i++;
Console.WriteLine(i);
}

void Main()
{
int x = 10;
x++;
Console.WriteLine(x);
}


当你的程序离开变量作用域,这个变量名就没有意义了。比如:
int foo()
{
int x = 3;
return x;
}
无论你管这个变量叫x,还是y
当你调用这个函数的时候,你都不可能知道,也不必知道它叫什么:
int a = foo();
int b = foo();
都可以。

因此试图在运行时定义变量名的想法说明你还没有真正入门,还停留在“依葫芦画瓢”编程门外汉的角色。
wanghui0380 2012-05-30
  • 打赏
  • 举报
回复
panel.Children.Add(ellipseOne);

看着样子,那东西是个Control,那么他就没有ID 或者Name属性吗??

对于Control来说,不在乎new的是啥名字,他只在乎 控件的ID
threenewbee 2012-05-30
  • 打赏
  • 举报
回复
Ellipse ellipseOne = new Ellipse();//圆

ellipseOne.Name = "ellipseOne" + i.ToString();
yaohp 2012-05-30
  • 打赏
  • 举报
回复
用数组

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧