ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/05/02(火) 22:05:40.13ID:OPFlvhxj
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/

■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/05/19(金) 13:40:46.21ID:cfgUfLYa
>>288
設計書の内容と一致できる?
2017/05/19(金) 13:42:16.23ID:wsjFAOP3
読める人が3人以上いれば使って良し
その場合、読めない奴は今後雑魚コーダーとして扱効果査定で技術力マイナス査定
俺らも遊びじゃないからね
何でもかんでも下に合わせるのはジャップランド運動会みたいで悪しき風習だ
2017/05/19(金) 13:42:58.11ID:9Xnft4qI
初心者の質問スレってわからない大先生がまた出てきたよ
2017/05/19(金) 13:43:46.41ID:Nsgvzc4K
>>289
設計書どれ?
2017/05/19(金) 13:46:06.68ID:XSlpA42c
Linq使うなとかvar使うなとかウザイ先生が定期的に湧くね
2017/05/19(金) 13:46:42.22ID:cfgUfLYa
>>292
じゃあ、設計書無いのにソースだけ見ていいって言ってるわけだ

俺らの仕事は設計書を書いた段階で95%は終ってなきゃいけないよね
いいソースってのは設計書の内容をソースに反映できていることであって
ソースの見てくれがいいことじゃないよ
2017/05/19(金) 13:47:34.14ID:04gwXQVt
何言ってんだこいつ
2017/05/19(金) 13:55:45.76ID:wsjFAOP3
設計書をコードに齟齬なく反映可能
だとすればその設計書はもはや設計書ではなくコードである
コードに置き換えるという無駄な行程を無くしてコンパイラに仕事をさせればよい

設計書をコードに齟齬なく反映不可能
だとすれば設計書至上論者の言ってることはハナから間違いとなる
反映不可能なのに反映したものが良いとはおかしな話だ
反映不可能なら書いたコードが設計書を正しく反映していると何をもって言えるのだろうか

結論
設計書至上主義者は現実が見えていないバカ
2017/05/19(金) 14:01:48.82ID:a+VoRKlA
設計書は「誰の為に」「何の為に」あるのか理解してる?
まさかプログラマの為に作られてるとでも思ってるの?
2017/05/19(金) 14:02:58.29ID:cfgUfLYa
>>296
だから設計書書きたく無いって?w
情シスはいつになっても馬鹿だなw
2017/05/19(金) 14:05:06.67ID:HtTOLHjM
>結論
ゲラゲラ
2017/05/19(金) 14:35:25.16ID:XSlpA42c
今回の命題はコードを簡単にするにはどんなやり方がありますか?
ってことなのにありもしない設計書ベースにコードを簡単にすべきではないと主張するとか完全に馬鹿だろw
2017/05/19(金) 14:37:01.65ID:cfgUfLYa
>>300
簡単?
スマート(?)だろ?
2017/05/19(金) 14:42:01.05ID:UT6RIjCf
よくわからんから具体例で議論してほしい
どういう設計書なら>>279がだめなの?
ここ初心者スレだから初心者にもわかるようにやってくれ
2017/05/19(金) 14:42:02.36ID:XSlpA42c
>>301
>>300の「簡単」を「スマート」に置換しても主旨は全然変わらないからそれでいいよ
2017/05/19(金) 14:55:55.08ID:CjiiFotr
>>300
これに尽きる
2017/05/19(金) 15:23:33.91ID:wsjFAOP3
設計書文化の頭の悪さが露呈した形になるな
2017/05/19(金) 15:32:26.04ID:cfgUfLYa
>>302
ううんそれは本質じゃないよ
設計書もないのにソースの良し悪しを判断しようとしてるのが不味い
2017/05/19(金) 15:41:42.49ID:gmSWrJbX
また底辺プログラマくんが来てスレが荒れてるねw
一生拝承システムでも作ってろ
2017/05/19(金) 16:15:41.26ID:CDMysSsn
底辺かどうか知らんけど、ラムダ式をトリッキーでも何でもない
ごく普通の使い方しただけで上から目線で「わかりにくい」とか勘弁してほしいねw

>>279はラムダ式を使ってるだけで、考え方自体は普通の構造化プログラミングの方法論通り
共通部分を括り出して分割統治しただけ。

