メソッドパラメータで基本タイプを使用する利点は何ですか?Resharperは、パラメータが 'BaseType'タイプであることを示唆しています
は、ここに1つのサンプルです:
private void Foo(List<int> numbers) //R# laments: parameter can be IEnumerable.
{
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
そしてここで我々は実行時に失敗しますFooのが、種類や何かを変更することができますanother one
public class Foo : ICloneable
{
public object Clone()
{
return MemberwiseClone();
}
public Foo CopyMe(Foo other) //R# laments: parameter can be ICloneable
{
return (Foo)other.Clone();
}
}
を...です。
PS。 Whysharper - a plugin that dovetails Resharper and StackOverflowのもう一つの説明。人々はそれがいいと言うが、良い説明が欠けている - うまくいけば一緒に我々はそれをより良くすることができる;)。パラメータのための基本型を使用して
です:[戻り値の型としてのIEnumerable](http://stackoverflow.com/q/381208/161052) –
JYelton
私はクローンを()ICloneable契約であると仮定しています。私は、実行時に失敗しないように、CopyMeをより良く書くことができると仮定します。 – bubbleking