[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/31 03:08 / Filesize : 285 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん mailto:sage [2019/07/16(火) 15:36:23.74 ID:i1fbuZ/pM.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/

■情報源
https://docs.microsoft.com/ja-jp

792 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 07:36:43.68 ID:apbfD+2I0.net]
式木がイケてるらしいですが使いどころが解りません
プロの皆さんはどこで使ってますか?

793 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 10:16:37.93 ID:HV92OfVjM.net]
>>778
使わない
高度なフレームワークを作るための機能であり、ドカタグラマには全く必要ないから忘れていいよ

794 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 22:57:19.53 ID:5YRgoX3y0.net]
>人を憎んでコードを憎まず

逆じゃないんかおい

795 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 23:01:24.46 ID:1MbrNFaz0.net]
自分より給料貰ってる先輩(笑)が
クソコードを産み落としていた場合は人もコードも憎む
というか蔑む

796 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 23:16:09.44 ID:5YRgoX3y0.net]
何をもってくそコードと言ってるのか

797 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 23:38:23.64 ID:1MbrNFaz0.net]
何を以ってクソコードかは難しいところだが具体例なら無数に挙げられるぞ

switchを使わず延々とif-else if分岐
if(flag) return ture; return false;
一行違うだけのメソッド大量生成
マジックナンバーだらけ
コレクションはほとんどList
かと思えば特にライブラリに必要とされているわけでもないobject[]
もちろんパターンマッチングなんて概念は存在しない
out代わりにrefを使う
boolではなくintをフラグとして使う
クラス内のあらゆる場所から明示されず書き換えられるフィールド
どう見ても親子関係にない継承
メソッド1個300行以上
これがさぞ大変な処理かと思えばリファクタリングしたら40行で書けた
1行に300文字以上
リソースでもFormsでもない普通のクラスが4000行

798 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 23:54:44.99 ID:NtFNmlTfp.net]
>>778
ドカタだけどlinqのwhereメソッドの引数を動的に生成するときに使った

ここ参考になるよ
https://www.atmarkit.co.jp/fdotnet/dotnettips/986dynamiclinq/dynamiclinq.html

799 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:03:29.50 ID:68XB546j0.net]
>>783
ぜんぜん許容範囲だな!
その程度でくそ呼ばわりされたらたまらん

800 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:08:48.21 ID:QoSQSwcY0.net]
>>783
>>switchを使わず延々とif-else if分岐
>>マジックナンバーだらけ
>>クラス内のあらゆる場所から明示されず書き換えられるフィールド
>>メソッド1個300行以上
>>リソースでもFormsでもない普通のクラスが4000行
今直面してるのにまさに当てはまっててもう

>>コレクションはほとんどList
こっちはListどころか配列しか使わないんだぜ。もう書き方が完全にC



801 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:09:16.61 ID:NU/jFtK40.net]
メソッド以外はどれも影響は大きくないし
多少大きくてもテストできればなんとかなる
ちょっとした文化の違い程度の話だ

802 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:10:34.86 ID:NU/jFtK40.net]
初心者が一見してくそ呼ばわりするコードはたぶんくそじゃない
わかるから細かい粗が目に付く

普遍的恐怖を知るべきだ



ぐちゃぐちゃな循環参照
テストできないメソッド

う そ っ ぱ ち の 名 前

803 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:15:27.94 ID:ThQ6mTfg0.net]
突然現れるlinqの長々としたクエリ式
せてめメソッド式にしてくれ

804 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:18:57.61 ID:NU/jFtK40.net]
しかしC#いつのまにやらパターンマッチまで入ってたんか…

805 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 00:28:52.23 ID:ZFJdpCv/0.net]
sqlを全て文字列結合で作ってるうえに500行以上あったときは後輩に丸投げした

806 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 03:16:32.66 ID:wZcpOMsUd.net]
>>780
バグやコードを憎んで、人を憎まず。

こんなこと言ってるプログラマーは意識高い系の偽善者のクズ。

807 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 11:30:46.50 ID:Av/VHz3vp.net]
あいつに任せた俺の責任だからって最初から頭数に入れていないから憎みもしない。必要なら全面書き直しもいとわない。

