属性とC#の例はここに記載されていますが、FSharpでは使用できないように見えます。CallerMemberNameAttributeを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);
}
サンプル出力:
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
は、それがF#で上記の操作を行うと表記がそう何である場合にすることは可能ですか?
あなたを持っている何試した? C#でできることはほとんどすべてf#で行えます。 –
何を試してみるか提案がある場合は、それを与えてください。 – bradgonesurfing
属性の構文は '[] arg'です。オプションの種類によっては状況が複雑になりますが、これを試すことでまともなエラーメッセージが表示されることがあります。 –