[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
792
(2): (ワッチョイ a968-pvNj) 2022/06/09(木)16:10 ID:d7vTvGkG0(1) AAS
クラス名を以下のような関数に渡したい時に
void printName(string name) {}

呼び出し側で
printName(this.ToString());

と記載していますが、毎回書くのが煩わしいです。
どこからの呼び出しでも同じ記述なので、簡略化する方法はないですか。

Cのマクロ定義ではこんな風にできると思いますがこれに近いことをcsでしたいです。
#define PRINT_NAME() printName(this.ToString())
793: (ブーイモ MMde-VXTa) 2022/06/09(木)16:57 ID:0PQwkTJMM(1) AAS
printName側でコールタック辿って呼出元のクラス名を得る
794: (アウアウウー Sa11-KJcf) 2022/06/09(木)18:04 ID:i3H8tE1La(1/2) AAS
>>775
アフォw
795: (アウアウウー Sa11-KJcf) 2022/06/09(木)18:05 ID:i3H8tE1La(2/2) AAS
>>783
lpctszFileName
796: (スップ Sdca-IeUu) 2022/06/09(木)18:33 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) 2022/06/09(木)18:56 ID:F1Dv7yR50(1/2) AAS
>>792
そもそも何故そのような事をするのか。
呼び出し元のログを取りたいとかなら、StackFrame使うとかもっとマシな方法あるけど。
798: (ワッチョイ d902-+66E) 2022/06/09(木)19:10 ID:F1Dv7yR50(2/2) AAS
あと目的がログだったとして、独自に作るよりはNLogのように既存の物使った方がよい
799: (ワッチョイ 2d6e-TpYW) 2022/06/10(金)21:15 ID:EJTDzpB30(1) AAS
みんなの意見参考になったわ
とりあえず今週末ちょっとASP.NET勉強してみるよ。ウェブのこと全然わかんねぇ
800
(1): 792 (オイコラミネオ MM65-pvNj) 2022/06/10(金)21:51 ID:kBv7ipkNM(1) AAS
目的は単純にコンストラクタが呼ばれたらコンソールにクラス名を含む文字を出したいただそれだけですね
Stack使う系の方法は確証得られないのでNGです
801: (ワッチョイ ca79-PN48) 2022/06/10(金)22:31 ID:Z8p6aUw30(1) AAS
外部リンク:docs.microsoft.com

クラス名って出ないんだな
802: (ワッチョイ 06bb-TkOU) 2022/06/10(金)22:32 ID:b5VhUFkH0(1) AAS
高卒丸出しだな
803: (ワッチョイ 9978-Rebr) 2022/06/10(金)22:43 ID:wzfIM+ki0(1) AAS
>>800
C# 呼び出し元 クラス名
でググればたくさん見つかるけどそれじゃダメなの?
なんで試さずStackFrameはNGとか難癖付けてるの?
804: (ワッチョイ d902-+66E) 2022/06/10(金)22:48 ID:NBA9eaH+0(1/3) AAS
Callerなんとか系のやつは実行ファイルに埋め込まれるからあまりお勧めしないが
StackFrame使いたくないならまあ好きにして
805: (ブーイモ MM2e-JrRZ) 2022/06/10(金)23:03 ID:xtBsFBLEM(1) AAS
StackFrameは最適化で正確な内容にならないことがあるよ
806: (ワッチョイ d902-+66E) 2022/06/10(金)23:26 ID:NBA9eaH+0(2/3) AAS
行番号は無理だが、メソッド名までは出る筈だけどな
807
(1): (ワッチョイ d902-+66E) 2022/06/10(金)23:29 ID:NBA9eaH+0(3/3) AAS
あとはStackFrame使う所で
[MethodImpl(MethodImplOptions.NoInlining)]
でインライン展開無効にしとけば大丈夫だと思う
808
(1): (スッップ Sd1f-G2Bj) 2022/06/11(土)01:29 ID:N9Pa64KKd(1) AAS
>>807
printNameの呼び出しがインライン展開されることはそれで防げるけど、目的はprintNameの呼び出し元のクラスを知ることなんだからそれでは不十分
printNameを呼び出しているメソッド全てにその属性を付けて回る必要がある
809
(3): (ワッチョイ 7f8b-GGE9) 2022/06/11(土)01:38 ID:sQOLScrN0(1/3) AAS
C#+WindowsAPIで別アプリのDataGridView上の
特定セルの値の取得&ダブルクリック とかできますか?