808 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 20:59:42.99 ID:7bLC7yvk0.net]
なんでListがいかんのか?

809 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 21:12:02.17 ID:aLxxu1ok0.net]
ビットで判定とるのがいかんのか?

810 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 21:18:55.30 ID:fUfQlO4W0.net]
7f63-aXvPからクソグラマーの臭いがする



811 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 21:21:22.68 ID:fUfQlO4W0.net]
>>794
時と場合を考えて最適なコレクションを検討しろ

>>795
特別な理由がないなら褒められないな

812 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 21:37:16.13 ID:aLxxu1ok0.net]
ZDDをboolの配列で評価するの?orz

813 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 21:40:05.70 ID:fUfQlO4W0.net]
>>798
特別な理由がないならと言ってるだろうが

814 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 22:03:13.49 ID:QoSQSwcY0.net]
windows formsの書き方についてなんですけど
メイン画面にタブがいっぱいあってそれを切り替えて……みたいなアプリなんです
んで中身見たらFormクラスが1万行オーバーで。画面一つだからって何もかも突っ込んでる感じなんです
画面というかフォーム一つで1クラスみたいなのが通常の書き方なんでしょうか

815 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 22:10:14.52 ID:Av/VHz3vp.net]
普通はブロックに分ける。

816 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 22:13:41.16 ID:fJKX2zi80.net]
>>800
タブ毎にユーザーコントロールを作ればスッキリはすると思うよ

817 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 22:23:35.32 ID:lGqB6oAG0.net]
>>800
「通常」はどうか知らないけど例えば
MDIアプリケーションを作成する
https://dobon.net/vb/dotnet/form/mdiapplication.html
こういう作り方もある
あと一つのフォームに普通のコードはともかくコントロール(InitializeComponentのなか)を多く詰め込みすぎると起動に時間がかかるようになる
現状で問題ないのならそこは気にすることは無いが

818 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 22:53:44.29 ID:d7SzDWCz0.net]
>>800
parcial class でタブごとにファイルわける。

819 名前:デフォルトの名無しさん mailto:sage [2019/09/26(木) 23:38:48.19 ID:QoSQSwcY0.net]
なるほど参考になりました。
今思えば既にタブごとに部分クラスわけしてファイル別になってたような気がしないでもない……となると実質一クラス10万行か。笑えない

820 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 06:43:42.33 ID:N2euUEC0M.net]
>>800
1000行超える時点でオブジェクト指向できてない証拠



821 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 08:33:35.75 ID:1dreLMG90.net]
フォーム以外で使わない処理を
わざわざ外部のファイルやクラスに作る必要なんてある?

822 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 08:42:46.73 ID:eAUqf5T9a.net]
>>807
それで可読性が高まるならやる意味はある

823 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 09:06:13.84 ID:ikgA/i06d.net]
C#は1ファイルに全部書けるので必要ないです

824 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 10:07:45.04 ID:NnPkuVhE0.net]
再利用しないならそれでいいんじゃね?

825 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 22:47:27.06 ID:uik+OEWH0.net]
お前を含めた全人類が未来永劫そのコードに手を加えない保証があるなら好きにすればいい

826 名前:デフォルトの名無しさん mailto:sage [2019/09/27(金) 23:28:58.48 ID:MmWjZkvh0.net]
ググったらタブ大量にあるような場合>>802がクラス分割のためのメジャーな手法なのね

827 名前:デフォルトの名無しさん mailto:sage [2019/09/28(土) 08:43:54.27 ID:uN9Z5b+x0.net]
游ゴシックの英数文字をMeasureStringで取得した矩形を使ってDrawStringすると高さ不足で表示されない

矩形を使わなきゃ表示はできるから良いけどもやもやする

828 名前:デフォルトの名無しさん mailto:sage [2019/09/28(土) 10:37:47.08 ID:elJniuwU0.net]
フォント周りおかしいのはMS伝統では
ないだろうか?



