46 votes

Pourquoi une propriété get-only remplacée reste nulle lorsqu'elle est définie dans le constructeur de classe de base?

J'ai essayé l'exemple suivant:

 public class TestBase
{
    public virtual string ReadOnly { get; }

    public TestBase()
    {
        ReadOnly = "from base";
    }
}

class Test : TestBase
{
    public override string ReadOnly { get; }
    public Test()
    {
        // nothing here
    }
}

Lorsque je crée une instance de Test, je vois que ReadOnly reste nul. Mais pourquoi? Je ne comprends vraiment pas, quelqu'un pourrait-il m'expliquer pourquoi cela se produit? Au moins, je m'attendrais à une erreur, qu'une propriété en lecture seule ne peut pas être définie en dehors de la classe propriétaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X