[C#] Decimal? vs Decimal ต่างกันอย่างไร

หลายคนอาจจะงงนะครับว่าทำไมใน C# Version ใหม่ๆ (จริงๆ ไม่น่าจะใหม่นะ เพราะมีมาพอสมควรและ) เราเจอ Code แนวๆนี้

public class IVPDatasourceDTO : RepositoryDTO
{
   public string PortfolioCode { get; set; }
   public int? Purpose { get; set; }
   public string? InvestmentTypeCode { get; set; }
   public DateTime? MaturityDate { get; set; }
   public string ISOCode { get; set; }
   public string IssuerCode { get; set; }
   public string DSET_OrganizationId { get; set; }
   public string? UniqueIdTypeCode { get; set; }
   public string SecurityCode { get; set; }
   public decimal? EQ_PaidUpSize { get; set; }
   public decimal? Devalue { get; set; }
   public string? Devalue_Method { get; set; }
   public decimal? EQ_ParValue { get; set; }
   public decimal? TradedUnit { get; set; }
   public decimal? SettledUnit { get; set; }
   public decimal? BookValue { get; set; }
   public decimal? MarketCost { get; set; }
   public decimal? Discount_Yield { get; set; }
   public decimal? RemainingAmount { get; set; }
   public decimal? UnrealizedGainloss { get; set; }
   public string? PL_SecType { get; set; }
   public decimal? Accruedint { get; set; }
   public decimal? MarketUnitCost { get; set; }
   public int? PortfolioId { get; set; }
   public int? SecurityId { get; set; }
   public int? CompanyId { get; set; }
   public int? InvestTXId { get; set; }
   public int? SecurityClassId { get; set; }
   public string InternalCode { get; set; }
   public int? DailyAccPositionId { get; set; }
   public int? SequenceNo { get; set; }
}

ถ้าสังเกตุจาก Code ตัวอย่างดีพบว่าที่ DataType มันมีเครื่องหมายคำถามเติมเข้ามา ตรงนี้ไม่ต้องสงสัยอะไรนะครับ การที่มี ? เพิ่มเข้ามาเป็นการบอก Datatype ที่เราประกาศนั้นเป็น Nullable Types สามารถเก็บค่า null ได้ครับ โดยสามารถอ่านข้อมูลเพิ่มเติมได้ ดังนี้ครับ

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.