我创建了一个名为的结构Point
和一个List
这样的点:
var myPoints = new List<Point> {
new Point() {Col = 3, Row = 2},
new Point() {Col = 2, Row = 4},
new Point() {Col = 5, Row = 4},
};
当我尝试使用ForEach()
方法打印它们时,我无法在那里传递一个方法组:myPoints.ForEach(Console.WriteLine);
给出一个编译时错误,说明需要一个带有void WriteLine(Point)
签名的方法。如果我使用 lambda 表达式或更改Point
为一个类而不是结构,它就可以完美地工作。
即使总是存在从任何值类型到object
通过装箱的隐式转换,为什么会发生这种情况——Console.WriteLine(object)
因此应该选择该方法?
谢谢!