[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part141 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part141 http://mevius.5ch.net/test/read.cgi/tech/1544839627/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
240: デフォルトの名無しさん (ワッチョイ a161-Fjw0) [sage] 2019/01/12(土) 08:39:26.90 ID:0dPYYJK00 >>239 LINQやらラムダ使えなくても動くものはつくれるからまぁまずは作ってみよう http://mevius.5ch.net/test/read.cgi/tech/1544839627/240
241: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 10:13:12.90 ID:iaJ8ArIE0 最近は、自分でプログラム組まずにランサーズでハイスキルな奴に外注してるわw 中抜きでうま〜〜〜 http://mevius.5ch.net/test/read.cgi/tech/1544839627/241
242: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/12(土) 10:35:45.31 ID:e9xF8Gpoa >>232 チームの方針次第 うちの場合は nullを許可しない引数と返り値は基本的に全てチェックして例外を投げてる めんどくさいと思うかもしれないがFluentAssertionのようなライブラリを使えばそこまで大きな負担にはならない nullオブジェクトパターンはやればわかるがチェックするよりも手間がかかる また必ずしもnullの場合の適切な動作を定められるとは限らない 適切でない場合にパターンを適用するとそれがnullオブジェクトかどうかチェックするといった本末転倒なことになりかねない なのでこれが最も適切と確実に判断できる場合を除いて使用しない C# 8.0が待ち遠しいね http://mevius.5ch.net/test/read.cgi/tech/1544839627/242
243: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/12(土) 10:44:33.52 ID:CChJ5ept0 >>232 仕様と設計で解決する問題 エラーが出たときどうしたいの? エラー出たときに別に原因とかわからんでええなら一連の処理をtrycatchで囲ったらええやん なんか起きたらcatchに入ってくるで http://mevius.5ch.net/test/read.cgi/tech/1544839627/243
244: デフォルトの名無しさん (ワッチョイ a5d2-SD/a) [sage] 2019/01/12(土) 17:18:08.40 ID:XDHakXaX0 >>232 外部とのやりとりの場所は結構厳重にチェックを入れる。 自分で書いているところは適当に流す。 外部とは当該館数のパラメータや、呼び出す関数とかの戻り値ね。 try catch で囲んで、チェックして例外発行して、catch 内でまとめてトレース情報込みでログ出してスローするくらいなら大した手間じゃないじゃない。 その例なら if( obj == null ) throw new ArgumentNullException("ぼーっと生きてんじゃねーよ!"); で済む話じゃん。 >>239 コピペでもいいからたくさん書いてみる。で解決するよ。 やってるうちに理屈が分かるようになる。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/244
245: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 17:23:52.90 ID:iaJ8ArIE0 昔は開発現場でこっそりExcel型の2chブラウザでネットサーフィンばかりしてたな〜 座ってるだけで月70万むっちゃらくやった http://mevius.5ch.net/test/read.cgi/tech/1544839627/245
246: デフォルトの名無しさん (ワッチョイ d6a7-VK1S) [sage] 2019/01/13(日) 00:23:58.00 ID:X0+RFgX60 >>239 駆け出し時代オープンソース改造してた時にLINQはパフォーマンス悪いと思って見つけ次第foreachに手直しするという逆工程でLINQとラムダ式マスターした http://mevius.5ch.net/test/read.cgi/tech/1544839627/246
247: デフォルトの名無しさん (ササクッテロ Sp85-aawd) [sage] 2019/01/13(日) 00:46:53.42 ID:IIPQpabmp 使えば勝手にlinqの快感にハマって抜け出せなくなる http://mevius.5ch.net/test/read.cgi/tech/1544839627/247
248: デフォルトの名無しさん (ワッチョイ a563-jrHm) [sage] 2019/01/13(日) 04:21:19.42 ID:qwE0jZig0 麻薬のような機能だなw http://mevius.5ch.net/test/read.cgi/tech/1544839627/248
249: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/13(日) 09:07:48.83 ID:Xn8IPTP50 LINQもRxも使いだすと元に戻れなくなる でも性能気にしてstructとforeachに書き直し始めると時間足りない http://mevius.5ch.net/test/read.cgi/tech/1544839627/249
250: デフォルトの名無しさん (ワッチョイ faad-yiss) [sage] 2019/01/13(日) 09:32:12.32 ID:Z+h8nfOL0 >>246 パフォーマンスのためならなんでforにしなかったん? http://mevius.5ch.net/test/read.cgi/tech/1544839627/250
251: デフォルトの名無しさん (ワッチョイ d6a7-VK1S) [sage] 2019/01/13(日) 18:27:15.40 ID:X0+RFgX60 >>250 Listはしてたよ あとラムダ式はLINQ→foreachより行数減らす意識持って1行メソッドを見つけ次第ラムダ式に直す工程で習得したな http://mevius.5ch.net/test/read.cgi/tech/1544839627/251
252: デフォルトの名無しさん (ワッチョイ 551f-M1d3) [sage] 2019/01/14(月) 23:20:39.35 ID:3wGjtMyb0 ComboBoxに例えばA〜Dと4つ項目が入っていて、A〜Cは同一計算方法でDのみ特別な計算方法でコード内容が異なり且つ色んな計算をする為コードが長くなる場合の見やすくする為の最初の分岐方法とか書き方とかありませんか? 今はifで分岐した中にあれこれ結果を取ってきて結果を出してるのでifがやたら長く見辛いです。なんかいい方法があれば教えて頂きたいです。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/252
253: デフォルトの名無しさん (ワッチョイ 3d46-VK1S) [sage] 2019/01/14(月) 23:31:33.99 ID:CBheeOs80 LINQ使うと元に戻れなくなるのはわかるんだけどデバッグしづらくね? デバッグを想定する時点で初心者なのかな...教えてエロい人 http://mevius.5ch.net/test/read.cgi/tech/1544839627/253
254: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/15(火) 00:45:24.53 ID:DUfu4s9fa >>252 4っつぽっちの分岐で何がそんなに見づらくなるのかちょっと理解できんよ。 いや、煽ってるわけじゃなく本当に 各分岐先のコードが長くなるっていうのならそれぞれメソッドに切り分けるだけじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1544839627/254
255: デフォルトの名無しさん (ササクッテロ Sp85-aawd) [sage] 2019/01/15(火) 02:09:17.70 ID:gvlEsXBIp >>252 if(value == d){ d用処理またはメソッド }else { a〜c用処理またはメソッド } これじゃダメなの? http://mevius.5ch.net/test/read.cgi/tech/1544839627/255
256: デフォルトの名無しさん (ガラプー KKad-zSS6) [sage] 2019/01/15(火) 04:09:30.23 ID:Vsgk6Uc3K >>252 ComboBoxにブチ込むためのクラスを書いてDは継承 http://mevius.5ch.net/test/read.cgi/tech/1544839627/256
257: デフォルトの名無しさん (ワッチョイ a161-PaIb) [sage] 2019/01/15(火) 06:09:12.86 ID:rjgxVR8i0 LINQはなかなか身につかんなあ。 とりあえずforで書いといて見直してこれLINQで一行になるんじゃね?と気付いたらいそいそと書き直す感じ。 LINQ脳になってない http://mevius.5ch.net/test/read.cgi/tech/1544839627/257
258: デフォルトの名無しさん (ワッチョイ a563-jrHm) [sage] 2019/01/15(火) 06:39:49.84 ID:OSSPo6bD0 例えば処理順を意識しなくて良い場合、通常のforまたはforeachで処理するのと、Parallel.ForEachで並列処理するのはやはり並列処理の方が早い? http://mevius.5ch.net/test/read.cgi/tech/1544839627/258
259: デフォルトの名無しさん (ドコグロ MM9d-QFwb) [sage] 2019/01/15(火) 07:24:38.34 ID:ohj/8QmzM >>255 質問者の意図とは違うかもしれんがそういうコード書くと怒るやつがいた職場がある わざわざ継承してうにゃうにゃやらんと怒る んでできたコードが何がいいのか考えてもさっぱり意味がわからん 本人にメリットを聞いてもさっぱり理解できんというかメリットの話になると必ずボケた返しをする ありもしない改修を想定してキチガイとしか思えない発言を連発する そもそも仕様書や設計書に処理がその数で分岐するってあるのに なんで普通に書いたら怒るんだよ もうお前とはやってられん ってとこまでいって仕様書や設計書通りに組んでるのに工数が増えてるのはあんたのせいだ って会社間の会議になってもまだグチグチ言ってる その場にいる全員?な状態だった http://mevius.5ch.net/test/read.cgi/tech/1544839627/259
260: デフォルトの名無しさん (スップ Sd7a-8shN) [sage] 2019/01/15(火) 08:37:28.18 ID:biF9zsRRd 環境次第 http://mevius.5ch.net/test/read.cgi/tech/1544839627/260
261: デフォルトの名無しさん (アウアウウー Sa89-E4e6) [sage] 2019/01/15(火) 08:41:56.04 ID:AEHaNlhRa >>259 条件分岐が減るとかじゃないの? それだけ不具合が減る理屈だが、工数が増えてるんじゃ意味ないな http://mevius.5ch.net/test/read.cgi/tech/1544839627/261
262: デフォルトの名無しさん (オイコラミネオ MM3d-DANP) [sage] 2019/01/15(火) 08:50:45.78 ID:OahWWfOzM 普通のケースでは継承にしても 条件分岐が別の場所に移動するだけだべ http://mevius.5ch.net/test/read.cgi/tech/1544839627/262
263: デフォルトの名無しさん (ブーイモ MM9a-oec2) [sage] 2019/01/15(火) 09:24:06.17 ID:n85zJfLmM >>258 Parallel.ForEachはオーバーヘッドが大きい 一周に数百ミリ秒かかるくらいの粒度の大きなループでない限りは普通のforeachより確実に遅くなる http://mevius.5ch.net/test/read.cgi/tech/1544839627/263
264: デフォルトの名無しさん (ワッチョイ 7a42-VK1S) [sage] 2019/01/15(火) 10:26:04.16 ID:fix0rts+0 多態性は手間がかかる割に恩恵が少ないよな http://mevius.5ch.net/test/read.cgi/tech/1544839627/264
265: デフォルトの名無しさん (ワッチョイ 4de3-Fjw0) [sage] 2019/01/15(火) 16:18:48.41 ID:R0UqBAnw0 >>257 foreachならともかくforで書いているなら苦労するだろう http://mevius.5ch.net/test/read.cgi/tech/1544839627/265
266: デフォルトの名無しさん (ワッチョイ 4de3-Fjw0) [sage] 2019/01/15(火) 16:22:04.50 ID:R0UqBAnw0 >>259 逆のパターンなら数多見てきたけど、そのパターンは珍しいな if分岐が10以上になるからなんとかしてと言われて継承使ったプロトタイプ渡したら、なぜか基底クラスでif文復活してたことならあるけど http://mevius.5ch.net/test/read.cgi/tech/1544839627/266
267: デフォルトの名無しさん (ブーイモ MM9a-jrHm) [sage] 2019/01/15(火) 16:36:00.01 ID:0qvQfApDM C#のforeachってpythonみたいに定義しないでindex取得出来ませんか?forにするしかないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1544839627/267
268: デフォルトの名無しさん (ブーイモ MM9a-RNo8) [] 2019/01/15(火) 16:37:26.00 ID:Oh+57Mh2M [_] http://mevius.5ch.net/test/read.cgi/tech/1544839627/268
269: デフォルトの名無しさん (ワッチョイ 3117-Fjw0) [sage] 2019/01/15(火) 16:53:35.12 ID:XrO54/Dg0 >>267 foreach単体じゃ無理 Enumerable.Select Method https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.select?view=netframework-4.7.2 http://mevius.5ch.net/test/read.cgi/tech/1544839627/269
270: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:42:13.30 ID:AbSveg4gd >>267 上のSELECT使った実装例はこんな感じ foreach (var x in items.Select((item, index) => new { item, index })) { Console.WriteLine($"index: {x.index}, value: {x.item}"); } Listか配列かIEnumerabelどれでやってるかは知らないけどもこれで行けるはず http://mevius.5ch.net/test/read.cgi/tech/1544839627/270
271: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 17:49:07.53 ID:u2JtKhAa0 forが完全上位互換なのになんで foreach使うのか? って今でも思ってるよ俺は ループにインデックスが必要になったというただそれだけで変更するんだぜ http://mevius.5ch.net/test/read.cgi/tech/1544839627/271
272: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:55:58.21 ID:AbSveg4gd indexが必要でCountもできる時はわざわざindex生成してforeach使う必要無いと思うけどもLinq使いたい時とかIEnumerabelに実装してるものにわざわざfor使わない派 http://mevius.5ch.net/test/read.cgi/tech/1544839627/272
273: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:58:55.44 ID:AbSveg4gd というか戻り値をIEnumerabelにして抽象化しておく事が多いから余計にforeach使うのはあるかもしれない Linq拡張メソッド作る時とか諸々 http://mevius.5ch.net/test/read.cgi/tech/1544839627/273
274: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/15(火) 19:24:57.54 ID:Kk36dR3w0 とりまLINQ使って富豪的に組むだろ http://mevius.5ch.net/test/read.cgi/tech/1544839627/274
275: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/15(火) 20:11:07.93 ID:LAAyKIEna >>252 int CalcDefault(); int CalcSpecial(); int Calc() { if (IsSpecialCase()) return CalcSpecial(); else return CalcDefault(); } bool IsSpecialCase() => combo.SelectedValue == "D"; とりあえず最初はこれでいいよ 似たような条件分岐が増えてきたらリファクタリングしてポリモー対応できないか検討 最初からポリモーは大げさだからやらなくていい でも後でリファクタリングしやすいように責務指向でメソッドを切っておくぐらいはやっておいたほうがいい このへんのさじ加減は経験則だな http://mevius.5ch.net/test/read.cgi/tech/1544839627/275
276: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/15(火) 20:18:43.20 ID:ToRrrvnYa switchを無くすのに多態なんか使う必要ないね。 すくなくともC#にはデリゲートがあるんだから多態使うぐらいならComboBoxのアイテムに デリゲート持たせた方がいいよ。 個人的にはこれも本当に可読的か疑問だけど。 分岐素直に分岐で書いた方が分かりやすいって http://mevius.5ch.net/test/read.cgi/tech/1544839627/276
277: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 20:29:43.48 ID:u2JtKhAa0 テストするときに圧倒的にわかりにくいコードになんの意味があるの? バカのやることは本当にわからない http://mevius.5ch.net/test/read.cgi/tech/1544839627/277
278: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/15(火) 20:31:56.84 ID:LAAyKIEna 確かに 分岐が多いとテストしにくい 少しならいいけど限度がある http://mevius.5ch.net/test/read.cgi/tech/1544839627/278
279: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 20:50:47.00 ID:u2JtKhAa0 設計書で分岐が100個あったらswitchcaseかifで100個書けよ それが気に入らないなら設計書直せよ そういう当たり前の手続きを無視してコード書いてる雑魚に俺は超えられねぇ http://mevius.5ch.net/test/read.cgi/tech/1544839627/279
280: デフォルトの名無しさん (ワッチョイ a602-XKp7) [sage] 2019/01/15(火) 20:54:23.73 ID:ShjRgn6y0 switch vs 多態って結局プログラムがDRY & SOLIDになってるかどうかって問題に帰着すんだよな >>255はDRYでもSOLIDでもない >>275はSOLIDではあるがDRYではない 多態までいけば完全にDRYでSOLIDなプログラムになる そのコードが一回こっきりで重複がないという前提だと、DRYのありがたみを実感しにくい だからswitch派が一定数居るのだろうね http://mevius.5ch.net/test/read.cgi/tech/1544839627/280
281: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 20:58:26.66 ID:AbSveg4gd インターフェイス厨だから似たような分岐はインターフェイスで分けて個別実装か本当に共通してるなら継承でなんとかしたくなる それと見返したら俺酷いスペルミスしててワロタ http://mevius.5ch.net/test/read.cgi/tech/1544839627/281
282: デフォルトの名無しさん (ササクッテロレ Sp85-NsAs) [sage] 2019/01/15(火) 22:25:49.08 ID:rPJfKlkHp cしか知らないのです vsをダウンロードして独学でc#勉強し始めたのですが、どうにもなりませんです オブジェクトだのラムダ式だのデザインパターンだの文法的な要素以外に勉強しないとなにを言ってるのかわからない事が多くて、勉強の進め方が間違ってるのだろうと思いました。 初心者丸出しの質問で恐縮ですが、どんな順で何を勉強したら良いでしょう? また、良書、良いウェブページなどご存知でしたら、ご教示いただければ幸いです よろしくお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/282
283: デフォルトの名無しさん (ワッチョイ d67b-92yO) [sage] 2019/01/15(火) 22:32:18.90 ID:2N1r/ZHN0 >>282 物まねでもなんでもいいから何か作りまくれ 用語とかから勉強しなくていい。色々調べるうちに覚える わからなくなったらやりたいことの頭にC#+スペース入れて検索 http://mevius.5ch.net/test/read.cgi/tech/1544839627/283
284: デフォルトの名無しさん (ワッチョイ 81da-Fjw0) [sage] 2019/01/15(火) 22:33:11.37 ID:p93FMJH30 必要性がわからない概念を理解するのは難しい それはコード書いた経験が少なすぎるから Cもほぼ入門書読んだだけでしょ とりあえず自分が理解できる範囲の知識でなにか作りたい物つくった方がいい http://mevius.5ch.net/test/read.cgi/tech/1544839627/284
285: デフォルトの名無しさん (ワッチョイ 6d5f-VK1S) [sage] 2019/01/15(火) 22:52:10.98 ID:qux9+5740 >>282 主にオブジェクト指向関係が分からないみたいだから オブジェクト指向入門系の本やウェブサイトを探せばいいんじゃないか? あるいはC#にこだわらないのであればC++の入門書はC言語との違いとして オブジェクト指向向けの機能に触れているものが多いと思う 実際にプログラム作ってオブジェクト指向の感覚掴みたいなら 個人的にはちょっとしたゲーム作ってみるのもオススメだな UnityならC#使えるし http://mevius.5ch.net/test/read.cgi/tech/1544839627/285
286: デフォルトの名無しさん (ワッチョイ 4a32-kZrb) [sage] 2019/01/15(火) 23:25:56.04 ID:Zm1dLYXR0 >>282 勉強の進め方というか基本的な理解が浅いのでは Cでも構造体ネストして疑似継承くらいするだろうし ラムダにしてもクロージャ要素はともかく匿名関数 とりあえずクラスは関数を纏めているのではなく 型を作りデータと結び付けているという事だね https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/index 翻訳が割と酷いが公式にもドキュメントはあるよ http://mevius.5ch.net/test/read.cgi/tech/1544839627/286
287: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/15(火) 23:31:48.76 ID:grH+sReD0 ご教示ありがとうございます いわゆるコンソール用のアプリケーションなら、cで充分私が必要とする程度のものは作れるので、わざわざ新しい言語なんか習得したいとは思わないんですが。 やっぱり、GUIのアプリケーションの方が使うとき楽だとら思いまして、なんとかc#勉強して作れるようになりたいなと言うのが発端なんです vsで参考になるようなところを参照してつまみ食いで作ったのですが、少しでも自分で機能を追加しようとすると、マイクロソフトのクラスライブラリなんか知らないので、なかなか困難で。 おまけにクラスというかオブジェクト指向って奴だと、無闇矢鱈と真似すれば良いという手法が私では通用しなかったのです。 どのようにクラスを作って良いのか基準もわからないですし。 オライリーのc++の本があるので読んだのですが、そこでは電子レンジをモデルにしてオブジェクトの説明をしてくれたのですが、なかなか良く分からず デザインパターンとやらを先に勉強しておくべきなのかとチラホラ読んだのですが、これもまた実装とは程遠い座学の世界でピンと来なくて泣きそうです。 みなさん、ある程度使えるようになるまでどんな順序でなにを学んだのか、ご教示いただければたすかります http://mevius.5ch.net/test/read.cgi/tech/1544839627/287
288: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/15(火) 23:33:48.23 ID:grH+sReD0 図々しいお願いで恐縮です http://mevius.5ch.net/test/read.cgi/tech/1544839627/288
289: デフォルトの名無しさん (ワッチョイ 2679-8zRV) [sage] 2019/01/15(火) 23:35:09.56 ID:opRVBBPd0 デザパタは経験積まないと有り難味が判らないから放置でいいよ 作りたいものを完成させるにはどうすれば近道かだけ考えろ http://mevius.5ch.net/test/read.cgi/tech/1544839627/289
290: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/15(火) 23:40:43.54 ID:grH+sReD0 >>289 デザイパターンはある程度蓄積が出来てないとありがたみがわからない、だから、後回しでも良いと言う意見ですね クラスを作る定石集のようなものだと思ったので、先に勉強した方が良いのかとも思っておりました 定石知らなくても、楽しく将棋はできるのだから、後回しでも良さそうですね ご意見ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1544839627/290
291: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 23:50:54.16 ID:u2JtKhAa0 vector3Dクラスの内部に vector2Dクラスは普通は作らないんだぞ 知ってた? しかし、両クラス共にメンバx,yを保持する そう、お前らの大っっっっっっっ嫌いな重複だw しかし、極上のバカでもない限り vector3Dをvector2D+zで作るやつなんてこの世にいないんだよ わかるな? この例ではわかりやすく XYZで説明してやったが 世の中ってのはこういうもので満ち溢れてるんだよ xyでもyzでも計算するときがあるのさ わかりにくいだけで xyをvector2Dで作ってしまったオブジェクトのyzの計算は不格好なのさ オブジェクト指向は破綻している そこをわかった上で付き合うんだ http://mevius.5ch.net/test/read.cgi/tech/1544839627/291
292: デフォルトの名無しさん (ワッチョイ 4a32-kZrb) [sage] 2019/01/16(水) 00:03:56.21 ID:9UhWNW230 >>287 物に例えるってのは常々ダメだと思うわ、関係ない要素が絡んできて 人に依ってはマイクロウェーブとか出るの?とか思うだろうし クラス設計としちゃフィールドは構造体と一緒だけどメソッドは… うん、とりあえず手続き型っぽく作っても良いだろう\(^o^)/ 多態性は+演算子の数値なら加算が文字列だと連結になるとかね C経験はCUIのみという事かな?.NET Frameworkなんか知らん!という事であれば Visual C++ Windows デスクトップアプリを従来通りWin32で作っても良いと思うけど 手っ取り早くダイアログベースで作成してメッセージハンドラに渡ってきたIDで振り分ける ぶっちゃけ.NET FrameworkもWin32 APIをラップしてるだけなのでC#も基本は変わらない フォームデザイナーで弄くってコントロールにイベントハンドラ割り当てるだけ http://mevius.5ch.net/test/read.cgi/tech/1544839627/292
293: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/16(水) 00:44:36.48 ID:RsJGf8R10 >>292 制御系のプログラムばかり書いているのです どうかするとロジアナ見てる方が多いかもしれませんが パソコンの世界はほとんどわからないです http://mevius.5ch.net/test/read.cgi/tech/1544839627/293
294: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/16(水) 01:02:27.00 ID:NripHWV9a >>293 制御系ならCでも自然とオブジェクト指向的な設計でコード書いてたはずだと思う。 「キーをスキャンしてデバウンス処理を担当するコード」とか「LCDドライバーへの表示データの転送を担当するコード」 とか、そういう仮想機械をコード上にいっぱい作ってたはず。 オブジェクト指向のオブジェクトって要はこの仮想機械のこと。 クラスはそれを書きやすくするための仕組みに過ぎん。 だからたぶん心配してるよりずっと簡単な話だと思うよ http://mevius.5ch.net/test/read.cgi/tech/1544839627/294
295: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/16(水) 01:07:11.33 ID:RsJGf8R10 >>294 私の頭の中はオブジェクト指向とは無縁です。 設計そのものに、そんな考え方を取り入れていないので、どこまでも手続き型で考えてしまうのです。 強いて言えば、状態遷移を作るときに少し似たような考え方になるだろうか、という程度ですね なにをクラスとすれば良いのか、そういうところがピンとこないので、わからないのです。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/295
296: デフォルトの名無しさん (ワッチョイ 4a32-kZrb) [sage] 2019/01/16(水) 01:13:49.60 ID:9UhWNW230 いわゆる組み込み系か、それだと逆にこっちが経験乏しいけど、Cライブラリなら馴染みはあるのかな するとまずはVisual C++からWindowsコンソールアプリをC/C++ライブラリで作ってみるとかかねぇ? APIとかはC#にしろMSDN…今はMicrosoft Docs?を見るしかないね、C#ならIntelliSenseにも詳細出る でもC#からなんか制御するとかだと結局プラットフォームのネイティブAPIや専用ライブラリになるか? とりあえずオブジェクト指向とかを学びたいのであればC++や他スクリプト言語とかでも良さそうな http://mevius.5ch.net/test/read.cgi/tech/1544839627/296
297: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/16(水) 01:15:08.32 ID:NripHWV9a >>295 でもキュー(リングバッファー)ぐらい実装したことあるでしょ? 端的に言えばあれがオブジェクトの一例っすよ。 データ(配列 + 読み出しポインタ + 書込みポインタ)と、 それをリングバッファーに見せかけるコードの組み合わせ 簡単でしょ http://mevius.5ch.net/test/read.cgi/tech/1544839627/297
298: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/16(水) 01:30:35.70 ID:RsJGf8R10 >>296 言語そのものはどれでも良いと考えています vsのヘルプを読む限り、同じことができてるようですから どうせなら、c#を勉強してみたいなと考えております http://mevius.5ch.net/test/read.cgi/tech/1544839627/298
299: デフォルトの名無しさん (ワッチョイ 8dad-NsAs) [sage] 2019/01/16(水) 01:36:56.53 ID:RsJGf8R10 >>297 リングバッファがオブジェクト指向の考え方なのですか。 なるほど。 仮装化したデバイスのようなもの、ということなのでしょうか。ハードディスクのドライバやNICのドライバは確かにアプリケーションからみると仮想的で、実際のハードウェアの持つ機能とは関係なくつかえるようにしますね 少し例えがわかった気がします ありがとうございました 今日は遅いので、この辺で失礼します http://mevius.5ch.net/test/read.cgi/tech/1544839627/299
300: デフォルトの名無しさん (ワッチョイ 4eda-asVD) [] 2019/01/16(水) 02:56:08.32 ID:JSfUU2TA0 private Task<int> hoge{....} というメソッドがあって var t=hoge(); でタスク走らせた後、ちょっと別の処理してから t.ContinueWith(()=>...); と継続タスクを付け足した場合、 付け足した時点でhogeが終わってれば すぐ継続タスクの処理を開始してくれますか? http://mevius.5ch.net/test/read.cgi/tech/1544839627/300
301: デフォルトの名無しさん (アウアウエー Sa22-oec2) [sage] 2019/01/16(水) 08:32:38.24 ID:vAlWKxD3a >>300 はい http://mevius.5ch.net/test/read.cgi/tech/1544839627/301
302: デフォルトの名無しさん (ワッチョイ a67c-sRSz) [sage] 2019/01/16(水) 09:09:41.77 ID:CvIYGZ/W0 なんならTask.CompletedTaskからでもContinueWithできる http://mevius.5ch.net/test/read.cgi/tech/1544839627/302
303: デフォルトの名無しさん (オイコラミネオ MM3d-DANP) [sage] 2019/01/16(水) 11:29:57.72 ID:O5e9hp9mM >>299 オライリーのヘッドファーストオブジェクト指向がおすすめ http://mevius.5ch.net/test/read.cgi/tech/1544839627/303
304: デフォルトの名無しさん (ワッチョイ c52d-RNo8) [] 2019/01/16(水) 16:28:16.62 ID:UcQqPOFa0 ついでに、ユニットテストを身につける本をだれか教えてくれんかな どの入門書もテストについて全く教えてくれんがどうなってんだ・・・・ http://mevius.5ch.net/test/read.cgi/tech/1544839627/304
305: デフォルトの名無しさん (アウウィフ FF89-RNo8) [] 2019/01/16(水) 16:40:21.97 ID:vTKVQdGXF そのうちテストのテストも書きたくなってくる http://mevius.5ch.net/test/read.cgi/tech/1544839627/305
306: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/16(水) 18:30:37.61 ID:rdmn+dmd0 なかなかゲームの自動プレイを実装するの難しいな〜 http://mevius.5ch.net/test/read.cgi/tech/1544839627/306
307: デフォルトの名無しさん (アウアウウー Sa89-RNo8) [sage] 2019/01/16(水) 19:00:09.87 ID:uHZTYjv/a >>241 >>245 >>306 >>1 http://mevius.5ch.net/test/read.cgi/tech/1544839627/307
308: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/16(水) 19:04:33.77 ID:rdmn+dmd0 1は俺の書き込みちゃうでぇ http://mevius.5ch.net/test/read.cgi/tech/1544839627/308
309: デフォルトの名無しさん (ササクッテロル Sp85-NsAs) [sage] 2019/01/16(水) 20:32:03.28 ID:LiM0dr73p >>303 どうもありがとうございます java c#を習得している人が前提の書籍のようですね オブジェクト指向の勉強には良さそうな本で助かります javaも知らないので、今度丸善にでも行って太刀打ちできそうか、少しみてから判断しようと思います http://mevius.5ch.net/test/read.cgi/tech/1544839627/309
310: デフォルトの名無しさん (スップ Sd7a-asVD) [] 2019/01/16(水) 21:05:07.42 ID:wbo0XsPzd >>301 >>302 ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1544839627/310
311: デフォルトの名無しさん (ワッチョイ 512d-qnWR) [] 2019/01/18(金) 05:08:46.83 ID:bjcECFHM0 すまんが、VisualStudio2017についてる.NET Core2.1って、2.2にするにはどうすればいいの? 勝手に入ったんだからVisualStudio周りからアップグレードする方法があって良いような気がするものの・・・・どこにあるんだろ!? https://dotnet.microsoft.com/download それともこっからダウンロードしてきて入れちゃえば良いのかな? http://mevius.5ch.net/test/read.cgi/tech/1544839627/311
312: 203 (ワッチョイ c101-drjx) [sage] 2019/01/18(金) 07:03:56.21 ID:3+zdHjT80 >>287 動物スーパークラス作って猫クラスと犬クラス作って猫にニャーニャー 犬にワンワンと鳴かせるプログラム作りな 完成したらオブジェクト指向習得 これで月18万の8次請非正規になれるよ 面談では経験8年で勘定系COBOLの経験有りと答えてね http://mevius.5ch.net/test/read.cgi/tech/1544839627/312
313: デフォルトの名無しさん (ワッチョイ 690c-G1wx) [sage] 2019/01/18(金) 07:26:09.39 ID:UV6kIYNk0 >>311 VSのインストーラから入れられるのはLTSだからか知らんが今のところ2.1まで 2.2はSDKで入れてプロジェクト毎にターゲットとして指定すればおk http://mevius.5ch.net/test/read.cgi/tech/1544839627/313
314: デフォルトの名無しさん (アウアウウー Sa15-9Az4) [sage] 2019/01/18(金) 07:46:49.16 ID:tSI143EMa >>312 意地が悪いな http://mevius.5ch.net/test/read.cgi/tech/1544839627/314
315: デフォルトの名無しさん (ワッチョイ 615f-fAiL) [sage] 2019/01/18(金) 09:51:47.00 ID:LKOsIFRz0 オブジェクト指向は色々勉強するより ちょっとしたゲームでも作ったほうが分かりやすいと思うわ モンスターとヒーローを作って相手を攻撃するメソッドと攻撃を受けたときにダメージを受けるメソッドを書いて 終わり http://mevius.5ch.net/test/read.cgi/tech/1544839627/315
316: デフォルトの名無しさん (ワッチョイ e9ba-dCjl) [sage] 2019/01/18(金) 11:05:46.51 ID:OxZoH0bi0 非同期のファイル検索処理を途中でキャンセルしたいのですが 時間がかかる処理はDirectory.GetFilesなので CancellationPendingをどこに書いても処理が終わるまでキャンセルされないのですが どう書けばよいでしょうか https://dotnetfiddle.net/xYNYrk http://mevius.5ch.net/test/read.cgi/tech/1544839627/316
317: デフォルトの名無しさん (スッップ Sd33-T23y) [sage] 2019/01/18(金) 12:09:48.64 ID:FhyCLWa9d >>316 こういうやつ? https://qiita.com/Kosen-amai/items/20868649f10b119ceb40 http://mevius.5ch.net/test/read.cgi/tech/1544839627/317
318: デフォルトの名無しさん (ワッチョイ 11e7-zveU) [sage] 2019/01/18(金) 12:11:43.78 ID:70siMoMg0 >>316 Directory.GetFiles()の代わりにDirectory.EnumerateFiles()を使う http://mevius.5ch.net/test/read.cgi/tech/1544839627/318
319: デフォルトの名無しさん (ブーイモ MM33-0Knw) [sage] 2019/01/18(金) 13:00:12.01 ID:Xg90leRQM >>315 ゲームはオブジェクトと環境との間のインタラクションが多すぎるからオブジェクト指向を学ぶには適さない プロでも結局全部グローバルスコープでアクセスできるようにしとけみたいな設計にしかならん http://mevius.5ch.net/test/read.cgi/tech/1544839627/319
320: デフォルトの名無しさん (ワッチョイ 615f-fAiL) [sage] 2019/01/18(金) 14:06:54.39 ID:LKOsIFRz0 じゃあやっぱ>>312がベストアイディアだな http://mevius.5ch.net/test/read.cgi/tech/1544839627/320
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 682 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s