在我看过这个PDC 会议之后,我想尝试学习一点 F#。所以我认为最好的方法是用 F# 重写我已经在 C# 中完成的东西,但我的大脑只是拒绝在功能模式下思考。我有这个抽象类,它有一些抽象方法和一些虚拟方法。我也想覆盖一些虚拟方法。这个类是用 C# 编写并编译的,我不打算用 F# 重写它。所以我的问题是:
- 有没有人有一个关于如何实现抽象类、抽象方法和虚拟方法的简短示例
- 我可以重载构造函数吗?
- 如果我想在 dll 中编译它并使其可用于我的基于 C# 的程序,是否有任何限制。
任何帮助,将不胜感激。
更新:我真的很感谢布赖恩的回答,但我仍然不清楚,所以我想澄清一下。假设这是我用 C# 编写并用 dll 编译的抽象类。如何在 F# 中实现它?
public abstract class MyAbstractClass
{
public abstract Person GetFullName(string firstName, string lastName);
public abstract bool TryParse(string fullName, out Person person);
public virtual IEnumerable<Person> GetChildren(Person parent)
{
List<Person> kids = new List<Person>();
foreach(Child person in GroupOfPeople)
{
if(person.Parent == parent)
kids.Add(child as Person);
}
return kids;
}
public virtual IEnumerable<Child> GroupOfPeople { get; set; }
}
对于正在寻找一些 F# 资源的人的一些文档: - 如果任何其他 F# 有兴趣获得一些文档,我在 Don Syme(F# 的创建者)他的书 F# Expert 的博客免费章节中找到了一些文档。您可以下载 doc 格式的文件。
- Tomas Petricek 的真实世界函数式编程在这里有免费章节
其他一些可能感兴趣的资源:
- 斯科特·汉塞尔曼的博客文章
- 达斯汀坎贝尔的博客
- Tomas Petricek 的博客
- F#的地方 - hubFS
- F# 维基
- 微软研究院