- 1 名前:デフォルトの名無しさん mailto:sage [2020/05/27(水) 20:28:41.27 ID:Pggemlyq0.net]
- !extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part147 mevius.5ch.net/test/read.cgi/tech/1582100741/ ■関連スレ C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 405 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:17:36.19 ID:skFEsPcd0.net]
- for文で書き始めて、配列から要素を取り出すだけだからforeachに書き換えて、でもやっぱりiが必要になってfor文に戻すこと多くない?
- 406 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:32:32.75 ID://9fx+gF0.net]
- Index付きのSelect句で事足りる
- 407 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:50:33.27 ID:878uww5f0.net]
- MoreLinqのIndex()がKeyValuePair<int, TSource>を返してくれる
簡単だから自分で実装してもいいけどライブラリ使うほうが管理含めて楽 foreach (var (i, x) in foo.Index()) { Console.WriteLine($"{i}: {x}"); }
- 408 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:55:59.78 ID:skFEsPcd0.net]
- そうなんだ
- 409 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 22:19:40.87 ID:VOTutQQJ0.net]
- >>401
いや、これ書くぐらいならforで書くよな
- 410 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 23:15:08.92 ID:GpR1sqnP0.net]
- >>403
たしかに
- 411 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 23:52:47.91 ID:878uww5f0.net]
- またLinqバトル始まっちゃう感じ?
- 412 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 00:14:13.24 ID:AkfEJdVF0.net]
- (index, value)と(value, index)でバグを作ってしまったから
Index拡張メソッドは控えることにした
- 413 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 00:16:36.51 ID:wq/6wJQN0.net]
- >>406
それあるわ 他人のプログラムが前者で、自分は後者派だったからお互いえ?え?となったわ
- 414 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 00:24:48.70 ID:lDlwJ32m0.net]
- そもそもforeachなんて作ったやつの脳みそ腐ってんだから仕方ない
何回回すのかもコードからわかんねーし どう回したいのか変わると一気に産廃 そもそもforeachなんて産廃コード使うなよ 変更に激弱だろ あ、インデックスN番目は処理したくない →産廃 あ、後から処理しないと →産廃 あ、奇数と偶数で処理変えないと →産廃 あ、こっちの配列もみながらいっしょに処理しないと →産廃 もうあれね コードレビューでforeachを見つけたら 修正させるぐらいでいい
- 415 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 07:44:18.56 ID:yVRP623B0.net]
- インデックスを考えるような用途でforeach使うほうが悪いだろ。
偶数と奇数で処理変えるのも意味わからんし、イテーレタを一つずつって変更に強いと思うけど。 全部Linqでなんとかなることだけどさ。
- 416 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 08:02:57.19 ID:bN5bdnqa0.net]
- 紅白に塗るとかあるよね
- 417 名前:デフォルトの名無しさん [2020/10/25(日) 09:10:32.90 ID:WAUUQolqM.net]
- 偶数の場合こう処理します!
プログラム解説サイトとかでありがち。 実務でそういうのに出くわしたことほぼない。
- 418 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:22:04.05 ID:lDlwJ32m0.net]
- >>411
あるよ datagridviewとか見にくいから偶数と奇数で色変えてくれってありがちじゃん
- 419 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:24:16.14 ID:lDlwJ32m0.net]
- 2行でワンセットになるデータで
上側だけ、下側だけって処理するときもお世話になるじゃん どんだけ組んだことないんだよ
- 420 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:26:32.27 ID:XkKy2l3/0.net]
- WPFみたいな割と最近のライブラリなら、
自前で偶数判断なんてせず交互に色を変えてくれる。
- 421 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:36:22.60 ID:w//Xf3xfd.net]
- >>412
それはデータ行に対してやることじゃない。 行に対して表示非表示の制御加えるだけで破綻する。 表示中の画面の描画関数でやることであって、行をイテレートしてやることじゃない。 >>413 2行1セットなら、そのクラスを作って、1インスタンスごとに制御するのが王道でしょ。 どんだけ空想上の「組んだこと」で話してんの?それともボンクラなの?
- 422 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:37:37.76 ID:lDlwJ32m0.net]
- >>415
え?いやでも必要じゃん そんときforeach使わないよね
- 423 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:40:44.86 ID:w//Xf3xfd.net]
- >>416
必要じゃないし、パース時点ではパーサ使うし、中では極力foreach使うよ。 2行で1アイテムが3行で1アイテムになったときにModulo全部変えてくの? 頭悪すぎるコーディングでしょ。
- 424 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:47:07.55 ID:lDlwJ32m0.net]
- >>417
は? いや客は単に奇数と偶数行で色変えてくれって言ってるだけやで
- 425 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:01:32.46 ID:yVRP623B0.net]
- >>418
画面側でやること。 描画関数には何行目かそもそも渡ってくるからループなんぞする必要もないだろ。 それを客が言ってるからってデータでやるのは手早くて汚い方法取ってるか、それしか知らないって事じゃん?
- 426 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:29:58.35 ID:j2oMvxGH0.net]
- >>419
うーん、確かにdatagridviewで偶数と奇数だとそれだけだなw 俺が悪かった
- 427 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:32:46.22 ID:j2oMvxGH0.net]
- ループで奇数と偶数は別の描画ライブラリ使っててそっちの話だった
すまん
- 428 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:35:11.15 ID:yVRP623B0.net]
- なんか俺も言い方悪かったな。すまん。
- 429 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:36:49.62 ID:MD0uz1BLa.net]
- 最近のC#ならTupleで書けるからindexつきSelectのほうが短く書けて楽かな
foreach (var (item, index) in items.Select((x, i) => (x, i))) { Console.WriteLine($"{index}: {item}"); } for (var index = 0; index <= items.Length; i++) { var item = items[i]; Console.WriteLine($"{index}: {item}"); } 後者の書き方に仕込まれてるバグを目視だけで見つけるのはやっぱりしんどい ていうかDataGridViewなら奇数行・偶数行のスタイルをそれぞれ別に設定できたはず なんでそれ使わないでロジックで制御するんだろう
- 430 名前:デフォルトの名無しさん [2020/10/25(日) 10:46:49.59 ID:WAUUQolqM.net]
- >>412
そんな偶数奇数で色変えるとかはコントロール側で制御して、各機能では意識せずに作れるようにしてる。 有償のものは標準でそういう機能ついてる。 あなたのところは各機能でそんなことさせてるの? ほとんどのシーンでforeachは使えるしforより可読性も高い。 C上がりのひとは頑なにfor文つかうよね。
- 431 名前:デフォルトの名無しさん [2020/10/25(日) 10:48:09.55 ID:WAUUQolqM.net]
- とか書いてたら話終わってた…
- 432 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:57:42.82 ID:ad5S/9r+d.net]
- BASIC上がりの俺は頑なにforを使う
- 433 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:43:12.08 ID:6wSnm1o40.net]
- フォームアプリを作成していて、
作ったタブページを一時的に表示させないようにしたいのですが (開発者用なのでユーザーから隠したいタブページ) invisible設定とかないのでしょうか?
- 434 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:54:01.85 ID:bN5bdnqa0.net]
- visibleをfalseにしる
- 435 名前:デフォルトの名無しさん [2020/10/25(日) 13:16:25.56 ID:FzqccguI0.net]
- elisp上がりだとdolistか
- 436 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:18:15.58 ID:MD0uz1BLa.net]
- >>427
https://dobon.net/vb/dotnet/control/tabpagehide.html
- 437 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:20:19.02 ID:M7kzCKlu0.net]
- >>406
拡張メソッドの問題ではないような・・・ それはいいとして順番だけど map/reduce系のAPIはindexがオプショナルなので引数の順番は(value, index)が一般的で index付きのtuple的なもの返す場合は(index, value)で返すほうが一般的 自分の知ってる言語はどれもそうなってるよ
- 438 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 07:40:35.09 ID:qnSD+cEJ0.net]
- C#で作られた2つの実行中プログラムの間でデータの受け渡しをするならどういう方法が考えられますか?
csvやデータベースくらいしか思いつかず
- 439 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 08:05:19.87 ID:68kYXJV6d.net]
- >>432
ポート開けて通信する。 プロセス間通信する。 のどっちかかな。 Core化するなら、ポート開けて通信したほうが良いかも。 embedIOとか使うとhttpサーバがびっくりするほど簡単に立てられるよ。既存アプリの上に。
- 440 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 08:10:45.70 ID:geAq98MI0.net]
- GUI同士ならSendMessageとかも
- 441 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 08:41:56.32 ID:cCglm1Caa.net]
- >>432
小さいデータならソケットやパイプ 大きいデータなら共有メモリ スピードを問われないならファイルやDBでもいい
- 442 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 09:08:45.24 ID:Nt7id6vD0.net]
- Web API
- 443 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 09:13:36.29 ID:DyAY2wG10.net]
- WCFの後継とかどうすりゃいんだ
- 444 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 09:22:47.39 ID:Nt7id6vD0.net]
- >>437
https://github.com/CoreWCF/CoreWCF
- 445 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 09:28:12.57 ID:3bmwn6Ba0.net]
- WCF 開発者に gRPC を推奨する理由
https://docs.microsoft.com/ja-jp/dotnet/architecture/grpc-for-wcf-developers/why-grpc
- 446 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 22:35:34.95 ID:bWE1nSHc0.net]
- うちにはRemoting使ってて詰んでるレガシーがある
- 447 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 08:48:31.11 ID:GkpRv4Lwa.net]
- MSMQという手も
- 448 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 12:27:01.55 ID:VHRGFK1gM.net]
- MQTT
- 449 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 19:28:53.48 ID:obW6sm8G0.net]
- >>435
共有メモリというのは知らなかったです 勉強してみます ありがとうございます
- 450 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 20:32:35.12 ID:ytciXGtBp.net]
- お前が好きだと今日言うメモリー
気持ちを交換共有メモリー
- 451 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:27:35.00 ID:fAmed0Klr.net]
- 動的なJsonを作成したいのですが、いい方法ありませんか?
今考えてるのは 1. Jsonシリアライズ用クラスを用意(複数) 2. 処理部で使用するタイミングで1.クラスnew 3. 2.でnewしたクラスのみ匿名型オブジェクトに突っ込む 4. 3.をシリアライズ これで一応は出来るんですが、3.で分岐多くなるのが非常に汚くて。
- 452 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:28:58.34 ID:fAmed0Klr.net]
- できれば使用したタイミングで、都度匿名型に追加できればいいんですが、実装方法わからず…
- 453 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:32:20.78 ID:fAmed0Klr.net]
- 都度匿名型に追加ってのはあくまでイメージですはい。
- 454 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:37:54.98 ID:w+K6PrrE0.net]
- DynamicObjectとか使えばよかったような
- 455 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:45:46.98 ID:HAxtGf170.net]
- いまいちよく分からんが、Dictionary<string, object>だとダメなの?
- 456 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 22:08:26.61 ID:fAmed0Klr.net]
- >>448
あ、何かできそうな予感。試してみます。 >>449 使用の度にAddすればって事ですね。 …何かこれもできそうな予感…試してみます。
- 457 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 22:56:17.00 ID:28O5aXgi0.net]
- >>426
Python が最初だとどうなるんだろうな
- 458 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 05:36:06.93 ID:Of4L3rez0.net]
- スタティックライブラリーを使うためDLLにしているのだが、関数ポインタを引数にする関数があって困っています。
C#の関数をその関数ポインタに結びつける方法ありますか?
- 459 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 07:28:47.86 ID:NoXL5vik0.net]
- >>452
関数ポインタ引数に対してはdelegateをそのまま渡せばいいよ LPCTSTR引数に対してstringをそのまま放り込んでも成立するのと同様にdelegateもPVOIDとして解釈される つまりそのDLLで使う関数の型のdelegate型を作って渡せば良いだけ
- 460 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 07:32:51.69 ID:NoXL5vik0.net]
- ちなみにC#9だか10からは生の関数ポインタも扱えるって聞いた
- 461 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 09:43:54.51 ID:Of4L3rez0.net]
- >>453
ありがとうございます。
- 462 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 09:48:27.53 ID:+BFmFpNo0.net]
- 関数ポインタをDLL側が保持する(寿命が関数から返ってくるまでより長い)場合は
マネージ側もその間そのdelegateインスタンスを保持しとかないとだめだぞ
- 463 名前:デフォルトの名無しさん [2020/10/30(金) 12:16:19.25 ID:7MkyV1CpF.net]
- >>445
msgpack
- 464 名前:デフォルトの名無しさん mailto:sage [2020/10/30(金) 23:02:16.07 ID:YXzIJ61G0.net]
- >>454
どどど、どう書くの?
- 465 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 12:17:23.59 ID:8cswqFVg0.net]
- >>458
https://ufcpp.net/blog/2020/6/cs9vs16_7p3/
- 466 名前:デフォルトの名無しさん [2020/10/31(土) 12:27:36.76 ID:fxcwqRC2F.net]
- >>459
https://www.youtube.com/watch?v=aDXHl3S8oik
- 467 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 20:35:43.78 ID:jPO/JqMva.net]
- 最近最新版がプレリリースされたwebView2って、C#ではまだ使えないんでしょうか?
https://docs.microsoft.com/ja-jp/microsoft-edge/webview2/gettingstarted/winforms 上記サイトに習ってnugetからインストールし、1日いろいろ試して全く動作しませんでした。 ソリューションエクスプローラーの参照の、webView2をダブルクリックすると、「このプロジェクトは利用不可能き、またはビルドされていないため、オブジェクトブラウザで表示できません」と表示されます。 webView2もVisualStudioもMicrosoft Edgeも最新版をインストールしてもダメでした。
- 468 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 20:37:54.93 ID:jPO/JqMva.net]
- 間違えました。
「このプロジェクトは利用不可能か、またはビルドされていないため、オブジェクトブラウザでは表示できません。」の間違いです。
- 469 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 20:40:31.48 ID:4IwElBvx0.net]
- WindowsFormsを勉強しはじめたんだけど
テキストボックスに処理の状況を逐一表示させたい場合ってどうやるのが正しいやり方? とりあえずこんな感じで作ってみたら動くけどなんか違う気がする https://ideone.com/o3Agp4
- 470 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 20:55:29.78 ID:Pj54f0iv0.net]
- ログ的な事をやりたいんだったらListBox使う方が良いよ
一定行数に達したら先頭(最終)行を削除とかも簡単に実装できる
- 471 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:00:31.63 ID:+32PkI4zM.net]
- >>463
allocconsole してconsole に出力するの吉
- 472 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:00:33.78 ID:1joLaKYt0.net]
- >>463
それでも良いと思うけどConsole.WriteLineみたいに強制改行関数作っといたら? あとC#自体のアドバイスになるけど、"処理しています……" + "\r\n"は+いらないから"処理しています……\r\n"で良いし 変数挟むときは$を付けて{}で囲む$"あと{i}秒\r\n"って書き方は各プログラミング言語の中でもトップクラスに便利だから覚えておいた方が良い
- 473 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:34:45.65 ID:2P+i0kOV0.net]
- >>463
>>466の言うように文字列とか送るだけで表示するメソッド作っておくといろいろ後付けで改変しやすくなる RichTextBox使えば状況に応じて文字列ごとに色やフォントを変えることもできるし あとAppendTextは自動でTextBoxをスクロールしてくれる便利なものだけどメソッドの先頭で念のためFocus()かSelect()しておくと確実 フォーカス当たってないと自動スクロールしてくれないので
- 474 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:59:39.41 ID:b+5qg5vxa.net]
- >>463
何に不満や違和感を感じてるのか具体的に言わないと誰も答えようがないよw プログラミングの分野に限らず他人に自分の意図を正確に伝えることってほんと大事
- 475 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 22:07:28.55 ID:1TbrihkJ0.net]
- >>463
その方法が正攻法だと思って良い あとは他の人のアドバイスのように便利なメソッド作って使いやすくすればいいと思う
- 476 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 22:21:19.47 ID:4IwElBvx0.net]
- >>464
ありがとう。使ってみる >>465 今回やりたい事は違うけどこれはこれで知りたかった事だ。ありがとう >>466 改行用の関数をForm1の方で作っといてdelegateかfuncで処理用クラスに渡す感じかな? $マークのやつそういう使い方だったんかサンクス あと改行だけ分けたのは元のコードで「str + “¥r¥n”」の形だったのを直した名残だわ >>467 フォーカス当たってないとスクロールしてくれないのか なんか動いてくれないと思ってたんだよな
- 477 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 22:39:35.75 ID:syXSgGXN0.net]
- >>470
積極的にコンソールを使う意図が無いのであれば、AllocConsoleよりも System.Diagnostics名前空間のDebug.WriteLine()やTrace.WriteLine()を勧める VSのデバッグ出力画面やDebugView++等のアプリで見れる
- 478 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 23:14:04.52 ID:+32PkI4zM.net]
- コンソールにはコンソールのメリットが
あるからなぁw
- 479 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 00:44:45.18 ID:TS2lQNKS0.net]
- >>461
本当に書かれている通りにやったの? ・WebView2はプレリリース版でなければならない(今だと1.0.674-prereleaseかな?) ・EdgeはCanary版でなければならない なんとなく、WebView2のプレリリース版でなく安定版の方を入れてそうな予感
- 480 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 08:45:28.58 ID:R1ZyiuLQa.net]
- >>473
ありがとうございます! 通常版のedgeをアンインストールして、edgeのcanary版をインストールして、再度通常版のedgeをインストールしたらできました! 2種類のedgeがインストールしてないと動作しないんですね。 webview2を使う場合は、全ユーザーも、canary版のedgeをインストールしていないと使用できないんでしょうか?
- 481 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 16:17:54.64 ID:hv15RbEG0.net]
- まあまだ.NET版はpereleaseだからな
- 482 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 18:01:16.91 ID:CXNCiFbu0.net]
- WinUI版のWebView2使ってみたが、マウスの戻るボタンが効いたのに感動したわ
コレをどうにかするためにどんだけ苦労したことか
- 483 名前:デフォルトの名無しさん [2020/11/02(月) 07:35:20.34 ID:kZXAdCJzM.net]
- クラスの自動プロパティについて質問
自動プロパティがない頃は、頭にアンダースコア(_hogeHoge)をつけたprivate変数を用意しておいて、 コンストラクタやメソッドではそちらを読み書きしていた。 でも自動プロパティができたら、アンダースコアのprivate変数は不要になった。 これまで何も考えずに、コンストラクタやメソッドではプロパティそのもの(HogeHoge)に対して読み書きしているんだが、これでいいんだろうか… それともクラス内部で読み書きが発生する場合は自動プロパティ使わないほうがいい?
- 484 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 08:40:37.73 ID:J1SwCvmZ0.net]
- getterに副作用持たせてるの?
- 485 名前:デフォルトの名無しさん [2020/11/02(月) 08:54:07.90 ID:kZXAdCJzM.net]
- >>478
何も考えずにpublic string HogeHoge{get;set;}しか書いてない
- 486 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 12:37:17.75 ID:NZsZuJ1ia.net]
- >>477
何を悩んでるのか分からない。 同じ機能なら簡潔に書けるほうがいいに決まってるので 自動実装プロパティーで必要な機能が過不足なく実現できるなら 自動実装プロパティーを使わない理由はないんじゃないの? 別にpublicやinternalなメンバーにクラス内からアクセスしてはいけないなんて変なルールはないよw
- 487 名前:デフォルトの名無しさん [2020/11/02(月) 12:39:05.37 ID:kZXAdCJzM.net]
- >>480
そのそんなルールはないよというのが聞きたかった。 ありがとう。
- 488 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 13:48:19.73 ID:iMasp6IMD.net]
- c#にも、cでいうプログラミング言語Cみたいなバイブルと言える本はありますか?
- 489 名前:デフォルトの名無しさん [2020/11/02(月) 17:57:45.09 ID:9N3uvmex0.net]
- どんどん言語がアップデートされていってるからなあ
- 490 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 18:02:08.07 ID:kfCt0hOOd.net]
- googleかmsか
ufcppでもいいと思うけど
- 491 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 18:19:04.77 ID:8cdEIkcV0.net]
- K&Rみたいな読んでるとドヤれる(気がする)ようなのはC#ではないよね
- 492 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 19:33:36.63 ID:QcicrBn8M.net]
- ちょっと前までrtfでインストールされてたじゃん
- 493 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 21:55:02.37 ID:KMJSmLX80.net]
- >>482
「プログラミング.NET Framework 第4版」Jeffrey Richter 著、藤原 雄介 訳
- 494 名前:デフォルトの名無しさん [2020/11/02(月) 22:06:56.80 ID:8/l8UOwbr.net]
- ガチの素人で趣味でプログラミングを始めました
フォントファミリー名を取得してフォントファミリー名一覧コンボボックスを作成、そのあとコンボボックスで選んだフォントファミリーの名前で横においてるテキストブロックのフォントを変えるプログラムを作ってるんですけど、選択したコンボボックスからフォントファミリー名の取得はできてると思うんですがテキストブロックのフォントが変わりません どうすればうまくいきますか?
- 495 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:27:22.35 ID:onwGyibB0.net]
- pictureBox1.Image = @"パス";
PictureBoxで画像を表示している時、別の画像に切り替えるときはDisposeしてからパスを変更したほうがいいでしょうか?
- 496 名前:デフォルトの名無しさん [2020/11/02(月) 22:31:57.70 ID:8/l8UOwbr.net]
- もしかしてフォントファミリーは文字型変数じゃ指定できないの?
- 497 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:51:52.41 ID:IceSdPzo0.net]
- >>490
たぶんFontFamilyの名前が間違っている >>489 メモリが一時的に積みあがっていくけど適当なところでガーベージコレクタが動くはずだから問題ない それはDispose()というかGC.Collect()で解決する
- 498 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:54:08.63 ID:NZsZuJ1ia.net]
- >>488
適当にやってみた public Form1() { InitializeComponent(); cboFont.DropDownStyle = ComboBoxStyle.DropDownList; cboFont.DisplayMember = "Name"; cboFont.Items.AddRange(FontFamily.Families); cboFont.SelectedIndex = 0; cboSize.DropDownStyle = ComboBoxStyle.DropDownList; for (int i = 6; i < 81; i++) cboSize.Items.Add(i); cboSize.SelectedIndex = 0; EventHandler eh = (sender, e) => textBox1.Font = TextFont; Load += eh; cboFont.SelectedIndexChanged += eh; cboSize.SelectedIndexChanged += eh; }
- 499 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 22:54:27.55 ID:NZsZuJ1ia.net]
- private int TextSize
{ get { return (int)cboSize.SelectedItem; } } private Font TextFont { get { return new Font((FontFamily)cboFont.SelectedItem, TextSize); } }
- 500 名前:デフォルトの名無しさん [2020/11/02(月) 23:36:41.20 ID:8/l8UOwbr.net]
- ありがとうございます
今日はもう遅いので明日やってみます
- 501 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 23:49:15.55 ID:onwGyibB0.net]
- >>491
そうなのですね そのままパスを変更するだけに留めます 先輩ありがとうございます!
- 502 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 01:34:50.34 ID:qmbI+CcG0.net]
- >>495
こいつVBAで荒らしていた馬鹿じゃないか?
- 503 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 01:58:10.34 ID:jzL8Touo0.net]
- >>496
VBAスレは見てないので人違いですね
- 504 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 08:28:33.94 ID:dsOM4bkh0.net]
- MahApps.MetroってC#はどうってことないがxamlがヤベえのね
- 505 名前:デフォルトの名無しさん [2020/11/04(水) 13:54:59.77 ID:MUmomvCg0.net]
- GUIはXAMLが基本です
|

|