10
我见过this PDC会话后,我想尝试学习一点F#。所以我认为最好的方法是在F#中重写我已经在C#中完成的东西,但我的大脑拒绝在功能模式下思考。 我有这个抽象类有一些抽象方法和一些虚拟方法。我想重写一些虚拟方法。这个类是用C#编写的,并且我不打算用F#来重写它。 所以我的问题是:如何在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#有兴趣得到一些资料我对唐赛姆的博客free chapters of his book F# Expert(F#的创建者)发现。你可以用doc格式下载这些文件。
- 真实世界由Tomas Petricek函数式编程有 free chapter here
的利益,可能一些其它资源:
- Scott Hanselman's blog后
- Dustin Campbell's blog
- Tomas Petricek's blog
- 对F#的地方 - hubFS
- F# WIKI
- Microsoft Research
是否有可能为F#抽象类实现一个接口呢? – Stringer 2009-10-26 23:48:08