829 名前:デフォルトの名無しさん [2019/09/28(土) 14:09:54.66 ID:51nJyp6ja.net]
そんなざっくりした話じゃ、どうせお前自身のコードのバグだろって
反応しか返ってこないと思うw

830 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 01:52:26.51 ID:sVRG+wNI0.net]
インターフェイスと抽象クラスってどう使い分ければ良いのでしょう?

ググってもよくわかりません。



831 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 02:47:00.08 ID:TNnn17Gh0.net]
インターフェースなら継承関係のない複数のクラスのように
振る舞うことができる

832 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 02:49:22.44 ID:HU0MDVmv0.net]
大雑把言えば
プロパティとフィールド(値)を保持するのがクラス
クラスのメソッド(挙動)を公開するのがインターフェイス

833 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 02:54:07.57 ID:TNnn17Gh0.net]
それが抽象クラスとなにが違うのだ?と彼は聞いているわけで

834 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 03:01:23.20 ID:HU0MDVmv0.net]
インターフェイスは値を持たないし
原則として挙動の実装も持たせない

835 名前:デフォルトの名無しさん [2019/09/29(日) 03:20:49.12 ID:m1n6jIU5a.net]
>>816
使い分けで悩む必要はないと思うよ。
インターフェイスで目的が達成できるならあえて抽象クラスを使う理由はないのだから。

たぶん使い分けが分からないのではなく、インターフェイスの使いどころが分からないだけじゃないのか。
よくわからなくてもとにかく実際コードを書いて使ってみることが重要。
別に難しい話じゃないので使ってるうちに自ずと分かる。たぶん

836 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 03:35:49.46 ID:TNnn17Gh0.net]
多重継承的なことがしたくなったらインターフェースを使う
くらいな感じでいいのかもね

837 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 07:08:46.93 ID:5VaVy3IA0.net]
私もよくわからないんですが、インターフェースって実装内容は問わないけどこの名称のメソッドは用意しなさいよってコトですかね?
インターフェースでメソッドを定義しても、継承したクラスがそのメソッド名に合ってない実装をしてしまったらと考えるとインターフェースのメリットがイマイチピンときません

838 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 07:26:53.36 ID:ehZkSMIn0.net]
疎結合

839 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 08:56:25.44 ID:qdFsd7WD0.net]
>>823
継承したクラスで変にオーバーライドされたら…
なんて気にしたら何も書けなくなるよw
それはオーバーライドした奴の責任だから気にしてもしょうがない

840 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 09:00:39.96 ID:TNnn17Gh0.net]
それって抽象メソッドでも同じ事じゃないの



841 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 11:47:55.74 ID:YvnTsZym0.net]
多態で使うんだよ
用意しなさいってのは発想が逆で、インターフェースに定義されているプロパティなりメソッドなりが実装されていることが保障されていると考える
実際の実装は気にせずに呼ぶ側はインターフェースのメソッドを呼べばいい

842 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 11:59:54.10 ID:J9ITXYeqp.net]
抽象クラスは重複の排除で使う、インターフェイスはテストする時の視点で必要

クラスAがクラスBの機能を利用する時に
クラスAはインターフェイスに対して実装しとけば
クラスBの変更に影響を受けないし、
テストする時にクラスBの代わりを作るのがインターフェイス部分だけになる
これがもしクラスAがクラスBの抽象クラスに対して実装すると、
クラスAをテストするときに抽象クラスの不要な部分まで要求されてしまう

また複数人開発においてもインターフェイスを利用すれば各個人が独立に作業しやすくなる

843 名前:デフォルトの名無しさん [2019/09/29(日) 12:01:49.30 ID:3s0zt66kF.net]
呼んだはずのメソッドが(インターフェースでは要求されてるのに)実装されてなかったら
コンパイルエラーじゃなくて実行時に例外吐くか
unknownmethod()みたいな呼び方してくれると便利

844 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 12:05:37.87 ID:INBbqatbr.net]
不便だろ

845 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 12:07:56.33 ID:wmQ9rxKs0.net]
クラスに由来しない振る舞いを定義するのがインターフェイスとも言えるね。