でも構造化プログラミングの段階で躓いてる人って実際割といるよね。
前の職場にも一つのメソッドに全部のロジックを詰め込んでダラダラ書く方が
分かりやすいと思い込んでる人がいて困った
2017/05/19(金) 16:26:40.59ID:dgLRkGLJ
バカが書いた凝ったコードこそが悪夢だからね
コボラーをPGとして使わなきゃいけないなら全部フラットに書くのは実際無難な方法ではある
ウォーターフローが守られてる限りは問題なくスケールするし
2017/05/19(金) 16:34:13.39ID:4KQhVkeZ
>>308
狙ってやってるのか不具合なのかわかりにくいな
普通にif文で条件判定入れてくれると読みやすいんだけど
まあ、それは設計書になんて書いてあるかだけどね
2017/05/19(金) 16:44:34.52ID:CDMysSsn
>>310
単純に1ずつ増えるループ変数iがXを超えたかどうか(i>X)みたいなのは
条件判断なんて言わない。

I == Xになるまではiは絶対にX未満、一度Xを超えたらその後は絶対にi>Xに決まってるんだから、
普通に考えてただの無駄、それが言い過ぎなら仕方のない妥協の産物だ。

こういうコードを見て無駄でエレガントでないと感じないならプログラマ向いてないよマジで
2017/05/19(金) 16:58:16.77ID:4KQhVkeZ
>>311
ううんそれは元のコードが仕様通りだったらの話
範囲で入る値が異なるコードを書くなら明示的にif文で条件判定を書いて欲しいんだよね
だからラムダのコードの方は俺には偶然によっかかって辛うじて成り立ってるコードに見えちゃう
2017/05/19(金) 17:19:07.19ID:CDMysSsn
何のこっちゃ
要求されているのは機能的に等価でよりスマートなコード以上でも以下でもないでしょ

YAGNIじゃないけど、こんなところで無限にありうる仕様変更の可能性に対して
備えてないからダメなんてただの言い掛かりでしかない
2017/05/19(金) 17:57:50.30ID:pkYYdS/8
ちなみに272氏は単純にこう書こうとは思わんかったん?
for (int i = 0; i< 100; i++){
if (i<**) hoge[i]=1;
if (i>=** && i<**) hoge[i]=2;

if (i>**) hoge[i]=4;
}
2017/05/19(金) 18:20:26.57ID:4KQhVkeZ
>>313
違うよ
お前のコードは不具合にしか見えねーって言ってるの
2017/05/19(金) 18:27:07.86ID:CDMysSsn
>>315
具体的にどうぞ
まあ無理しなくていいよ
2017/05/19(金) 18:28:57.76ID:ZLeUzX79
linqクソ遅いやん
for文の方が何倍か速いよね確か
2017/05/19(金) 18:30:03.38ID:WWLbWYv7
100倍だぞ100倍って主張が昔あったような…
2017/05/19(金) 18:31:48.04ID:CDMysSsn
っていうかさあ、ループ変数が単純に増減するループの中で
ループ変数を定数と比較してるコードを見たら、なんだか気持ち悪いとか何か間違ってると
感じるのが普通だけど、>>312みたいに逆にそうでないとしっくりこないって感じる人間もいるんだから
世の中いろいろだね
2017/05/19(金) 18:52:01.40ID:kYbu8TAD
添字アクセスはバグの温床だからforはなるべく使わない派だわ
2017/05/19(金) 18:58:05.71ID:rvoNT6Cb
そだね
2017/05/19(金) 21:06:53.85ID:luDd5jKl
using ( var stream = new MemoryStream( hoge ) )
{
for ( int i = 0; i < 50; i++ )
{
for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 1 );
}

for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 2 );
}
}

for ( int i = 0; i < 50; i++ )
{
for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 3 );
}

for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 4 );
}
}

