using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespaceNetClient
{
public class KG
{
List<Item> items = new List<Item>();
public void Test(Item item)
{
//当前记录
item = new Item() { Name = "", Point = "", State = "1" };
if (item.State == "0")
//筛选记录
items.ForEach(item2 =>
{
if (item2.ShortName == item.ShortName && item2.State == "0")
{
item2.State = "1";
}
});
//添加记录
items.Add(item);
}
}
public class Item
{
///
/// 设备名称
///
public string Name { get; set; }
///
/// 设备名称简称,去掉最后两个字符
///
public string ShortName { get { return Name.Substring(0, Name.Length - 2); } }
///
/// 设备状态
///
public string State { get; set; }
///
/// 设备点号
///
public string Point { get; set; }
}
}
KG kg=new KG();
kg.Test(item);
kg.test向item 添加数据,调试是空的,哪里错了呢?
向Item 添加数据返回空
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 0xjade-Follow 2023-04-06 23:22关注
在您的代码中,有以下问题:
在Test方法中,您将参数item重新实例化,这将导致您传递给方法的原始item实例未被修改。您可以删除此行代码。
在Item类中,如果Name属性为空字符串,则ShortName属性会引发异常。您应该添加一个检查,以确保Name属性不为空字符串。
在Test方法中,您应该在向items列表添加item之前更新其状态,以便您添加的实例具有正确的状态。
下面是更新后的代码:
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace NetClient { public class KG { List<Item> items = new List<Item>(); public void Test(Item item) { if (item.State == "0") { //筛选记录 items.ForEach(item2 => { if (item2.ShortName == item.ShortName && item2.State == "0") { item2.State = "1"; } }); } //添加记录 items.Add(item); } } public class Item { private string _name; /// /// 设备名称 /// public string Name { get { return _name; } set { if (string.IsNullOrEmpty(value)) { throw new ArgumentException("Name cannot be null or empty."); } _name = value; } } /// /// 设备名称简称,去掉最后两个字符 /// public string ShortName { get { return Name.Substring(0, Name.Length - 2); } } /// /// 设备状态 /// public string State { get; set; } /// /// 设备点号 /// public string Point { get; set; } } }
您可以使用以下代码测试:
Item item = new Item() { Name = "TestItem", Point = "", State = "0" }; KG kg = new KG(); kg.Test(item);
请注意,我将Name属性的值设置为“TestItem”,这样在ShortName属性中使用Substring方法时,不会引发异常。您应该将Name属性设置为您实际使用的值。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法