Я работаю над приложениями, разработанными в С#/.NET с Visual Studio. Очень часто ReSharper, в прототипах моих методов, советует мне заменить тип моих входных параметров более универсальными. Например, List < > с IEnumerable < > если я использую только список с foreach в теле моего метода. Я могу понять, почему это выглядит умнее, но я очень обеспокоен работой. Я боюсь, что производительность моих приложений уменьшится, если я послушаю ReSharper...
Может кто-нибудь объяснить мне (более или менее) то, что происходит за кулисами (то есть в CLR), когда я пишу:
public void myMethod(IEnumerable<string> list)
{
foreach (string s in list)
{
Console.WriteLine(s);
}
}
static void Main()
{
List<string> list = new List<string>(new string[] {"a", "b", "c"});
myMethod(list);
}
и в чем разница:
public void myMethod(List<string> list)
{
foreach (string s in list)
{
Console.WriteLine(s);
}
}
static void Main()
{
List<string> list = new List<string>(new string[] {"a", "b", "c"});
myMethod(list);
}