在方法参数中使用基本类型有哪些好处?Resharper建议参数可以是'BaseType'类型
这里有一个例子:
private void Foo(List<int> numbers) //R# laments: parameter can be IEnumerable.
{
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
而这里的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();
}
}
...在这里我们可以改变但美孚类型和任何会在运行时失败。
所以问题:当R#表明参数的类型可以是 'X'的我该怎么办?
PS。对Whysharper - a plugin that dovetails Resharper and StackOverflow只是另一种解释。人们说这很好,但缺乏很好的解释 - 希望我们可以一起做得更好;)。
类似:[IEnumerable的的返回类型(http://stackoverflow.com/q/381208/161052) –
JYelton
2011-08-11 18:23:33
我假设的clone()是ICloneable合同。我会认为CopyMe可以更好地编写,以便它在运行时不会失败。 – bubbleking 2016-02-01 15:28:16