idx = ( int )stream.Position;
}
2017/05/19(金) 21:22:07.20ID:PUsZCclE
教えてください
ディスクトップの特定の場所の色が変わったらAを実行するというコードを書きたいのですが
どの様に書けばよいのでしょうか?
よろしくお願いします
2017/05/19(金) 21:25:59.99ID:V49AdHLO
>>323
それは画面キャプチャが必要でそれだけでも一筋縄じゃできないような
タイマで監視するにしてもコスト大きすぎるし
他の条件は無いのか?
2017/05/19(金) 21:33:43.42ID:PUsZCclE
>>324
ありがとうございます

アプリから通知が来た時に右下に通知の吹出が出るので
その時にAというプログラムを実行したいと考えているのですが難しそうですね
2017/05/19(金) 21:39:37.11ID:wsjFAOP3
通知にフックすればいいじゃん
2017/05/19(金) 21:48:19.14ID:MbXyDkjN
>>323
ディスクトップwww
2017/05/19(金) 22:02:05.77ID:9om5PS5P
>>271
設定とかを書いてる訳じゃないよ
詳しくは書けないけど要するに WritePrivateProfileString なんて使うのがバカって言う結論
装置制御用のPCだからUPSはもちろんハングアップしたら外部のハードウェアで電源Off/Onまでやるようになってる
2017/05/19(金) 23:45:52.56ID:HvrNab0E
>>320
じゃあforeachで
2017/05/19(金) 23:47:34.46ID:HvrNab0E
>>323
指定した座標のカラーを取れば良い
2017/05/19(金) 23:53:05.65ID:luDd5jKl
通知ウィンドウ(?)をSpy++とかで調べておいて、そのウィンドウが出てるかポーリングするとか。
2017/05/20(土) 01:29:25.58ID:HfZ9LPLj
>>325
色はダメ

別のアプリの通知がでて同じ色の吹き出しが出たらどう区別すんの?
2017/05/20(土) 10:07:05.79ID:TjL8/DAP
うんこマーク付けとけうんこマーク
2017/05/20(土) 16:56:47.34ID:LUvMfIz7
>>272の質問の人何も言わずにとんずらしちゃったけど、
ひょっとしてラムダ式が分かりづらいって文句言ってたのが質問者本人だったのかなw
2017/05/20(土) 17:17:57.91ID:s6GG1k5+
>>306
まさにお前が言うな
2017/05/20(土) 17:42:51.92ID:Lw3rlvDI
C#スレこんな低レベルだったっけ
2017/05/20(土) 17:51:55.39ID:H5zsVvWC
初心者だからみんな低レベルだよ
2017/05/20(土) 17:58:30.08ID:TjL8/DAP
>>334
初心者にもわかりやすいコードがいいね
2017/05/20(土) 18:07:46.65ID:okSFnVvW
>>334
コードをスマートに書き換えて、ってそもそも質問じゃないじゃん
ネタ振ってスレの様子見て遊んでいる人が混ざっているのだからいつまでも構わないでくれ
2017/05/20(土) 18:36:04.13ID:TjL8/DAP
まあ、初心者に的確な判断を要求するのも酷だな
341323
垢版 |
2017/05/20(土) 18:52:37.15ID:eWsnLc5H
>>327
し、初心者なので許してくださいww

>>330
なるほど〜その線でしらべてみます
…って思ったけどさっぱりわかりませんorz何処か誘導お願いします

>>332
大丈夫です。
ほかのアプリは黄色い色の通知はしないのでいけると思います
2017/05/20(土) 20:24:06.43ID:Tc+UN3QZ
>>339
もっと綺麗に書けそうに思うけど自分ではどうしたらいいか分からない、
っていうのも立派な質問だしスレの趣旨に反していると思えない
343324
垢版 |
2017/05/20(土) 20:29:39.57ID:kVhEQFVq
>>341
その通知を出すアプリが何かわかればアドバイスできる人もいるかもしれない
色は問題ありすぎだから忘れろw
今のところ>>326が一番適切な回答だと思う
2017/05/20(土) 20:29:47.52ID:o8jDeEud
>>341
デスクトップをキャプチャしてイメージにする。その特定の座標の色を取得する。

まずはそこから
2017/05/20(土) 20:31:11.74ID:o8jDeEud
次に上に書いてあるようの、デスクトップの画面更新をフックする。

WM_PAINTとかかな
2017/05/20(土) 20:55:22.87ID:RDFlCbPz
色はダメだってw
OSがアップデートしたりソフトの使用が変わったら何の意味もない

