Sau khi tôi đã xem this phiên PDC tôi muốn cố gắng tìm hiểu một chút về F #. Vì vậy, tôi nghĩ cách tốt nhất sẽ là viết lại trong F # một cái gì đó tôi đã làm trong C# nhưng bộ não của tôi chỉ từ chối suy nghĩ trong chế độ chức năng. Tôi có lớp trừu tượng này có một số phương thức trừu tượng và một số phương thức ảo. Tôi cũng muốn ghi đè lên một số phương thức ảo. Lớp này được viết bằng C# và được biên dịch và tôi không có ý định viết lại nó i F #. Vì vậy, câu hỏi của tôi là:Làm thế nào để thực hiện một lớp trừu tượng trong F #?
- không ai có một mẫu ngắn làm thế nào để thực hiện một lớp trừu tượng, phương pháp trừu tượng và phương pháp ảo
- tôi có thể đã bị quá tải nhà xây dựng?
- có bất kỳ ràng buộc nào không nếu tôi muốn biên dịch nó thành một dll và cung cấp cho các chương trình dựa trên C# của tôi.
Mọi trợ giúp sẽ được đánh giá cao.
Cập nhật: Tôi thực sự đánh giá cao câu trả lời của Brian nhưng vẫn chưa rõ với tôi vì vậy tôi muốn làm rõ. Hãy giả vờ đây là lớp trừu tượng của tôi được viết bằng C# và được biên dịch trong dll. Làm thế nào để thực hiện nó trong 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; }
}
Một số tài liệu cho bất cứ ai đang tìm kiếm một số F # nguồn: - nếu có khác F # là quan tâm để có được một số tài liệu tôi tìm thấy trên Don Syme của (tác giả của F #) trên blog free chapters of his book F# Expert. Bạn có thể tải xuống chúng ở định dạng doc.
- Real World chức năng lập trình bởi Tomas Petricek có free chapter here
Một số các nguồn lực khác mà có thể quan tâm:
- Scott Hanselman's blog bài
- Dustin Campbell's blog
- Tomas Petricek's blog
- Nơi cho F # - hubFS
- F# WIKI
- Microsoft Research
Có thể cho một lớp trừu tượng F # để thực hiện một giao diện quá? – Stringer
Tôi đã chỉnh sửa để hiển thị một cách để thực hiện điều đó. – Brian
Thực tế ý tôi là có thể có thành viên trừu tượng giao diện một giao diện. Ví dụ. giao diện IBaz với thành viên trừu tượng Baz: int -> int – Stringer