Thuộc tính và C# ví dụ được ghi chú ở đây nhưng có vẻ như không thể cho FSharp.Có thể sử dụng CallerMemberNameAttribute trong f #
// using System.Runtime.CompilerServices
// using System.Diagnostics;
public void DoProcessing()
{
TraceMessage("Something happened.");
}
public void TraceMessage(string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Trace.WriteLine("message: " + message);
Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
}
Sample Output:
message: Something happened.
member name: DoProcessing
source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs
source line number: 31
Có thể làm các việc trên trong F # và nếu các ký hiệu là vì vậy những gì?
gì có bạn đã thử? Hầu như tất cả mọi thứ có thể được thực hiện trong C# có thể được thực hiện trong f #. –
Nếu bạn có một gợi ý về những gì để thử sau đó xin vui lòng cho nó. – bradgonesurfing
Cú pháp attributte cũng là '[] arg'. Mọi thứ sẽ phức tạp bởi các loại tùy chọn - nhưng bạn có thể nhận được một thông báo lỗi phong nha bằng cách thử điều này. –