もしそのアプリがc#と絡んでるならそっちをいじれ
2017/05/20(土) 21:05:00.27ID:U9rYpiRi
通知のフックって具体的にはどうやるの。
アプリの中身知らなくても出来るもん?
2017/05/20(土) 21:06:58.07ID:U9rYpiRi
デスクトップの色解析はスジが悪いよな。
たまたま似たような画面が重なったら誤動作するし。
2017/05/20(土) 21:27:00.53ID:j00pzvC8
Deepラーニングで誤動作回避ですよ
350323
垢版 |
2017/05/20(土) 21:38:51.77ID:eWsnLc5H
>>343
MultiChartsというチャートソフトなんですけど、通知をフックすると言うことは…ネイティブコードの解析が必要?
それが出来れば最高なんですけど私のスキルでそこまで出来ません

他に何も入っていない専用PCなので仕様はほとんど変わらないので
とりあえずスジが悪いかも知れませんが>>344さんの方法で調べてみます
2017/05/20(土) 21:45:16.85ID:NJbCjS/c
>>331の方針の方がはるかにいいぞ
2017/05/21(日) 00:34:18.82ID:05HcF/fB
フックするってどうゆう意味だってばよ??
2017/05/21(日) 00:40:20.10ID:99kOcSi/
>>352
SetWindowsHookEx
2017/05/21(日) 01:25:55.95ID:YXecPC33
オープンソースで公開するってんならOSやソフトの仕様を考慮する必要があるけど、
全くの個人使用なら色で判断するってのはそう悪いアプローチでもないと思う

