このPDC セッションを見た後、F# について少し学びたいと思いました。したがって、C# で既に行ったことを F# で書き直すのが最善の方法だと思いましたが、私の脳は機能モードで考えるのを拒否しています。いくつかの抽象メソッドといくつかの仮想メソッドを持つこの抽象クラスがあります。一部の仮想メソッドもオーバーライドしたいと思います。このクラスは 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# リソースを探している人のためのドキュメント: - Don Syme (F# の作成者) のブログで見つけたドキュメントを入手したい他の F# がいる場合は、彼の本 F# Expert の無料の章を参照してください。それらは doc 形式でダウンロードできます。
- Tomas Petricek による Real World Functional Programming は、ここに無料の章があります
興味のあるその他のリソース: