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