簡體   English   中英

定義類屬性時的異常

[英]Exception when defining the properties of a class

我正在使用VS在C#中開發數據庫應用程序。 我有一個稱為Crew的類,並且有自己的字段,例如名稱,出生日期等。我希望用戶指定一些字段,而其他字段則由應用程序本身自動計算/確定。 如年齡從出生之日算起。 這是我的做法:

[Required]
[DisplayName("Date of Birth")]
public DateTime DOB
{
    set { }
    get { return DOB.Date; }
}
public int Age
{
    get { return Convert.ToInt32(DateTime.Now.Year) - Convert.ToInt32(DOB.Year); }
}

在調試時,我填寫了一個人的字段,然后單擊“創建”按鈕以保存到數據庫,但是出現以下異常:

發生System.StackOverflowException HResult = 0x800703E9消息=拋出了類型為'System.StackOverflowException'的異常。

DOB ,您引用DOB 現在,它已經進入了吸氣DOB ,它引用DOB 所以它必須訪問DOB ....

嘗試獲取屬性值時,屬性無法訪問自身,否則您將進入無限循環並獲取SO異常。 您可以通過擁有一個存儲值的private后備字段來解決此問題,然后在屬性getter中對其進行訪問:

private DateTime _dob;

public DateTime DOB
{
    get { return _dob; }
    set { _dob= value; }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM