c# - 使用列表框中对象的属性

标签 c# listbox string casting

我这里有一段漂亮的小代码,每次调用相关方法时它都会无限地 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/

相关文章:

c++ - 与部分阵列作斗争

c - 如何取消引用字符串指针

c# - 如何模拟按键

xaml - ListBox Windows 10 通用 header

c# - 从属性中检索表达式并将其添加到表达式树

C# - 使用正则表达式将数据排序到/从列表框

c# - 无法将类型 'System.Linq.IQueryable<>' 隐式转换为 'Model' 。存在显式转换(是否缺少强制转换?)

c++ - std::string、wstring、u16/32string 说明

c# - 我应该使用哪些 IVI 引用?

c# - JwtSecurityTokenHandler 和 TokenValidationParameters