类逻辑不返回值
本文关键字:返回值 | 更新日期: 2023-09-27 17:50:57
我有一些用c#写的代码。我的班级如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DrivetimeFileDump
{
public class DriveTimeObject
{
public decimal? _Parts;
public decimal? Parts
{
get { return _Parts; }
set
{
if (value != null)
{
_Parts = value;
}
else
{
_Parts = 0.00M;
}
}
}
public decimal? GetAmountChargedParts(string ComponentStatus)
{
string[] ComponentStatuses = new string[] { "i", "n", "d", "w", "e", "v" };
foreach (var item in ComponentStatuses)
{
if (item == ComponentStatus)
{
return 0;
}
else
{
}
}
return _Parts;
}
我已经去掉了工作代码,使其更容易阅读。然后,我使用实体框架来收集项目列表。
DriveTimeObject DT = new DriveTimeObject();
DateTime today = DateTime.Now;
DataQuery = (from z in dd.viewDriveTimeFileDump_V2 where z.dtmReported <= today select z).ToList();
我循环遍历每一项,然后调用一个方法给各部分赋值。
foreach (var item in DataQuery)
{
decimal? AmountChargedParts = DT.GetAmountChargedParts(item.chrComponSts);
DataFile.Add( new DriveTimeObject
{
Parts = AmountChargedParts,
});
}
一切似乎都在流动,但是当值被设置时,当我需要它被设置为0.00时,它被设置为null。我不确定我做错了什么。谢谢。
在您的foreach
块中,您正在为正在创建的DriverTimeObject
设置Parts
,但您似乎从未设置DT.Parts
。因此,每次调用DT.GetAmountChargedParts
时,如果它找不到匹配的ComponentStatus
,它将返回_Parts
(对于当前实例:DT),它将始终为空。