我想通过更改矩形的名称来创建几个矩形(带有动态名称)
int[] num= { 1, 2, 3, 4 }; //I need infant number of rectangle but here only a symbol of four numbers.
for (int i = 0; i < 3; i = i + 1)
{
string mystring= "regctangle"+num[i].ToString();
string rectanglename = myString; //this is the rectangle name change with the loop
Rectangle rectanglename= new Rectangle(10, 10, 3, 3);
}
结果应该是第一次迭代矩形
rectangle1
rectangle2
rectangle3
rectangle4
答案 0 :(得分:3)
这个问题很有意思......这里有一些我想出的选项,因为我不确定你拥有这些独特的变量名是什么意思。
您需要做的是: 1)将矩形添加到字典或 2)将名称属性添加到Rectangle类。
我在下面的代码中做了两件事。
.
一旦你完成了这个设置,有关如何查找这些矩形及其属性的几个选项。
//dictionary for our rectangles
var rectangleDict = new Dictionary<string, Rectangle>();
for (int i = 0; i < 3; i = i + 1)
{
var rectangle = new Rectangle(10, 10, 3, 3);
string rectangleName = "rectangle" + i.ToString();
//add rectangle name to new dictionary entry and the Rectangle name property
rectangle.name = rectangleName;
rectangleDict[rectangleName] = rectangle;
}
答案 1 :(得分:0)
我想这里的第一个问题是你如何标记矩形?基于Rectangle的MSDN api documentation,没有可用于存储自定义名称的属性。
只是想一想,那里可以找到更好的解决方案。你可以扩展Rectangle类,抛出一个变量调用“name”或者什么,然后为它编写setter和getters操作符。
然后在您的代码中,当您需要打印标签时,只需执行。
int[] num= { 1, 2, 3, 4 };
for (int i = 0; i < num.length; i++)
{
MyRectangle rectanglename = new MyRectangle("NAME_XXX", 10, 10, 3, 3);
// Probably push the instance into an array for later reference.
}
// When you need the rectangle's name just do something like
console.writeline(rectangle10.name);
在此道歉。我的unix笔记本电脑没有安装visual studio的副本,所以我无法真正向你展示一段代码,只有伪代码。