[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
792(2): デフォルトの名無しさん (ワッチョイ a968-pvNj) [] 2022/06/09(木) 16:10:53.28 ID:d7vTvGkG0(1) AAS
クラス名を以下のような関数に渡したい時に
void printName(string name) {}
呼び出し側で
printName(this.ToString());
と記載していますが、毎回書くのが煩わしいです。
どこからの呼び出しでも同じ記述なので、簡略化する方法はないですか。
Cのマクロ定義ではこんな風にできると思いますがこれに近いことをcsでしたいです。
#define PRINT_NAME() printName(this.ToString())
796: デフォルトの名無しさん (スップ Sdca-IeUu) [] 2022/06/09(木) 18:33:17.82 ID:+6++R2Gnd(1) AAS
>>792
C#のお作法でstring ToString();はoverrideすることになってる
void printName(object obj) {...=obj.ToString();}
呼び出し側で printName(this); してしまって大丈夫。
...なのだがクラス名が欲しいなら
void printName(object obj) {...=obj.GetType().Name;}
か?
797: デフォルトの名無しさん (ワッチョイ d902-+66E) [sage] 2022/06/09(木) 18:56:27.19 ID:F1Dv7yR50(1/2) AAS
>>792
そもそも何故そのような事をするのか。
呼び出し元のログを取りたいとかなら、StackFrame使うとかもっとマシな方法あるけど。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.458s*