lợi ích của việc sử dụng các loại cơ sở trong các tham số phương pháp là gì?Resharper cho thấy tham số có thể thuộc loại 'BaseType'
Dưới đây là một mẫu:
private void Foo(List<int> numbers) //R# laments: parameter can be IEnumerable.
{
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
Và đây là 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();
}
}
... nơi mà chúng tôi có thể thay đổi kiểu và bất cứ điều gì nhưng Foo sẽ thất bại khi chạy.
Vậy câu hỏi: tôi nên làm gì khi R # gợi ý tham số có thể là kiểu 'X'?
PS. Chỉ là một lời giải thích khác cho Whysharper - a plugin that dovetails Resharper and StackOverflow. Mọi người nói nó đẹp nhưng thiếu những lời giải thích tốt - hy vọng rằng chúng ta có thể làm cho nó tốt hơn;).
tương tự: [IEnumerable như kiểu trả về] (http://stackoverflow.com/q/381208/161052) –
JYelton
Tôi giả định Clone() là trong hợp đồng ICloneable. Tôi sẽ đặt ra rằng CopyMe có thể được viết tốt hơn để nó không thất bại trong thời gian chạy. – bubbleking