c# - 我正在尝试将记录插入到对象列表中,但是当我调用该方法时没有插入任何内容。我究竟做错了什么?
问题描述
我正在尝试使用一种方法将数据插入到列表中,但是在调用该方法后,我尝试插入的内容没有显示出来。有人可以告诉我我做错了什么吗?我打电话给 InsertMedicationOrder。
private List<Medication> Meds;
private List<MedOrder> MedOrder_;
public FakeMedicationAccessor()
{
MedOrder_ = new List<MedOrder>()
{
new MedOrder(){}
};
}
public int InsertMedicationOrder(int orderID, int employeeID, int itemID, string itemName, int quantity)
{
MedOrder_.Add(GetMedicationOrder(orderID, employeeID, itemID, itemName, quantity));
return 0;
}
public MedOrder GetMedicationOrder(int orderID, int employeeID, int itemID,string itemName, int quantity)
{
return new MedOrder
{
outgoingOrderID = orderID,
employeeID = employeeID,
itemID = itemID,
itemName = itemName,
quantityOrdered = quantity,
itemCategoryID = "Medication"
};
}
该方法被传递到这里-
public bool CreateMedicationOrder(int orderID, int employeeID, int itemID, string itemName, int quantity)
{
bool result = false;
try
{
result = (1 == _activityAccessor.InsertMedicationOrder(orderID, employeeID, itemID, itemName, quantity));
}
catch (System.ApplicationException ex)
{
throw new ApplicationException("Meds not ordered", ex);
}
return result;
}
并在这里调用
public void OrderMedications()
{
_medicationManager = new MedicationManager();
int orderID = 1;
int employeeID = 66;
int itemID = 1;
string itemName = "Med_A";
_medicationManager.CreateMedicationOrder(orderID, employeeID, itemID, itemName, Int32.Parse(Quantity_input.Text));
}
FakeMedicationAccessor 的实例化
private IMedicationAccessor _activityAccessor;
public MedicationManager()
{
_activityAccessor = new FakeMedicationAccessor();
}
public MedicationManager(IMedicationAccessor MedicationManager)
{
_activityAccessor = MedicationManager;
}
解决方案
请尝试使用 MedicationManager 类的单例实例。每次您创建 MedicationManager 类的对象时,该对象将依次创建 FakeMedicationAccessor 类的新实例。
public void OrderMedications()
{
if(_medicationManager == null)
{
_medicationManager = new MedicationManager();
}
int orderID = 1;
int employeeID = 66;
int itemID = 1;
string itemName = "Med_A";
_medicationManager.CreateMedicationOrder(orderID, employeeID, itemID, itemName, Int32.Parse(Quantity_input.Text));
}
无论您在何处创建 MedicationManager 的新实例,都执行该空检查
推荐阅读
- c++ - C++ 访问外部类的静态字段 [获取错误 LNK2001]
- angular - Angular - 如何 MarkForCheck() ngfor 模板中的单个项目
- javascript - Map.On / Map.off MapboxGL JS
- regex - 用于替换除空白和指定目标之外的所有内容的正则表达式 Scala
- c# - 转换日期时间时,字符串未被识别为有效的日期时间
- python - 打开一个文本文件并创建一个字典变量
- ios - 无法在表视图内的集合视图上正确填充数组数据
- excel - 如何在数据库中上传时处理excel中的空白值还希望在excel中下载表而不在jsp中指定列名
- c++ - 没有初始化器的 constexpr 静态数据成员
- selenium - 如何为复选框选择定位器