他のソフトを操作するプログラムを作ろうと考えています。
810
(1): (スップ Sd1f-UGZ9) 2022/06/11(土)02:54 ID:wqB8iMgfd(1) AAS
>>809
できます
はい、次
811
(1): (ワッチョイ 03ad-aelZ) 2022/06/11(土)09:32 ID:Wl1U42VL0(1) AAS
>>809
WinAppDriver経由で出来そうな気がする
812: (ワッチョイ 23da-Gp1N) 2022/06/11(土)09:35 ID:XBKZ0P9R0(1) AAS
VS2022で右上のソリューションエクスプローラーのForm1.csをクリックしても
デザイナにFormが表示されないことが多々あるですが,対処法あります?
再起動すれば表示されるようになるのですが
813: (ワッチョイ 1312-IRXD) 2022/06/11(土)10:03 ID:bkgrPiRo0(1) AAS
配列の読み書きを少しでも速くしようとポインタ使用して実際に速くなったけど
そうなると配列のインデックス指定する書き方が存在する意味ってあるんかなあと思った
814: (オイコラミネオ MMc7-GGE9) 2022/06/11(土)10:14 ID:nSw5Wtt+M(1/8) AAS
用途次第かと

ポインターは相対指定に便利
配列インデックスは絶対位置指定で便利
815: (ワッチョイ 3302-/e9c) 2022/06/11(土)10:32 ID:zZQkghbK0(1/3) AAS
>>808
NGワード引っ掛かったのでURL貼れないけど、
JIT 最適化にも負けずに呼び出し元のメソッドを取得する方法って記事に
そんな感じの事が書いてあったな
DynamicSecurityMethodAttribute なんてのがあったのは勉強になった
ただ、実運用のデバッグでそこまで困るかと言われたら多分困らないとは思うが
(NLogの実装もNoInliningまでしかしてないし)
816: (ワッチョイ 835f-L3+7) 2022/06/11(土)10:52 ID:yOzdOwl+0(1) AAS
さっぱりわからん。
817
(1): (ワッチョイ 7f8b-GGE9) 2022/06/11(土)11:02 ID:sQOLScrN0(2/3) AAS
>>810
とあるソフトの自動操縦プログラムを作ろうとしていますが
難航しています。

ランサーズではまっている部分を
プロジェクトとして有料でも良いので出すので
コメント入りで作ってくれませんか?
818
(1): (ワッチョイ 7f8b-GGE9) 2022/06/11(土)11:04 ID:sQOLScrN0(3/3) AAS
>>811
そんなのがあるんですね。初めてしりました。

はまっている部分を自分でやると時間がかかりそうなので
ランサーズで出そうかと思います。

以前だしたのですが、出来るといって受けた人が
スキル不足で結局出来なくて諦めていました、、、
819: (オイコラミネオ MMc7-GGE9) 2022/06/11(土)11:22 ID:nSw5Wtt+M(2/8) AAS
>>818
スレチだな

ついでに…
2004年(15年ぐらい前)にやってたけどめんどくさいからやりたくない
その時は会社のアプリの自動化とIEでの自動ログインとMarketSpeedの操作
(自分のアプリをクリックするとチャートが表示されたりする)

そのDataGritViewと言うのがハンドル取れる奴ならいいけどWPFとかなら画像認識しないと取れない
820: (オイコラミネオ MMc7-GGE9) 2022/06/11(土)11:24 ID:nSw5Wtt+M(3/8) AAS
15年じゃないかw
2年後にライブドアショックで全部吹っ飛んだ
821: (ワッチョイ 3302-/e9c) 2022/06/11(土)11:24 ID:zZQkghbK0(2/3) AAS
操作送るだけならSendInputでいけるけど、特定セルってのが問題な気がする
他アプリのセルの位置までは判らないと思う
1-
あと 181 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.033s