簡體   English   中英

錯誤:get屬性中引發了類型為'System.StackOverflowException'的異常

[英]Error: Exception of type 'System.StackOverflowException' was thrown in get property

在我的模型中,我使用以下屬性

 public string LastName
 {
     get => LastName;
     set
     {
         value = value.TrimAndReduce();
     }
 }

我得到這個錯誤

System.StackOverflowException:引發了“ System.StackOverflowException類型的異常”

錯誤來自代碼的get部分

您沒有一個字段來存儲該Property的實際變量,並且通過訪問LastName調用自己,因此沒有StackOverflowException 解決方案是引入一個字段並使用該屬性訪問它。 像這樣:

private string _lastName;
public string LastName
{
    get => _lastName;
    set
    {
        _lastName= value.TrimAndReduce();
    }
}

所需的模式如下所示:

private string lastname;  // backing field
public string LastName
{
    get => lastName;
    set
    {
        lastname = value.TrimAndReduce();
    }
}

設置LastName屬性時,您不會調用存儲實際變量,而是會調用_LastName字段並使用它們。

解:

public int _LastName;
public int LastName
{
    get
    {
         get => _LastName;
    }

    set
    {
         _LastName= value.TrimAndReduce();
    }
}

暫無
暫無

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

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