Avatar ·

Calling a virtual method in a constructor: what is the danger and how to avoid it?

Hello everyone! I'm a beginner C# developer, and recently ReSharper started giving me a warning "Virtual member call in a constructor" on this code: ```csharp public class Animal { public string Name { get; set; } public Animal(string name) { Initialize(name); } public virtual void Initialize(string name) { Name = name; Console.WriteLine("Animal initialized"); } } public class Dog : Animal { public string Breed { get; set; } public Dog(string name, string breed) : base(name) { // Empty } public override void Initialize(string name) { base.Initialize(name); Breed = "Unknown"; Console.WriteLine("Dog initialized"); } } ``` The code seems to work