良く例示される「動物」クラスで考えると。
・「動物」は動くのだから「移動」メソッドに必然性がある
・だけど「移動」するのは動物だけではない
・いま「移動」と言うメソッドに着目して操作を行いたいとする
・「移動」は動物でも自動車でもロボットでも行う
・でも自動車もロボットも動物ではないのでいからそのメソッドの由来を「動物」クラスに求めるわけにはいかない
・加えて、動物や自動車やロボットに直系する(基底)クラスもない
・故に「移動」メソッドの由来を「動物」クラスにではなく「移動」インターフェイスに求めてみる
・・・的な。

846 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 12:08:06.40 ID:INBbqatbr.net]
実行時に例外吐くのはめちゃくちゃ恥ずかしい

コード書いたやつはバカですと言う証明
私はデバッグもできない馬鹿ですで表明してるようなもの

847 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 12:13:32.63 ID:INBbqatbr.net]
コンパイル時にエラー吐くならそこでデバッグできる

実行時エラーなら全ての場合でエラーがないことを実際に確認しなければならない

どちらが便利かわかるだろ

848 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:29:34.79 ID:TNnn17Gh0.net]
>>831
いい例えだね
俺も使わせてもらうわ

849 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 20:03:13.25 ID:sVRG+wNI0.net]
先日、マンガ村の運営者が著作権法違反の容疑で逮捕された。

c# プログラマもマンガ村と同様の共有システムgit等を利用し、マンガやソースをインターネットを通して共有している。
github など分散型のバージョン管理システムを利用している c#プログラマはマンガ村の管理者と同じ位置にいるといえる。単なる利用者ではない。

c# プログラマはマンガ村管理者と同一人物といえるので、著作権法違反の共同正犯として刑務所にぶち込むべき。

850 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 22:53:02.75 ID:1CaVkali0.net]
c#のインターフェイスにはプロパティも宣言できるよね
あれは実質的にはフィールドと同じ様な感覚で使えてしまう



851 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 23:37:43.33 ID:uMWzDoEma.net]
だって>>831のような解釈は時代遅れだし特にC#(というかMS系)では一般的ではないからな
今時は「動物」という一般的実在だろうが「移動できる」という抽象的性質だろうが区別せず、
実装を限定したくない場合は原則常にインターフェイスを使うのが一般的だ
特にMSの場合は顕著で、ほぼ全クラスの全メソッドをインターフェイスに定義するというスタイルを取ることが多いし、またそれを推奨してもいる

852 名前:デフォルトの名無しさん [2019/09/29(日) 23:56:27.42 ID:8QPFQcOxa.net]
ほんとかよそれwwwww

853 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 23:59:46.39 ID:k4CvVXqN0.net]
>>837
初心者スレで珍妙な独自理論を一般的だなんて教えるのはやめれ

854 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 00:22:33.73 ID:LVz3OUV70.net]
今年始めた初心者だが
クラスが大カテゴリ
メソッドが小カテゴリ
インターフェースが小カテゴリらの存在を保証する中カテゴリ
このくらいの認識しかなかったわ

855 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 00:32:45.02 ID:C9eDYcBn0.net]
宣教師と見た
次にスクリプト言語を薦めて来るぞ

856 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 00:57:12.69 ID:PJtB8DfJ0.net]
831 だけど

857 名前:B

複数のクラスインスタンスの動的読み込みとか始めるとそんな感じになることもあるよ。
プラグインとかの識別に便利だし。
そうだとしても、たぶん 831 の1行目と矛盾してないでしょ。

ただ初心者相手の説明にこんなこと言いだしたら収拾がつかなくなるし、
全メソッドをってのは、まあ頑張ってな、と返すしかないけど。
[]
[ここ壊れてます]

858 名前:デフォルトの名無しさん [2019/09/30(月) 01:48:44.79 ID:dOfJdIlZ0.net]
すまんが、エラーメッセージにあるカッコ内の行番号らしきものってさあ
片方は間違ってる行っぽいけど、もう片方は一体何なんだぜ?

