この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 29154|答える: 2

[出典] .NET/C# attributes CallerMemberName, CallerFilePath, CallerLineNumber

[リンクをコピー]
掲載地 2021/08/11 9:45:56 | | | |
.Net 4.5で3つの属性が導入されました:CallerMemberName、CallerFilePath、そしてCallerLineNumberです。 コンパイラの助けを借りれば、呼び出し関数の名前(正確にはメンバーであるべきです)、呼び出しファイル、呼び出しライン番号を取得できます。

ドキュメンテーション:https://docs.microsoft.com/en-us ... membernameattribute

StackTraceやStackFrameのオブジェクトを使って取得することもできますが、この機能を使うことでより簡単に取得できます。

スタックトレース:スタックトレースを表し、1つ以上のスタックフレームの順序付けられた集合です。

StackFrame:現在のスレッドを表すコールスタック内の関数呼び出しであるStackFrameに関する情報を提供します。

以前はAOPを使ってStackTraceを通じて呼び出し元のメソッド名を取得し、コードは以下の通りです:


この機能を使うテストコードは以下の通りです:

レンダリング:



(終わり)




先の:Maven updatePolicy スナップショット更新ポリシー
次に:Java byte[] と InputStream は互いに変換されます
 地主| 掲載地 2022/11/27 21:09:56 |
 地主| 掲載地 2022/11/27 22:35:47 |
非同期関数から現在のメソッド名を取得できますか?

ハイパーリンクのログインが見えます。

C# 5は発信者情報プロパティを追加し、あなたが求める情報がより多く提供されるかもしれません。 これらは実行時の情報ではなく、コンパイル時に適切な情報を呼び出しサイトに挿入することに注意してください。 機能は限られています(もちろんコールスタック全体は得られません)が、はるかに高速です。





免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com