autohotkeyとかでできそうだけど
2017/05/21(日) 02:12:38.30ID:05HcF/fB
複数valueを登録できるdictionaryはありますか?
2017/05/21(日) 02:16:03.09ID:qWUTGHFA
Dictionary<T0, Tupple<T1,T2 ・・・>>
2017/05/21(日) 02:19:36.59ID:qWUTGHFA
TuppleじゃなくてTupleだった失礼
2017/05/21(日) 03:21:47.56ID:+4cTOAW1
Lookup
2017/05/21(日) 12:44:06.39ID:05HcF/fB
>>356
tupleを活用する事で可能なんですね。
ありがとう、試してみます。
2017/05/21(日) 13:01:14.66ID:JJ83HkpI
タプルをコレクションに入れるのはバグの温床
dynamicに匿名型突っ込む方がまだマシ
2017/05/21(日) 13:18:52.22ID:01kZhcWn
>>360
どんなバグが出るんですか?
2017/05/21(日) 14:51:50.29ID:jNq5R9xb
妙な小細工するより素直に複数の値の入れ物の型を定義した方が
分かりやすく使いやすいと思うけど
2017/05/21(日) 15:27:42.93ID:tsOaukBL
個人的には普通に格納用クラス作ったほうがいいと思うけどね
2017/05/21(日) 17:07:27.54ID:JJ83HkpI
>>361
要素を取り違えるバグだね
入れてるところまで遡らないと何番目の要素が何を意味するのか分からない
個人的には、タプルは即座に要素をバラして変数に展開するべきで
タプル型の変数やコレクションは決して使ってはいけない
2017/05/21(日) 17:32:54.07ID:bjY9GTUB
ごく短期間なスコープでならタプルも便利だけどね
2017/05/21(日) 17:35:37.21ID:mFXnnnZ/
タプルを単一の値としてコレクションや変数に入れたことによる要素の取り違えに起因するバグはPythonだとよくある
C#7.0のタプルはその問題点を考慮して要素にラベルを付けられるようになってるね
2017/05/21(日) 18:46:01.80ID:eq83iLnZ
絶滅危惧種だとは思うけど、コードレベルの設計書が必要な人達って未だいるんだね (´・ω・`)
2017/05/21(日) 19:01:05.84ID:JJ83HkpI
普通にいるだろ
ていうかそういう奴はどれだけ詳細なコード設計を渡してもそれだけではコード書けなくて、
必ず類似したプログラムをサンプルとして渡してコピペさせてやる必要がある
2017/05/21(日) 19:09:16.32ID:8zMWeNzv
横着しないでマシな人を雇った方がいいですよ…
370デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:12:49.79ID:/dC0YVGz
新米ってどこにでも居るけどな
2017/05/21(日) 19:13:25.76ID:iRCfL5dm
>>367
こう言う時ってどうしてる?
自分でコード書くのが正解なんだろうけど下流の仕事奪うとそれはそれで面倒な展開になる
372デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:16:10.49ID:/dC0YVGz
仕様教えてテスト計画書作成してもらう
2017/05/21(日) 19:24:32.38ID:mFXnnnZ/
>>370
新米なら教えてやろうという気にもなるけど、それがベテランコボラーだったりするんだよな
2017/05/21(日) 19:29:36.65ID:05HcF/fB
コードレビューって険悪な雰囲気になりませんか?
2017/05/21(日) 21:41:22.20ID:lJj1Wn7F
>>374
仕様を満たしてるかどうかと規約に違反してないかだけだろう
あとごくたまにどっかから拾ってきたオープンソースだとかどう見ても怪しいライブラリとか勝手に使おうとするアフォな人がいる
だいたい調べるとGPLとかGNUとかだったりする
オープンソースじゃねぇって言ってるだろwと
文化がわからないな
2017/05/21(日) 21:44:33.64ID:QuEQrH88
>>375
それを、「レビュー」するの?
そんなのレビュー以前の話だと思うけど
2017/05/21(日) 21:51:26.71ID:lJj1Wn7F
>>376
うーんでも見張ってないと入れるんだこれが
逆にどこでチェックするの?
378324
垢版 |
2017/05/21(日) 21:52:59.76ID:w3qiO5bj
マ板でやれよ。業界談義をここでやるな
379デフォルトの名無しさん
垢版 |
2017/05/21(日) 21:57:45.31ID:Oz98oGI1
async/awaitですが、.NET FW4.0でも使えるみたいなのですが、使い方的に何か違いがあるのでしょうか。また使うにはどうしたらいいのでしょうか。
2017/05/21(日) 22:00:04.23ID:01kZhcWn
>>379
君は何がしたいん?
2017/05/21(日) 22:02:21.29ID:8VZiX6Z0
言語と.netは違います。
.net4でC#5を使うことは可能です。
何ら問題もないです。
使用するクラスが.net4で使えるかどうかを気を付けませう。
2017/05/21(日) 22:12:23.12ID:yzY+yVHd
>>379
nugetでMicrosoft Async(Microsoft.Bcl.Async)をインストールする。
.Net4.5以降でTaskクラスにある一部のメソッドがTaskExクラスにあるらしい。
2017/05/21(日) 22:17:05.82ID:lJj1Wn7F
>>378
いいや、ここがちょうどいいと思う
ちょっと前にLivetとかPrismとか勝手に使われて
品証からストップされて納期前に大変な事になった
初心者スレでこそ警笛を鳴らしたい
勝手に使わないでね
こういうの大抵駄目だから
2017/05/21(日) 22:22:11.46ID:bjY9GTUB
>>383
>>1を読め
これ以上のスレチは荒らしだぞ

>「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
>他のスレッドでは書き込めないような低レベルな質問、
>質問者自身なんだか意味がよく分からない質問、
>ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
2017/05/21(日) 22:25:21.88ID:iRCfL5dm
>>377
そんなもん自動化しろよ
人間はもっとクリエイティブな仕事をしないと金もらえないよ
2017/05/21(日) 22:28:27.09ID:sSTv/YxK
>>383
Prismの何がだめなの?
387デフォルトの名無しさん
垢版 |
2017/05/21(日) 22:31:32.33ID:Oz98oGI1
>>380-382
ありがとうございます
>>380
.NET4でシンプルな非同期処理やりたいだけです
>>382
それを確かどこかで見かけました
使用するにあたって特に問題ないのですね
試してみます
2017/05/21(日) 22:46:05.61ID:lJj1Wn7F
>>386
品証は駄目って判断したねぇ

なんでもこれ使ってるってどっかに使ってるって記述しないといけなくてお客さんのアプリだから駄目って結論になったらしい
まあ、こういうの大抵駄目だから今更驚かんが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況