【发布时间】:2011-06-02 13:11:26
【问题描述】:
在 C# 中,如果我有一个小部件定义,请说:
class widget
{
public string PrettyName() { ... do stuff here }
}
并且我想允许轻松打印小部件列表,我可以这样做:
namespace ExtensionMethods
{
public static PrintAll( this IEnumerable<Widget> widgets, TextWriter writer )
{
foreach(var w in widgets) { writer.WriteLine( w.PrettyName() ) }
}
}
我将如何使用记录类型和集合(最好在 F# 中使用 List 或 Seq)来完成类似的操作。我很想拥有一个 Widgest 列表,并且能够在执行此类操作的集合上调用一个函数。假设(因为它是 F#)该函数不会改变它所附加的集合的状态,而是返回一些新值。
【问题讨论】:
标签: f# methods extension-methods static-methods c#-to-f#