我这里有一段漂亮的小代码,每次调用相关方法时它都会无限地 self 传播:
if (this.ListBox_MyListBox.Items[e.Index] is MyObject)
{
MyObject epicObject= new MyObject();
epicObject= (MyObject)this.ListBox_MyListBox.Items[e.Index];
epicObject.Name = epicObject.Name + " (label)";
有问题的方法是一个点击事件,不幸的是,每次我点击时,它都会在名称字符串的末尾添加另一个“(标签)”。
在其他地方,我有一个非常相似的情况,不需要 Actor
if (this.ListBox_MyListBox.Items[e.Index] is String)
{
string tag = (string)this.ListBox_SmartSetOptions.Items[e.Index]+ " (tag)";
该代码运行良好。
我原以为每次声明一个新对象可以避免无休止的重复,但它仍然发生。我错过了什么?
最佳答案
如果您只想附加“(标签)”
一次,您可以执行以下操作:
if (!epicObject.Name.EndsWith(" (label)"))
{
epicObject.Name += " (label)";
}
这就是你想做的事吗?
当您将 "(label)"
附加到 .Name
属性时,.Name
属性将替换为您添加的新字符串重新创建时在末尾添加“(标签)”
。
关于c# - 使用列表框中对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373503/