859 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 02:02:42.92 ID:zBUNKmmLa.net]
>>843
その行の何文字目かって意味
例えばファイル先頭に「int a = "";」と書いたら(1,5,1,6)でエラーが出るけど
これは「1行目5文字目〜1行目6文字目」の箇所でエラーになっていることを表している

860 名前:デフォルトの名無しさん [2019/09/30(月) 02:09:52.87 ID:dOfJdIlZ0.net]
>>844
ありがとう!何文字目かなんて全然わかんなかったよ



861 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 08:08:24.00 ID:fD1lXHN30.net]
質問いいですか?

862 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 08:10:26.75 ID:ws0x1Tjj0.net]
>>846
駄目です

863 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 08:17:51.94 ID:nNBu0V63d.net]
>>847
その返しはこのスレではいかんだろ(笑)

864 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 08:41:05.60 ID:bmAzH1750.net]
トイレ行ってきていいですか?

865 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 08:55:42.37 ID:BmNMZ9TsM.net]
もう居るだろう

866 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 09:29:49.98 ID:fD1lXHN30.net]
では質問しますね
Timerコンポーネントで
Timer1.Interval = 5000;とすると、プログラム起動後5秒後に初めてTimer1_Tickが
実行されますよね、これを起動時に1度実行したいのですがどうしたらいのでしょうか

Form1_Loadに書けばいいような気がしますが引数がわからない

867 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 09:31:40.04 ID:Q4pocwaT0.net]
忘れたけどTimerってTimers.TimerもThreading.Timerも大体どんな種類の奴でも最初のディレイタイム指定できなかったっけ?

868 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 09:58:04.89 ID:fD1lXHN30.net]
>>852
レスサンクスです
Delayでぐぐってみましたが、プログラムを遅延させるほうのDelayばかりヒットして
なかなか見つかりません、Timerのプロパティにそういうなのがあればいいんですが

869 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 10:05:34.65 ID:g7w6SBZq0.net]
>>853
処理を関数化しておいて、コンストラクタから呼んだらいいんじゃね?
別にタイマーから呼ばなくてもいい

870 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 10:13:21.52 ID:e45pyL0lM.net]
>>851
最初100で、中で則5000書き換えじゃあかんかったっけ



871 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 10:40:02.13 ID:fD1lXHN30.net]
>>854
サンクスです
Timer1_Tickの中の処理をゴソっと別にうつすんですか、確かにうまくいきそうですね

>>855
さんくすです
Timer1.Interval = 100;からTimer1.Interval = 5000;に変更ですか
これもうまくいきそうですね、厳密な秒数は必要じゃないですし

872 名前:デフォルトの名無しさん [2019/09/30(月) 10:47:03.32 ID:ZcJV4ZEKa.net]
>>851
どんな方法使ってもいいけど後で読んだ時に何をやってるか
分かりやすいのが一番だね

public Form1()
{
  InitializeComponent();
  Form1.Load += (sender, e) => OnEvery5Seconds();
  Timer1.Tick += (sender, e) => OnEvery5Seconds();
}

void OnEvery5Seconds()
{
.....
}

こうやった場合、FormのLoadイベントより前にOnEvery5Secondsが呼ばれる可能性が
あることは注意する必要がある。(実際にはないと思うけど)

873 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 11:16:30.25 ID:fD1lXHN30.net]
>>857
れすさんくすです
なるほど、こんな書き方もできるのですね、うまくつかえばすっきりまとまりそうです

874 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:02:09.82 ID:S0uOX3sP0.net]
>>852
流れから推測するとたぶんWindows.Forms.Timerクラスだね

875 名前:デフォルトの名無しさん [2019/10/02(水) 01:49:10.77 ID:4PgWnh+40.net]
非同期メソッドでちょっとだけ同期処理するのにはどうすれはいいのですか?

async Task ABCasync(){
ABCasyncの呼び出し元には、終わるまで待っていてもらいたい処理();
//ここでtaskで呼び出し元に何かを返せたりするのかしら?
ABCasyncの呼び出し元には、待っていてもらう必要のない処理();
}

876 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:14:39.18 ID:mDEdylW50.net]
強引に実装することは可能だがメソッド分割すべき

