Каковы преимущества использования базовых типов в параметрах метода?
Здесь один образец:
private void Foo(List<int> numbers) //R# laments: parameter can be IEnumerable.
{
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
И здесь другой
public class Foo : ICloneable
{
public object Clone()
{
return MemberwiseClone();
}
public Foo CopyMe(Foo other) //R# laments: parameter can be ICloneable
{
return (Foo)other.Clone();
}
}
... где we может изменить тип, и все, кроме Foo, выйдет из строя во время выполнения.
Итак, вопрос: что мне делать, когда R # предлагает параметр может иметь тип "X" ?
PS. Еще одно объяснение для Whysharper - плагин, который согласуется с Resharper и StackOverflow. Люди говорят это хорошо, но не имеют хороших объяснений - надеюсь, вместе мы сможем сделать это лучше;).