[英]Create a rectangle that can change it's name using loop in C#
我想通过更改矩形名称来创建几个矩形(具有动态名称)
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
这个问题有点有趣...我想出了一些选择,因为我不确定您打算使用这些唯一的变量名是什么意思。
您需要做的是: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 Use the dict to iterate through them
foreach (KeyValuePair<string, Rectangle> rect in rectangleDict)
{
Console.WriteLine(rect.Key);
//iterate through any property in the rectangle such as its sides, name, etc
Console.WriteLine(rect.Value.name);
}
//#2 use the key directly to access a property
Console.WriteLine(rectangleDict["rectangle1"].name);
我想这里的第一个问题是如何标记矩形? 基于Rectangle的MSDN api文档 ,没有可用于存储自定义名称的属性。
只是一个想法,可能会有更好的解决方案。 您可以扩展Rectangle类,放入变量调用“名称”之类的东西,然后为其编写setter和getter运算符。
然后在您的代码中需要打印标签时就可以了。
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的副本,因此我无法真正向您展示适当的代码,只有伪代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.