877 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 07:28:12.15 ID:YugGu4Uj0.net]
クラスは知識
メソッドは機能
という認識は事のほか難しいんけ?

878 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 08:07:26.42 ID:Vm3TcWW10.net]
>>862
そういう一般的でもない訳のわからない解釈を出されても、普通の人には理解できないかおかしな理解のまま突き進むことになるだろう

879 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 08:15:53.12 ID:gR9x9lAq0.net]
クラスは学校とかのクラスって認識でいい

880 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:07:45.90 ID:9X+f8gXkr.net]
ゲームのクラスの方がわかりやすい気がする

戦士 魔法使い 僧侶 盗賊

それぞれできることが違う



881 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:18:19.95 ID:VgxhRvTXp.net]
あはは、まあ、学校のクラスだと対抗戦が出来るくらいに似たり寄ったりだから意味が分からないよな。

882 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:59:15.15 ID:8UOZigmra.net]
逆に、同一のクラスの異なるインスタンスなんてのもできないしね。

883 名前:デフォルトの名無しさん [2019/10/02(水) 12:12:09.33 ID:VOEDuxVKM.net]
>>865
じゃぁ男女別は?
どっちのクラスが上位なの?
それとも同格で、男戦士 女戦士ってなるの?

半魚人タイプとか4足系の戦士は?

884 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 12:26:49.61 ID:9X+f8gXkr.net]
出来ることが変わらないなら基本変えなくていいよ
設計次第だけど

質問の内容の男戦士と女戦士で何が違うのかはっきりしない
力などの属性値(プロパティ)だけが違うなら分ける必要はないわな
半漁人でも4足系の戦士でも数値しかかわらないなら同じ

コードが共通になるなら基本的に分けなくてもいい

885 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 19:59:53.93 ID:dZRRj/1Z0.net]
強引に何かに例えるよりコード書いてみた方がいいよ

886 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 20:20:25.32 ID:IV023jBj0.net]
C#はじめて最初の日に読み飛ばすところで議論しても不毛だよな
>>870に賛成

887 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 00:57:21.26 ID:z1GHd6rla.net]
質問です
工場とかインフラの制御ソフトモドキを成果物としてWindowsアプリケーションの形式でC#で作りたいんですが、この2冊終わった後にWindowsアプリケーション開発の本買うなら何が良いですか?
また、本が時間の無駄だとしたらどこのサイトを参照すれば良いですか?
上記の件よろしくお願いしますm(_ _)m

1冊目 なるほどなっとくC#入門
2冊目 C#プログラミングのイディオム/定石&パターン

888 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 01:02:05.17 ID:t45ZyD0e0.net]
そりゃ一番はMicrosoftのチュートリアルでしょ
https://docs.microsoft.com/ja-jp/visualstudio/ide/step-1-create-a-windows-forms-application-project?view=vs-2019

889 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 01:16:35.63 ID:z1GHd6rla.net]
>>873
ありがとうございますm(_ _)m

890 名前:デフォルトの名無しさん [2019/10/03(木) 01:19:35.07 ID:pRlPv1jza.net]
>>872
FormならGUIの作り方は必用なことをググって調べながら実際に作ってみるのが一番。
本は1冊以上は読むだけたぶん時間の無駄。

何かを制御するなら、それが大企業の製品で.NET用のライブラリが用意されているのでない限り
たぶんアンマネージドの知識が必要になる。
これは多分本はないので自分でググって調べる

あと多分非同期処理は必須。
最初.NET1.x時代の生のThreadとか使う記事に軽く目を通して、
その後は今時のTPLや非同期メソッドの記事を読めばいい。
本もあるけどたぶんweb上の記事で十分



891 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 01:26:24.07 ID:wBmuAStK0.net]
非同期メソッドの実行自体は慣れたけど
win10のアップデート強制再起動時に
非同期処理中のタスクをきちんと終了させる方法がわからん

突然書き込み中のファイルがぶっ壊れそうで怖いわ

892 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 01:35:18.06 ID:z1GHd6rla.net]
>>875
ありがとうございますm(_ _)m






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<285KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef