Почему бы не вызывать переопределенные методы в конструкторах?
Это упрощенный пример, но у меня есть некоторый реальный код, который концептуально делает то же самое (пытается проверить значения, «устанавливать» методы доступа производных классов), и анализатор дает мне «Не вызывать переопределенные методы в конструкторах». Я пытаюсь выяснить, должен ли я изменить свой код или проигнорировать предупреждение. Я не могу придумать причину, по которой мне следует учесть предупреждение.
public abstract class SimpleUrl
{
protected string _url;
public abstract string Url { get; set; }
public SimpleUrl()
{ }
public SimpleUrl(string Url)
{
this.Url = Url;
}
}
public class HttpUrl : SimpleUrl
{
public HttpUrl()
{ }
public HttpUrl(string Url)
{
this.Url = Url;
}
public override string Url
{
get
{
return this._url;
}
set
{
if (value.StartsWith("http://"))
this._url = value;
else
throw new ArgumentException();
}
}
}