I'm getting a stack overflow exception in my get method : <p>while I was refactoring my code, I got a System.StackOverflowException thrown by my <strong>get</strong> method when my view try to access a member of my class. 
That's the first time that I'm using the <strong>?? (null-coalescing operator)</strong> in c#.</p>

<p>That's my <strong>model</strong>:</p>

<pre><code>using System;
using System.ComponentModel.DataAnnotations;

namespace Extranet45.Models
{
    public class Complaint
    {
        public string Nome
        {
            get =&gt; Nome ?? "Nome não informado.";
            private set =&gt; Nome = value ?? "Nome não informado.";
        }
        public string Email
        {
            get =&gt; Email ?? "Email não informado.";
            private set =&gt; Email = value ?? "Email não informado.";
        }
        [Required(ErrorMessage = "A denuncia não possui o texto obrigatório do seu conteúdo. (Corpo da Mensagem)")]
        public string Denuncia
        {
            get =&gt; Denuncia ?? "O texto da denuncia não foi encontrado.";
            private set =&gt; Denuncia = value ?? throw new ArgumentNullException("O campo denúncia é obrigatório.");
        }
        public Complaint() { }

        public Complaint(string nome, string email, string denuncia)
        {
            Nome = nome;
            Email = email;
            Denuncia = denuncia;
        }
    }
}
</code></pre>

<p>That's my <strong>controller/action</strong>:</p>

<pre><code>using System;
using System.Web.Mvc;
using Extranet45.Models;
using Utils;

namespace Extranet45.Controllers
{
    public class ComplaintController : Controller
    {
        public ActionResult Index()
        {
            return RedirectToAction("Send");
        }

        // GET: Complaint/Send
        public ActionResult Send()
        {

            return View(new Complaint());
        }
    }
}
</code></pre>

<p>That's the <em>part of</em> my <strong>view</strong> where the exception is raised.</p>

<pre><code>@model Extranet45.Models.Complaint

@{

    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Title = "Denúncia";
    ViewBag.ShowHeader = false;
    ViewBag.BodyClass = "profile-page"; //Faz com que o header fique com a altura menor, porém ñão é uma solução elegante, refatorar
    ViewBag.HeaderImageUrl = "https://github.com/creativetimofficial/material-kit/blob/master/assets/img/city-profile.jpg?raw=true";

}

@using (Html.BeginForm("Send", "Complaint", FormMethod.Post, new { @Class = "contact-form"}))
{
    &lt;div class="section section-contacts"&gt;
        &lt;div class="col-md-8 ml-auto mr-auto"&gt;
            @ViewBag.ErrorMessage
            &lt;h2 id="main-title" class="text-center title"&gt;Denuncie&lt;/h2&gt;
            &lt;h4 class="text-center description"&gt;Caso você tenha alguma reclamação ou precise comunicar algo incorreto ao Ceape, nos envie uma mensagem abaixo ou um email para &lt;a href="mailto:denuncias@ceapema.org.br"&gt;denuncias@@ceapema.org.br&lt;/a&gt;&lt;/h4&gt;

            &lt;div class="row justify-content-center"&gt;
                &lt;div class="col-md-8"&gt;
                    &lt;div class=" form-group bmd-form-group"&gt;
                        &lt;label for="textbox-nome" class="bmd-label-static"&gt;Nome - Opcional&lt;/label&gt;
                        @Html.TextBoxFor(m =&gt; m.Nome, new { @id = "textbox-nome", @Type = "Text", @Class = "form-control", name = "nome" })
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
</code></pre>

<p>More precisely at this line, when the view try to access the member <strong>m.Nome</strong></p>

<pre><code>@Html.TextBoxFor(m =&gt; m.Nome, new { @id = "textbox-nome", @Type = "Text", @Class = "form-control", name = "nome" })
</code></pre>

<p>I don't know why my usage of null coalescing operator is causing an stack overflow.</p>
