1 名前:デフォルトの名無しさん [2017/11/07(火) 21:11:25.20 ID:LeQqgpmT0.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part132 mevius.5ch.net/test/read.cgi/tech/1507543256/ ■関連スレ C#, C♯, C#相談室 Part95 mevius.5ch.net/test/read.cgi/tech/1508180530/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源https://msdn.microsoft.com/ja-jp/library/gg145045.aspx https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
120 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 21:30:27.85 ID:FW67Xhhd0.net] >>117 使ったことは無いんだがDbProviderFactoriesと言うものが.NETにはあったはず。この車輪では駄目なのか。
121 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 22:11:54.82 ID:TNtSkVmZ0.net] >>102 そりゃ当たり前だよね。 究極の無能相手に、伝わるように、過不足ないように、なにより丁寧に仕事内容を説明するお仕事だもんね。PG って。
122 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 22:33:07.07 ID:LU0qlDNZ0.net] >>121 というか、自然言語に置き換えられないプログラム書くやつはクソってだけだろ
123 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 22:39:04.35 ID:r1EKDs0n0.net] >>120 こういう関数もあるのですね、ありがとうございます 調べましたがどこまでの範囲で接続に使えるか分からないので今回は見送ろうかと思います 参考サイトは多い感じなので便利な機能そうでした DBと書きましたがcsvやExcelといったものからも取得を考慮していました 少し仕様説明が足りてませんでしたね・・・
124 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 01:15:25.26 ID:n0dr1tl2a.net] APIを使用したファイル変換の変換状況を知るために自作メソッドのGetStatus()をSystem.Timers.TimerのElapsedイベントに設定して200msecごとに状況を取得することができました。 その変換を繰り返し行う際、そのタイマーのイベントが発生している時でも次のファイル変換を実行してしまいます。GetStatus()で変換終了判定が出た場合(Timer.Enabled=falseのあと)に次のファイル変換を行うようにしたいのですが、どのようにしたらいいでしょうか?
125 名前:デフォルトの名無しさん [2017/11/12(日) 01:22:00.64 ID:bU5Cj3UO0.net] タイマーイベントのイベントハンドラの最初の行でEnableをFalseにして処理が終わったところでEnableをTrueにする
126 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 01:29:01.06 ID:n0dr1tl2a.net] >>125 早速ありがとうございます。 今実行環境がないので後ほど試してみます。 ちなみにその記述ではどのような挙動をするのでしょうか?
127 名前:デフォルトの名無しさん [2017/11/12(日) 01:37:54.98 ID:bU5Cj3UO0.net] すまん。質問をよく理解してなかった
128 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 02:38:51.64 ID:A0+Crtura.net] >>124 正直、何を言ってるのかさっぱり分からないし、それが俺の読解力のせいだと思えないw その変換とやらを実行するクラスなりメソッドなりが、 現状、一つのファイルの変換が終わると次のファイルの変換を自動的に始める 仕様になっているんだと思うが、それを自動から
129 名前:手動、つまり外から明示的に メソッドを呼ぶなり特定のプロパティの値を変えるなりしないと次のファイルの変換が 始まらないように変えるだけのことじゃないの? [] [ここ壊れてます]
130 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 03:36:00.42 ID:WcVSvCUs0.net] >>96 自動翻訳がこれだけ発展してる中で何時代錯誤な事いってんのw センスないよ
131 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 03:40:18.24 ID:SMejQ9Z40.net] MSの日本語ドキュメントなんて機械翻訳だらけなのにな
132 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 04:18:09.89 ID:n0dr1tl2a.net] >>127 >>128 下手な文ですみません TimerのElapsedで指定したイベントが発生中は次の処理をせずに、Timer.Enabled=falseになってから次の処理を実行するものだと思っていたんです >>128 さんの言うように変換終了判定の場合にプロパティかフラグを立ててそれを監視?するようにしてみます
133 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 06:39:56.32 ID:MOg5phwx0.net] >>129-130 今の自動翻訳だと結局原文参照にいくことも多々あるんだが... なんのためにカーソル置くと原文表示するようにしてるのかも理解してないのかよ w すごくウザイから設定で表示しないようにして欲しいが
134 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 07:05:10.05 ID:m6spCiOt0.net] 機械翻訳はありゃいいってものじゃない また宇宙天啓データベースG2と断続的な絞首刑が発生するぞ
135 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 07:20:55.29 ID:cRgWk2Y70.net] 最近、プログラミングの腕をそれ以外に求めてる奴が暴れててウザイ 英語ができたからなんだってんだよ くだんねーアプリしか作れないからくだんねーこと気になるんだぞお前
136 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 07:49:13.63 ID:e5xLDhIK0.net] >>123 >DBと書きましたがcsvやExcelといったものからも取得を考慮していました 世の中には、ODBCと言うものがあって、odbc excel driverとかodbc text driver や他のdbも使える つ ?System.Data.Odbc.OdbcConnection
137 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 07:52:10.55 ID:OnRpH+1DM.net] >>134 コンプレックス丸出しだな ドカタから出て自社プロダクト系とか行ったらC#でも日本語ドキュメントのないライブラリもバリバリ使うぞ
138 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 08:09:08.06 ID:e5xLDhIK0.net] >>131 ややこしいことにc#(.net)には4つもタイマークラスがあったりする。 おそらく、System.Timers.TimerのSynchronizingObjectを使えば良いと思うけど 親切な人が解説してくれている。 takachan.hatenablog.com/entry/2017/09/09/225342
139 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 08:12:32.88 ID:e5xLDhIK0.net] >>136 nugetのライブラリで日本語ドキュメントがある方が稀だからね。
140 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 08:31:08.16 ID:RZNIwvSqr.net] いわゆるドカタとそれ以外で認識の隔たりがかなりあると思う
141 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 08:52:42.69 ID:OnRpH+1DM.net] ドカタ系にいたときもわりとアメリカの新しいパッケージや製品を使う仕事してたが 専門卒の委託のメンバー達はITスキルはあるのに英語が読めなくて全然仕事できなくて不憫だったわ 英語ができないと国内でも後追いになっちゃう
142 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:02:42.68 ID:iF3ntH//0.net] スレタイ
143 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:20:22.95 ID:cRgWk2Y70.net] >>136 だからなんだよ テメーみてーな発達障害持ってなきゃ英語なんか読めなくてもマニュアルのいみぐれーわかんだよバーカ 英語読めるからぼくちゃんのプログラミングの腕も確かでチュよ褒めてって? 気持ち悪ぃんだよさっさとくたばれガイジ
144 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:31:42.36 ID:Y9bMvc7C0.net] 共倒れで丸く収まりましたね
145 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 09:33:07.24 ID:ArqlQl8r0.net] マ板でやれ
146 名前:デフォルトの名無しさん [2017/11/12(日) 11:02:16.46 ID:7vMgKcBHd.net] >>142 どんだけコンプレックスあるの
147 名前:デフォルトの名無しさん [2017/11/12(日) 11:21:03.88 ID:V8vWJYoP0.net] マ板並みの見苦しさ
148 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:27:55.80 ID:/Gc52cuR0.net] tercel-tech.hatenablog.com/entry/2015/04/29/181723 こちらの方のコードを参考に電卓の自動化を試みてるのですが、 mainForm = AutomationElement.FromHandle(process.MainWindowHandle); のところでエラーが出ます。 型 'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました 追加情報:プロセスは終了しているため、要求された情報は利用できません。 何が原因でしょうか?
149 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:34:37.51 ID:a3dJlCt1a.net] >>147 そのページの同じコード動かしてそうなるのか? メッセージだと電卓が終了してると言ってるけど
150 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:41:43.01 ID:VwNKZEQ+0.net] >>147 電卓("calc")が起動しているか デバッガでprocessがnullになっていないか をそれぞれ確認 全部こっちで確かめるのはめんどうなので例えば Thread.Sleep(DEFAULT_WAIT_TIME); の部分を while(process=null){Thread.Sleep(DEFAULT_WAIT_TIME);} と書き換えてみるとか。いい加減な方法だからデバッグ時以外に勧めないが
151 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:44:54.16 ID:VwNKZEQ+0.net] ヤバい while(process==null){Thread.Sleep(DEFAULT_WAIT_TIME);} だったw
152 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 11:52:22.18 ID:/Gc52cuR0.net] 自分の環境はwin10で以前までと仕様が違いますよね。 それが原因かもしれません。 電卓のウィンドウハンドルを直接指定してやったら正常に動きました。 ここの方は親切ですね^^ 頑張りたいと思います。
153 名前:デフォルトの名無しさん [2017/11/12(日) 12:15:13.20 ID:j8Tzb3u50.net] 実行してもフォームが固まらないアプリって全部にDoEventsが入ってるわけなん? メッセージキューは排他のために処理待ちになるん
154 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:21:08.98 ID:WcVSvCUs0.net] >>152 非同期処理してるだけだろw
155 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:23:38.91 ID:SMejQ9Z40.net] >>152 重い処理は別タスク(スレッド)を作って、UIから分離する。
156 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 12:26:44.13 ID:ArqlQl8r0.net] そいつ金曜日のキチガイだぞ
157 名前:デフォルトの名無しさん [2017/11/12(日) 13:00:56.85 ID:j8Tzb3u50.net] >>154 さんきゅ
158 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 13:40:23.32 ID:Y9bMvc7C0.net] キチガイばっかりじゃねーか!
159 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:51:20.87 ID:/Gc52cuR0.net] c++ void __stdcall systemcall(string passbuf,bool wait_flag) c♯ [DllImport("sample.dll", CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] private extern static int systemcall(string passbuf,bool wait_flag); これで systemcall("dir", true); 保護されていないメモリがどうの出てエラーになりますが何がいけないのでしょうか?
160 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:54:28.47 ID:Y9bMvc7C0.net] 戻り値
161 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 14:54:56.10 ID:/Gc52cuR0.net] c♯側のvoidがintになってましたが記述ミスです>< エラー内容は正確には ハンドルされていない例外: System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとし ました。他のメモリが壊れていることが考えられます。
162 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 15:01:26.20 ID:zx9GAR9XM.net] std::stringはマーシャリングできない C++側でchar*を受け取るラッパーを用意してやる必要がある C++/CLIもあるけど完全に死んだ技術だからお勧めできない
163 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 15:09:12.05 ID:e5xLDhIK0.net] >>161 >C++/CLIもあるけど完全に死んだ技術だからお勧めできない 死亡宣言されてるの?
164 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:07:08.00 ID:74EZy0fea.net] >>162 確かそうだよ メンテナンスされてないから使うなって言われてる
165 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:00:59.99 ID:ZC7erpT70.net] >>163 C++/CLIの件 たまに使うから気になる ソースか検索キーワードプリーズ
166 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:26:13.27 ID:/VKzDrV00.net] フォームアプリの新規作成は推奨しないってアナウンスはあるんで、それのことじゃないかな。 https://support2.microsoft.com/kb/3001686 C++/CLIそのものはまだサポートされてると思う。廃止されたのはマネージ拡張。 マネージ拡張からC++/CLIへの移行ドキュメントとか、比較的最近の日付でメンテナンスされてるし。
167 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:32:26.38 ID:ZC7erpT70.net] >>165 ありがとう フォームアプリで使うな、なら納得
168 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 18:59:33.96 ID:yKCfx7dw0.net] C++/CLI捨てるわけねーだろ
169 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:11:39.89 ID:MOg5phwx0.net] >>167 むしろ維持する意味がわからんが w
170 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:29:05.48 ID:e5xLDhIK0.net] >>168 c/c++のライブラリをラッピングするためにある。
171 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:30:38.51 ID:j0JK3
] [ここ壊れてます]
172 名前:XOeM.net mailto: http使ったほうがいいよ 今はもうネイティヴコールする時代じゃない [] [ここ壊れてます]
173 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:35:01.10 ID:MOg5phwx0.net] >>169 別にC++/CLIなんて要らんだろ
174 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:40:46.39 ID:/VKzDrV00.net] C++/CLIって、なぜか使ったことなさそうな人にやたら叩かれるよねぇ。 自分に必要なけりゃスルーしとけばいいのに、わざわざ「要らない」アピールするのが謎だ。
175 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:55:44.38 ID:MOg5phwx0.net] >>172 ん? 人の意見を聞きたくないなら掲示板なんて見なきゃいいと思うぞ
176 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:56:59.33 ID:Y9bMvc7C0.net] >>172 こういうアピールしちゃうのも謎だよね
177 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:01:12.65 ID:yKCfx7dw0.net] >>171 今からの世代はいらないかも知れないが、今までの世代は必要なんだわ。 過去遺産の再利用でしかないがね
178 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:14:47.79 ID:MOg5phwx0.net] >>175 だからMSも力入れてない(2008の時代はインテリセンスすら使えなかった)し、そろそろ打ち止めってことかと
179 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:25:03.86 ID:e5xLDhIK0.net] >>170 ApacheもNginxもGoogle V8もLinuxもc言語なんだが。 サーバサイドのサービスもc言語のもあるだろ。
180 名前:デフォルトの名無しさん [2017/11/12(日) 20:32:44.51 ID:bU5Cj3UO0.net] >>170 急に飛躍しすぎ
181 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:41:06.51 ID:3TYzHs9Ed.net] >>177 過去のもの過ぎwww「今」の話題にそれはどうかと思うぞ
182 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 20:52:36.78 ID:e5xLDhIK0.net] >>179 そうか、NginxもGoogle V8も過去のものなのか 時代は変わったな。
183 名前:デフォルトの名無しさん [2017/11/12(日) 21:09:15.54 ID:H0u2BwIs0.net] まあ最新技術はPythonやPHPで実装される時代だしな。
184 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 21:32:32.26 ID:j0JK3XOeM.net] >>177 dotnet関係ないじゃん Cが要らないんじゃない 相互運用が要らない
185 名前:デフォルトの名無しさん [2017/11/12(日) 21:44:46.58 ID:H0u2BwIs0.net] いや、Cは要らないだろ。 Pythonが有れば何でもできる。
186 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 21:47:59.87 ID:VOtI22LEa.net] ダーッ って猪木かっ
187 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:11:19.90 ID:BZnXPKY7d.net] 0以上10未満のdouble値の乱数5個標準出力したい
188 名前:デフォルトの名無しさん [2017/11/12(日) 22:14:51.64 ID:uWcm4jWJ0.net] String testid= "ABCD" + ".text"; このABCD.textっていう中身は"テスト"っていう文字列が入ってるとします。 でも、testidの中には”ABCD.text"が設定されるのですが、 どうすれば"テスト"という値が入るのでしょうか。 ABCD.textはtextviewで"テスト"という文字をあらかじめ設定しています。
189 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:29:14.34 ID:Y9bMvc7C0.net] stringの識別子名を中身に変換したいって? そんな方法はないです
190 名前:186 [2017/11/12(日) 22:34:55.34 ID:uWcm4jWJ0.net] 下記の引数でアクセスすると、上記は期待値が入るのですが、 下記のtestidを指定するとおもった結果となりません。 しかし、ABCD.textといった風に直接指定するのではなく変数か何かで間接的に指定したいと思っております。 関数(ABCD.text); 関数(testid);
191 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:36:08.48 ID:Y9bMvc7C0.net] デリゲートを渡すのはどうか
192 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:37:37.16 ID:aoPluejS0.net] >>188 テキストボックスを変数みたいに扱いたいって言ってるのか?
193 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:42:23.71 ID:aoPluejS0.net] c#だとポインタなくなったから んなことできないんだよね
194 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:52:01.90 ID:VOtI22LEa.net] 何言ってるのかさっぱり分からんw ABCD.textって何ぞねw
195 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:53:27.72 ID:aoPluejS0.net] >>192 多分テキストボックスのtextプロパティ
196 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 22:56:45.91 ID:Y9bMvc7C0.net] ABCDというidが付けられたTextView(Xamarin/Androidのlabel) のtextプロパティに"テスト"という文字列が設定されている これを何らかの方法で文字列で指定して取りたい
197 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:00:49.49 ID:VOtI22LEa.net] >>193 なるほどww 言語能力とプログラミング能力に関連があるって考えに俺は懐疑的だったけど やっぱり関係が深いのかもしれないねw
198 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:04:37.50 ID:aoPluejS0.net] >>194 無理じゃね? 本当は何がやりたいん?
199 名前:デフォルトの名無しさん [2017/11/12(日) 23:17:26.10 ID:bU5Cj3UO0.net] >>194 ググればすぐでてくる https://qiita.com/tokishirazu/items/66a25331d4c78980366e
200 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:25:24.74 ID:eFe5AqQqM.net] >>197 やめろ 糞プログラマが量産される
201 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:36:13.84 ID:WcVSvCUs0.net] >>195 それを理解するには十分な例だったなw
202 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:37:57.60 ID:eFe5AqQqM.net] >>186 "ABCD" + ".text"してるなら testidの中身はやはり "ABCD.text"です ただの文字列です それが勝手に”テスト”になってたら怖いし不便です プログラムしてて予測がつきませんので"ABCD.text"のままでいるほうが安心です "ABCD.text"からABCD.textにできる言語もありますが C#は基本的にそういうのはやらない方向でプログラムするべきです
203 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:09:08.69 ID:rsYvFHCwr.net] 全然推測できんw まさかこう言う事? string testid= ABCD.text;
204 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:11:27.37 ID:nr7xz/FC0.net] ダックタイピングする言語じゃないからね
205 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:25:51.01 ID:KiX40CjjM.net] >>188 変数に入れたいならtextview型の変数を作っておいてそこに入れよう textview target = ABCD; 関数(target.text);
206 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:26:26.95 ID:rsYvFHCwr.net] ? string testid = File.ReadLines("ABCD.text"); ????
207 名前:デフォルトの名無しさん [2017/11/13(月) 00:31:47.43 ID:sn+CO+UA0.net] >>186 String testid= "ABCD" + ".text"; じゃなくて String testid=ABCD.text;
208 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 00:36:09.38 ID:KiX40CjjM.net] 脳のテストみたいだな 理解できるものだけ理解してる 出来ない人は変なレスしてる
209 名前:デフォルトの名無しさん [2017/11/13(月) 00:38:07.10 ID:sn+CO+UA0.net] 答えはリフレクションだろ?
210 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 01:06:43.08 ID:8PrajDy/0.net] 初心者がやりたがることとしては定番だろう そんなに意外性はない
211 名前:デフォルトの名無しさん [2017/11/13(月) 01:41:09.93 ID:v8HXsfBj0.net] >>208 は?
212 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 02:07:05.43 ID:c1Jq4ATj0.net] >>185 var rand = new Random(); for (var i = 0; i < 5; i++) Console.WriteLine(rand.NextDouble() * 10.0);
213 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 12:29:38.53 ID:JPipM5yVd.net] Controls.OfType<TextBox>().First(c => c.Name == "ABCD").Text
214 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 16:41:04.48 ID:KG3ltkXj0.net] 昨日DLLについて質問したものです。 おかげさまでとりあえずやりたいことが実現できました。 C♯からも呼び出せるマクロです^^ 電卓とメモ帳を自動操作 fast-uploader.com/file/7066114303960/
215 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:00:21.29 ID:5C1yWWLzM.net] parallelの中で更にparallelするとどうなりますか?
216 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:19:10.80 ID:3aIhrZk00.net] CPUの数だけでパラってあとは順番待ち?
217 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 17:48:55.95 ID:c1Jq4ATj0.net] 超Parallelになる
218 名前:デフォルトの名無しさん [2017/11/13(月) 18:28:32.97 ID:SvVWerXL0.net] プリミティブな配列 例えばstring[]とかってシリアライズ出来ましたっけ?
219 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 19:09:21.17 ID:M6weAJAZM.net] どんなシリアライザ使うのかもわからんのに答えようがないが まあそれをシリアライズできないシリアライザはまずないだろうな
220 名前:デフォルトの名無しさん [2017/11/13(月) 20:26:35.00 ID:WRqgiOAAd.net] >>188 致命的に
221 名前:説明が下手か何も理解してないかのどっちかだと思う 下手に一般化するより今書いてるコードにコメント書いてそのまま晒した方がマシ [] [ここ壊れてます]
222 名前:デフォルトの名無しさん [2017/11/13(月) 21:09:23.39 ID:K5+qKqcP0.net] >>217 ありがとうございます
223 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:18:38.99 ID:hP7f8JAdd.net] asynctaskの中でhttpによるデータ取得して取得したデータを戻り値で返す処理を作成しました。 同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが、どのようにすればよいでしょうか? 戻り値が2つできないので困っております。又、戻り値の型は違います。
224 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:22:56.43 ID:9NHQYSXO0.net] >>220 その2つをプロパティとして持つ型をつくる
225 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:23:06.80 ID:qa5qRZI10.net] >>220 戻り値二種のValueTuple返せば良いんじゃないの
226 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:32:13.09 ID:3DwKtl+Id.net] >>222 WebAPIっぽいし、Tupleだとシリアライズした時にItem1、Item2ってなっちゃわない?
227 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:33:28.45 ID:3DwKtl+Id.net] あ、読み違えてたかもゴメン
228 名前:デフォルトの名無しさん [2017/11/13(月) 21:38:36.94 ID:sn+CO+UA0.net] >>220 エラーオブジェクトに応答とその他情報突っ込んでthrow
229 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 22:01:26.37 ID:qSvbvuzsa.net] >>220 こんな型でも返しますかw public class FunctionResult<T> { public FunctionResult(T val) { Value = val; } public FunctionResult(Exception ex) { Exception = ex; } public bool HasValue { get { return Exception != null; } } private T _Value; public T Value { get { if (!HasValue) throw new InvalidOperationException(); return _Value; } private set { _Value = value; } } public Exception Exception { get; private set; } }
230 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 23:32:00.25 ID:1k/7dsAB0.net] >>220 >同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが 例外throwすれば良いだけでは?
231 名前:220 mailto:sage [2017/11/14(火) 01:18:02.74 ID:Rbk2zOBm0.net] 正常時は別の戻り値、異常時はthrow?で戻り値の型に合った内容が、 格納されるのでしょうか。 呼び出し元で、どのように取り出せばよいのでしょうか。
232 名前:デフォルトの名無しさん [2017/11/14(火) 01:28:44.28 ID:Xx2aI1jk0.net] >>228 エラー処理で検索
233 名前:228 mailto:sage [2017/11/14(火) 01:36:41.11 ID:Rbk2zOBm0.net] いろいろお教えいただいているのですが、 www.nowonbun.com/2016/06/c-trycatchthrowfinally.html#! ↑のようなHPとかthrow とかエラー処理で検索しても 戻り値に入れて、それを呼び出し元でどのように見ているのかいくら探してもでてきません。。 try,catchとかでコンソールにエラー内容出力のことではないですよね。。
234 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:36:47.07 ID:sw4py9T60.net] 「c# 例外」で検索!
235 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:43:50.50 ID:sw4py9T60.net] 例外と例外処理 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/index try 内で、throw すれば、catch で補足できる。 throw した例外クラスが、catch の引数に渡ってくる。 以下の e catch (例外クラス e)
236 名前:デフォルトの名無しさん [2017/11/14(火) 01:44:37.90 ID:Xx2aI1jk0.net] 関数内で例外をキャッチして新しくException オブジェクト作ってそのInner Exception にキャッチした例外オブジェクトを突っ込んで作った例外オブジェクトのDataプロパティに返したたいデータ突っ込む それをthrowして呼び出し元でキャッチしてDataプロパティから取り出す
237 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:54:03.16 ID:KYSlLmBD0.net] >>233 新しくExceptionオブジェクト作るなアホか
238 名前:228 [2017/11/14(火) 01:59:34.75 ID:Rbk2zOBm0.net] 皆さまありがとうございます。いまださっぱりわからないので出直してきます。。 ありがとうございました。 try catchでcatchのとこにエラー情報が入る?まではわかったきがするのですが、 再スローとかInnerExceptionになるとさっぱりでした。 下位の呼び出し先のエラー情報を上位の呼び出し元にthrowすれば戻り値関係なく渡せるといった感じなのでしょうか。。 サイトみててもそうはどうやってもみえなかったのです。
239 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:08:30.45 ID:n7fEU+IFd.net] >>233 意図的にExceptionのインスタンスを作ってスローするのは間違い SystemExceptionやNullReferenceException、IndexOutOfRangeExceptionも同様
240 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:11:41.66 ID:L0+XEUiLa.net] 悪口言うつもりはないけど例外の使い方も知らないのに非同期に手を出すとか 順番がおかしいと思うw
241 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:12:51.73 ID:L0+XEUiLa.net] >>236 そんなのケースバイケースでしょう。 一概に間違いだとする理由がない。 そういうのを教条主義という
242 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:17:16.73 ID:VqdZ1M78d.net] >>238 Microsoft自身がやめろって言ってんのに、わざわざそれに反することをするのはアホ
243 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:18:50.68 ID:KYSlLmBD0.net] >>238 c#の例外について少しでもかじったことがあるのならば、アンチパターンだと知ってるはず
244 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:20:03.11 ID:L0+XEUiLa.net] >>239 そんなこと言ってる? 言うわけないと思うが仮にそうでも合理性がなければ従う理由もない。 「なぜ」を問わずに盲従する奴こそアホだ
245 名前:デフォルトの名無しさん [2017/11/14(火) 02:22:37.27 ID:Xx2aI1jk0.net] >>236 どういうこと? Exception派生クラスの中から適切なものを選ぶってこと? それともキャッチした例外オブジェクトにデータを付加するの?
246 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:24:17.15 ID:NHaW+CLNd.net] >>241 基本中の基本https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/creating-and-throwing-exceptions
247 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:25:47.16 ID:KYSlLmBD0.net] >>241 なぜ言うわけ無いと思ったのか説明してごらん
248 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:26:51.36 ID:L0+XEUiLa.net] >>243 そんなことどこにも書いてないどころか>>233 と同じことをやってる例が出てるけどw 本当にちゃんと読んだ?w
249 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:27:34.33 ID:L0+XEUiLa.net] >>244 現に言ってないねw >>243 をちゃんと読んでごらん そんなことどこにも書いてない
250 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:31:42.57 ID:WLqSYvBrd.net] >>245 ちゃんと読めよカスwww >自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。
251 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:32:24.83 ID:KYSlLmBD0.net] >>246 日本語のドキュメントなのに読めないとか
252 名前:デフォルトの名無しさん [2017/11/14(火) 02:33:31.14 ID:Xx2aI1jk0.net] なんでスップ2つ+固定回線で自演してるの?
253 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:34:47.54 ID:L0+XEUiLa.net] >>247 言っちゃわるいけど、君の読解力がおかしいことはよくわかった。 その一文のどこをどう呼んでもキャッチした例外をInnerExceptionに入れて 別の例外を投げてはいけない、などという意味には読めません
254 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:36:25.31 ID:WLqSYvBrd.net] >>250 読解力がないのはお前。否定してるのはExceptionクラスのインスタンスをnewしていること。
255 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:38:38.93 ID:L0+XEUiLa.net] しかし、 >自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。 これ、前者2つがダメな理由は分かるけど後者2つはかなり意味不明だね。 翻訳ミスを疑ったけど英語でもそうなってる。 これはさすがに盲従する奴はアホだと思う
256 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:40:17.14 ID:WLqSYvBrd.net] >>252 本気で言ってる?同じ疑問を持つ人はいるみたいだから少しググれば出てくるけど https://stackoverflow.com/questions/22453650/why-are-we-not-to-throw-these-exceptions
257 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:41:11.99 ID:L0+XEUiLa.net] >>251 普通に読めば>>233 に出てくるExceptionとは限定的にExceptionクラスだけを 指しているとは読めない
258 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:45:47.13 ID:WLqSYvBrd.net] >>254 あんな質問してくる初心者に「新しくExceptionオブジェクト作って」と言えば、「new Exception()」するだろうよ ところで、>>253 を少しは読んだのかい?
259 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:46:50.86 ID:L0+XEUiLa.net] >>253 なるほど、NullReferenceExceptionの方は一応回答者が理由出してるけど もっと明示的な例外の方が良いから使うなというには弱いように感じるね。 IndexOutOfRangeException の方は使っちゃダメな理由出てないね
260 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:47:11.28 ID:KYSlLmBD0.net] >>254 勉強になって良かったね
261 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:47:35.87 ID:L0+XEUiLa.net] >>255 それ、じゃあ自分なら何て表現するか考えてから言ってる?
262 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:48:14.13 ID:L0+XEUiLa.net] >>257 「よっしゃ、今日はこのぐらいにしといたるわ」 by 池乃めだか
263 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:48:46.66 ID:WLqSYvBrd.net] >>256 出てるからちゃんと読みなさい
264 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:49:29.79 ID:L0+XEUiLa.net] >>260 出てないって 出てるなら引用してみ
265 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:50:04.51 ID:WLqSYvBrd.net] >>261 煽って探してもらおうとするクズ
266 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:50:53.16 ID:KYSlLmBD0.net] >>256 ほんとドキュメント読めない人なのね
267 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:56:20.70 ID:L0+XEUiLa.net] >>263 君、そういうくだらないレスしかできない自分が嫌にならないの? 絵に描いたような「精神勝利法」だけど、そんなので勝った気になれるって小学生かよ。 俺ならプライドがあるからやらないけど、きっと傷つくような自尊心なんて最初から持ってないんだね
268 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 02:59:16.44 ID:KYSlLmBD0.net] >>264 初心者ならもっと謙虚になりなさい
269 名前:デフォルトの名無しさん [2017/11/14(火) 05:35:40.63 ID:e8+qL+KH0.net] >>264 久々にみた気持ちの良いブーメラン 親切に教えてもらっても意固地になる人って職場にも一人はいるよね
270 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 06:55:43.62 ID:sSxxq2Sz0.net] 例外処理が難しすぎるのか例外処理を分かってないヤツが多すぎる。 Go言語が例外処理を言語仕様からはずしたのも納得できるな。
271 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 06:57:50.52 ID:sSxxq2Sz0.net] >>237 非同期とか使わないでも実装出来るものを非同期にするとか ロックの仕組みも分かってないのにスレッド使うとか スキルの無いヤツほど難しい事をやりたがるwww
272 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 07:11:13.47 ID:R9xQaEyZM.net] プロパティだけのデータストア用インナークラスを作ってるんですけど、クラスの修飾子をprotectedにして中のプロパティをpudlicにしています メンバの方がアクセス権が広い事に違和感を感じるのですが世間様ではある事なのでしょうか
273 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 07:41:12.60 ID:kBR8KFzeM.net] >>269 クラスもパブリックにしよう!
274 名前:デフォルトの名無しさん [2017/11/14(火) 08:09:47.71 ID:sF+2jjEu0.net] >>267 おまえなら>>220 にどう対処する?
275 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 08:27:49.82 ID:04qZtOw+0.net] >>269 クラスがprivateの場合はメンバの方を広くするしかないんだからそれ自体はおかしくない クラスがinternalでメンバがpublicというのはよくある でもprotectedな内部クラスというのはそもそもあまり一般的ではないと思う クラスの外にその内部クラスを使うユーティリティを定義したくなったらどうする? 紛らわしくて不便なだけで特にメリットがない
276 名前:272 mailto:sage [2017/11/14(火) 08:29:03.55 ID:04qZtOw+0.net] 補足 (派生クラスを作ろうとした人が)クラスの外にその内部クラスを使うユーティリティを定義したくなったらどうする? という意味な
277 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 08:49:01.70 ID:bKDw6GK5M.net] >>271 おそらく、HttpClientを使ってるんだろうけど async/awaitの例外処理には罠がありそうなので グーグル先生にお伺いをして慎重に例外処理を使う。
278 名前:デフォルトの名無しさん [2017/11/14(火) 09:09:39.51 ID:HdsegbLs6.net] >>274 同期だったとしてどうする?
279 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:10:12.07 ID:ElF9INq6r.net] >>220 HaskellのEither辺りを自分で実装w 探せば出てくるが 今時例外はあまり使わんね 時と場合によるが
280 名前:デフォルトの名無しさん [2017/11/14(火) 09:11:01.60 ID:HdsegbLs6.net] >>276 サーバーに接続出来なかったらどうする?
281 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:13:48.16 ID:ElF9INq6r.net] >>277 接続出来ない旨のLeftを返す
282 名前:デフォルトの名無しさん [2017/11/14(火) 09:15:00.68 ID:HdsegbLs6.net] >>278 レフトとか知らないけど例外でよくね?例外がダメ理由は?
283 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:22:41.57 ID:bKDw6GK5M.net] >>275 敵艦に突っ込んで玉砕だな
284 名前:デフォルトの名無しさん [2017/11/14(火) 09:32:31.86 ID:HdsegbLs6.net] >>280 呼び出し関数内で何かしらのデータを作ったとしてそれはどうやって呼び出し元に伝達する?
285 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:39:13.23 ID:bKDw6GK5M.net] >>281 何のデータの場合?
286 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:40:53.91 ID:/dr35bqC0.net] 暇な奴だ
287 名前:デフォルトの名無しさん [2017/11/14(火) 09:41:26.10 ID:HdsegbLs6.net] >>282 404のレスポンスボディとか
288 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 09:47:33.77 ID:bKDw6GK5M.net] >>284 例外で帰ってくるやつか? そらなら呼び出し元でcatchだね
289 名前:デフォルトの名無しさん [2017/11/14(火) 10:00:57.46 ID:HdsegbLs6.net] 例外処理は汚くなるからイベントハンドラとかみたいな呼び出し階層の最上位にだけに集約させたいってこと?
290 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 10:06:00.72 ID:bKDw6GK5M.net] >>286 汚くさせないためにあるのが例外処理だろ? 例外を放置すりゃ呼び出し最上位まで飛んでいくが。
291 名前:デフォルトの名無しさん [2017/11/14(火) 10:11:37.55 ID:NRM6wS+d0.net] 存在しないリソースを要求するだけで例外を引き起こせるなら。
292 名前:デフォルトの名無しさん [2017/11/14(火) 10:23:21.54 ID:HdsegbLs6.net] >>267 や>>276 が何を言いたいのかわからん
293 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 12:12:12.09 ID:5gpUPtII0.net] >>233 が Exception派生オブジェクト って書いとけばそれで済んだ話だと思うんだが よくもりあがってるな
294 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 12:48:00.23 ID:qGKirkhkd.net] >>290 それもそうだし、あまりのドキュメントを読む能力の無さに吹いたわ
295 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 13:35:30.02 ID:kMJcGUhsM.net] 例外の内容を戻り値で返そうとしていた時点で察するべき
296 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 13:35:49.40 ID:uXnSzNFD0.net] 今月ずっとhResult == IntPtr.Zeroとかresult != 0とか書いてた俺から見れば 例外なんて天国じゃないですか
297 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 13:42:38.82 ID:kMJcGUhsM.net] >>293 その天使を握り潰してリターンで返してエラーハンドリング地獄にしようとしていたのさ。
298 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 13:51:56.33 ID:D89+JmTA0.net] でもファイルが開けないで例外は困る 他のも完全に例外とそうでないのと作った奴との波長が合わないと 仕分けが面倒臭い いっそ握り潰すは結構わかる なんかいい手はるのか?
299 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 13:58:20.49 ID:QAeRXYyyM.net] 開けないという結果を返したいなら戻り値で返せばいいじゃん 例外の詳細が欲しいとか言うなら例外のまま戻ればいいってなる
300 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:04:41.09 ID:kMJcGUhsM.net] >>295 開けないファイルを処理できる場所で例外のキャッチをすれば良いだけだが。
301 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:06:57.33 ID:D89+JmTA0.net] >>297 だから一生懸命例外を仕分けするって話だろ
302 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:08:55.93 ID:kMJcGUhsM.net] >>298 仕分け?
303 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:15:19.28 ID:D89+JmTA0.net] >>299 だから他の奴の作ったクラスの例外にする挙動で気にいらない例外を仕分けする必要があるじゃん アスペ過ぎるだろお前
304 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:17:24.41 ID:RygzRtlR0.net] MSの推奨するasync越しの例外処理はCancellationTokenSource使うやつだろうが可也面倒だわな キャンセルの仕組みを入れるなら、次いでに仕込んでもいいと思うが
305 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:19:11.58 ID:kMJcGUhsM.net] >>300 例外の大半は致命的なエラーだろ メッセージ吐いて落とすだけ 仕分けも糞もないわ
306 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:21:12.02 ID:D89+JmTA0.net] >>299 うんちっちException うんこっこException うんこっここっこException ちんぽっぽException ちんぽっぽちんぽException ちんちんException まんこっこException まんこっこっこException それぞれ挙動を変えたい
307 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:22:20.64 ID:D89+JmTA0.net] >>302 なんでファイルオープンミスったぐらいで致命的なエラーなんだよ 別ファイル指定させろ殺すぞ
308 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:25:29.18 ID:kMJcGUhsM.net] >>304 キャッチしてリカバリ処理しても良いんだよベイベ
309 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:30:28.64 ID:kMJcGUhsM.net] >>303 まんこっこExceptionだけキャッチして あとはゲロ吐きへ
310 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 14:35:59.67 ID:qGKirkhkd.net] >>304 またキチガイかよ
311 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 15:02:33.86 ID:RygzRtlR0.net] 致命的エラーの大半はバグだから、しっかりロガーに記憶センといかんよな
312 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 15:26:53.10 ID:3oyxXo9MM.net] 仕分けです
313 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 15:59:25.26 ID:D89+JmTA0.net] >>308 そんなの組んだやつ次第じゃん テメーのディスプレイに写った顔がキモメンなので例外
314 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 16:03:35.67 ID:D89+JmTA0.net] ところでCsvHelperのCurrentRecord消えてんじゃん たかがCsvでマッピングなんかしねーよ コイツ馬鹿じゃん やっぱり他人の作ったもんなんかゴミだな この程度は自分で作るべきだった
315 名前:デフォルトの名無しさん [2017/11/14(火) 16:05:44.77 ID:HdsegbLs6.net] アスペ
316 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 16:33:33.76 ID:qGKirkhkd.net] そいつ英語読めないアスペ
317 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:10:19.65 ID:kBR8KFzeM.net] 戻り値のあるメソッドでcatchにもreturn入れないとエラーになるんだけど、普通、例外拾った場合、returnにはnullとかいれるの?
318 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:16:49.43 ID:3oyxXo9MM.net] >>314 エラーで戻り値をセット出来ない場合は、 メソッドの中でcatchしないで呼び出し元でcatchする。
319 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:20:01.42 ID:kBR8KFzeM.net] >>315 なるほど、メソッドの外でcatchするんですね。それが定石なんでしょうか?
320 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:33:11.61 ID:3oyxXo9MM.net] >>316 メソッドの中でcatchして例外に対する処理が出来れば、そこでcatchすれば良いし、出来なきゃ呼び出し元でcatchする。呼び出し元で処理出来なけりゃ更に上位の呼び出し元でcatchする。 基本は例外は例外なのでそんなことが起きないようにコーディングする。
321 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:45:16.91 ID:vWcSiHz/0.net] WebにあるMSDNの説明を和文で見る人は、「.NET Framework(current version)」を「.NET Framework 4」に変更して、みたほうが良いかもね。 それでも変な和訳だけど。
322 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 18:04:00.27 ID:gCxVQMlVa.net] >>314 それ、問題設定がおかしい(きつい言い方だけどそれは愚問)だから、 たぶん例外の意味が根本的に分かってないんだと思う。 まず「そもそも例外って何?」ってところからちゃんと理解した方がいいと思う。 理解をパスして定石だかお作法だかを覚えることで乗り切ろうとする態度は危険 それと >戻り値のあるメソッドでcatchにもreturn入れないとエラーになる 間違ってる。 コンパイル通らないのは値を返さない実行パスが存在する場合だけ
323 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 18:31:17.73 ID:rQHwrbmI0.net] >>319 例外処理を理解してないやつってホント多いよ。 c#何年もやってて理解してなとか普通に居るし。
324 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 18:47:46.83 ID:gXgokZ6Md.net] >>320 >>319 も基本的なことを理解してなかったみたいだけどね
325 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 18:59:20.88 ID:ElF9INq6r.net] >>279 ダメでは無いが例外の欠点 上下のやり取りにもあるように例外は扱いが難しく暗黙知が多い (個人的には難しいとは思わんが) 簡単に握り潰せる その関数が例外を出すかどうかはパッと見には解らない 非同期の時どうなるか直感的ではない 今はビジネスロジックのエラーに例外はあんまり使わない もちろんケースバイケース
326 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 19:23:50.29 ID:pfWBpEcAM.net] >>270 インナークラスってそれを持ってるクラスで隠蔽したいからあるものじゃ無いんですか? 知っているだけで用法を知らない事を痛感しました
327 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 19:24:49.61 ID:D89+JmTA0.net] ドキュメント書かない奴に限って ちんぽっぽちんちんException の亜種をたくさん作るんだw ところで CsvHelper GetRecords<dynamic>()で動くだろ死ねよ って温かいレスをもらったが Csvの読み込み程度でこんな翻弄されてるなら やっぱり自分で作った方が安泰かな? NuGet最新取ると概ね動かないぜ
328 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 19:32:20.40 ID:sSxxq2Sz0.net] >>322 Go言語が例外処理を無くしたのは、 ・例外処理を正しく扱えないヤツが余りにも多すぎる ・例外処理は並行処理では扱い辛い 後者の方が無くした主な理由だろうけど 例外処理分かってないヤツ多すぎるwww
329 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 19:35:09.24 ID:sSxxq2Sz0.net] >>324 ソースがあるのだし自分でソースくらい見ろよ オープンソースでドキュメント期待する方が間違ってるぞwww
330 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 19:58:23.54 ID:0snQAOLI0.net] キチガイのバザール
331 名前:デフォルトの名無しさん [2017/11/14(火) 20:04:06.14 ID:QqwKiGyo6.net] >>322 どこが難しいと思うの?
332 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 20:39:11.83 ID:ElF9INq6r.net] >>328 俺に聞くなボケw 個人的には難しいとは思わんが とわざわざ書いたのにそれが目に入らぬか
333 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 20:59:27.95 ID:HCb+ZNawa.net] Listのaddメソッドって例外飛ばさないんですか? もう追加できないよ!みたいな感じで
334 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:01:39.87 ID:ozKhZGN+0.net] {〇,✕,✕,〇,△,△,△,〇,△}みたいなリストを{〇,✕,✕,}{〇,△,△,△,}{〇,△}って感じに分けたいんだけどLinqで簡単に出来ないかな? ループさせんのが面倒で
335 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:03:14.99 ID:cajczz9H0.net] >>318 英文表示にして段落毎にグーグル先生に翻訳して貰うと割と読める文章になることが多い。 グーグル翻訳でもサイト翻訳は翻訳精度が悪い。
336 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:07:06.30 ID:07a/swYLa.net] >>331 SkipとTake使えば?
337 名前:デフォルトの名無しさん [2017/11/14(火) 21:11:28.16 ID:6kJ9cNLk6.net] >>329 どこがみんなにとって難しいと思うから322で難しいとか書いたの?
338 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:13:21.13 ID:ElF9INq6r.net] >>334 これだけ意見相違があるから
339 名前:デフォルトの名無しさん [2017/11/14(火) 21:16:24.25 ID:6kJ9cNLk6.net] よくわからんが難しくないだろ。
340 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:17:36.48 ID:07a/swYLa.net] 例外を変なところでキャッチしちゃう人が多い メソッドAの
341 名前:中でメソッドBを呼んでまたメソッドCを呼んだとする メソッドC中で例外が起こってもメソッドC内でキャッチしちゃって メソッドCの戻り値をnullでリターンして メソッドBで戻り値のnullチェックしてnullだったらまた戻り値をnullでリターンして またメソッドAでチェックしてみたいな馬鹿な使い方をしてる メソッドAでキャッチしろって思う [] [ここ壊れてます]
342 名前:デフォルトの名無しさん [2017/11/14(火) 21:18:54.31 ID:6kJ9cNLk6.net] >>337 それだけだよね。 なんも難しくない
343 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:22:31.53 ID:ozKhZGN+0.net] >>333 んーそれ余計に面倒にならない?
344 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:23:42.17 ID:07a/swYLa.net] 例外を目の前でキャッチするくらいなら他の制御構文でヤレ
345 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:33:26.00 ID:sSxxq2Sz0.net] >>337 ホントそれ。 至る所にtry/catchがある。 try/finallyは多用するがtry/cathなんて滅多に使う事はない。 例外処理は至る所に例外処理コードを書かないために存在する。
346 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 21:54:38.57 ID:D89+JmTA0.net] >>341 だから何度も書いてやってん
347 名前:カゃん 仕分けが絶望的に面倒臭ぇから握り潰しちまうって だってさよく考えろよ ドキュメント化されてないメソッドが出す例外って全部でいくつかどうやって調査する? [] [ここ壊れてます]
348 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:03:00.14 ID:5gpUPtII0.net] 仕分けめんどくさいのは同意するけど、握りつぶすのはどうなんだ 仕分けした結果握りつぶして問題ないって判断したものならいいかもしれんが 極論として、全部握りつぶす or 全部スルーして上位にキャッチさせる どっち選ぶ?
349 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:03:51.57 ID:sSxxq2Sz0.net] >>342 ↑ 例外処理を誤解している典型例です。 皆さん絶対に真似しないように。
350 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:08:15.89 ID:sSxxq2Sz0.net] >>337 >例外を変なところでキャッチしちゃう人が多い かと思えば、例外が必要なところでtry/catch { } で握りぶしちゃう人も多い これも追加ね。 無駄なtry/cathと握りつぶし 例外が分かってないヤツの典型例
351 名前:デフォルトの名無しさん [2017/11/14(火) 22:09:59.38 ID:vkrHhpXR0.net] 例外の仕分けとは何なのか
352 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:11:36.04 ID:FOR7JOrW0.net] 分かったからママに教えてやれ お前が可愛いなら誉めてくれるだろう
353 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:12:26.72 ID:D89+JmTA0.net] >>346 だから例外で帰られちゃ困るのよ ちゃんと仕様で動作が決まってるのにもかかわらずそのメソッド的には例外なの
354 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:17:45.36 ID:sSxxq2Sz0.net] 例外を拾ってエラーチェックをしようとしているのが根本的な間違いだな。
355 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:28:42.81 ID:D89+JmTA0.net] >>349 バッカ、飛んでっちゃうだろ
356 名前:デフォルトの名無しさん [2017/11/14(火) 22:33:03.34 ID:Xx2aI1jk0.net] 仕分けとは 握りつぶしとは
357 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:41:27.61 ID:D89+JmTA0.net] >>351 アスペにもほどがあるだろ
358 名前:デフォルトの名無しさん [2017/11/14(火) 22:56:41.83 ID:Xx2aI1jk0.net] 初心者だから経験が浅いので分からん
359 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:58:32.66 ID:ypDSy74La.net] あからさまに変な人は相手にしないほうがいいよ 俺も言ってる意味がわからない
360 名前:デフォルトの名無しさん [2017/11/14(火) 23:00:13.12 ID:vkrHhpXR0.net] >>348 戻り値だったらいいの?例外となんか違うか?
361 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:02:10.19 ID:D89+JmTA0.net] >>355 お前、なんの例外がくるのか全部把握してる前提で話してるだろ?
362 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:06:39.11 ID:deF3FeCf0.net] 把握できてる(かつ握っても問題ない)例外だけ握ればいいんじゃないの? なんで全部握りつぶすの?
363 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:18:43.22 ID:D89+JmTA0.net] >>357 どこで例外発生するかわかんないから
364 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:25:37.86 ID:sSxxq2Sz0.net] >>358 何処で発生するか、しかも例外の内容も分からない例外を仕分けして何をしたいんだ?
365 名前:デフォルトの名無しさん [2017/11/14(火) 23:33:00.11 ID:vkrHhpXR0.net] >>356 お前なんの戻り値がくるのか全部把握してる前提で話してるだろ?
366 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:43:11.80 ID:D89+JmTA0.net] >>359 だから失敗でアプリ落としたくねーんだよ アスペか んで全ての例外に対応したいがメソッドの中身を読むも広大過ぎてなんの例外がくるのかわからない ときたら握り潰すしかないよね
367 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:43:49.21 ID:D89+JmTA0.net] >>360 それは成功以外は失敗じゃない?
368 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:48:21.45 ID:ypDSy74La.net] >>361 それはダメなやり方だよ 例外をキャッチしきれなければアプリを落とすべきなんだよ それが基本なんだよ 特殊な場合は別だけど普通はそう教わる
369 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:48:53.64 ID:sSxxq2Sz0.net] >>361 だったら、例外をcatchして例外メッセージをMessageBox.Show()しとけば良いだけだろ。
370 名前:デフォルトの名無しさん [2017/11/14(火) 23:49:57.17 ID:vkrHhpXR0.net] >>362 だったら例外も同じじゃない?
371 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:53:24.48 ID:+V2acIIZ0.net] こんな深夜に要件定義されていない議論するとか正気か?
372 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:58:02.52 ID:D89+JmTA0.net] >>365 だから落ちんなよって
373 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 23:58:11.24 ID:sSxxq2Sz0.net] >>363 >例外をキャッチしきれなければアプリを落とすべきなんだよ どんな例外もキャッチしなきゃダメだろ。 キャッチして「駄目だコリャ」の場合はログ吐いて落とすしかない。
374 名前:デフォルトの名無しさん [2017/11/14(火) 23:58:46.20 ID:A1uj0brl0.net] Windowsの場合、ハンドルされない例外で落としておけば、ユーザーには後日解決策が 提示される場合があると表示されて、パートナーには統計情報が連絡される。
375 名前:あ mailto:sage [2017/11/14(火) 23:59:42.34 ID:j+l8jijkd.net] 動いてそうだけど動いてないかもしれない、エラーが中で出てるけど見えないプログラムなんて、 ブレーキランプはつくけどホントにブレーキがかかるかわからない車みたい。 いっそ走らないほうがマシ。
376 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:01:02.73 ID:udlId46Ca.net] >>367-368 どうせネタのつもりで言ってるんだろうけど面白くないから
377 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:02:05.46 ID:iANpDJJe0.net] >>369 MS以外に例外情報を送信することができるのか?
378 名前:デフォルトの名無しさん [2017/11/15(水) 00:03:28.48 ID:2GqBFPwl0.net] >>372 統計情報だけもらえる。
379 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:03:40.40 ID:QiSxe5F2a.net] >>368 キャッチして何になるんだよ? アプリは予測してない状況になってるんだぞ 予測できてないから復旧もできないし 誤動作してシステム食いつぶすこともあるんだから生かしておく意味はありません そういうことしてDBに特定のデータだけ一晩中書き続けた例を知ってる
380 名前:デフォルトの名無しさん [2017/11/15(水) 00:03:57.83 ID:iCpU6Box0.net] >>367 むしろ例外の仕組みがない言語の方がプログラマーに制御できないとこで勝手に落ちるんじゃないの?
381 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:04:36.82 ID:MZOj6Nbl0.net] >>369 ダイアログ出てる間はプロセス掴んだままになるから、 素直にプロセス落として自動的に再起動させたい場合には邪魔になるやつね。
382 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:04:47.32 ID:iANpDJJe0.net] >>373 なにそれ?
383 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:05:46.61 ID:De4EEM1x0.net] ロガークラスなんかだと 中で例外全部握り潰すけど catch {}
384 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:06:23.35 ID:iANpDJJe0.net] >>374 だから、ログ吐いて落とすって書いてあるだろ。 殆どの場合、例外を拾ったら落とすしかない。
385 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:10:28.88 ID:pJdoypJN0.net] ダメだこいつら 話になんねー あるべき論はいいからさっさとアプリ動かせよ 握りつぶして動くなら動くでいいだろ メソッドの中身なんて3万行だか4万行だか読んでらんねんだよバカが その全てでテキトーに例外発生させてんだから握りつぶしてナンボだろこんなの
386 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:11:54.55 ID:De4EEM1x0.net] Office系は印刷中キャンセルボタン押しただけで COMException投げてきたりするから とりあえず握り潰すようにしている
387 名前:デフォルトの名無しさん [2017/11/15(水) 00:12:29.08 ID:2GqBFPwl0.net] DBはコミットしなければいいと思う。
388 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:20:37.66 ID:iANpDJJe0.net] >>380 じゃ、メッソッドの呼び出しもと全部にcatch {}入れとけよ。
389 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:26:18.34 ID:AeO6Jp1U0.net] 例外で落としたくないプログラムってのはたしかに存在するけど 基本そんなプログラムをC#で書くのが間違ってると思うわ 例外処理のっていうときに、C#での(あるいは.NETでの)例外処理は、って言うようにしようぜ つかまあこの話もう終わりで良いけど
390 名前:デフォルトの名無しさん [2017/11/15(水) 00:26:49.27 ID:2GqBFPwl0.net] ただまあ例外なんて滅多に出ないからね。
391 名前:デフォルトの名無しさん [2017/11/15(水) 00:27:26.82 ID:2GqBFPwl0.net] C++スレじゃないのか。
392 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:27:39.78 ID:rNYxO5wL0.net] >>337 そのメソッドAが戻り値あり立った場合は?さらに外?それともヌル返す?
393 名前:デフォルトの名無しさん [2017/11/15(水) 00:28:57.41 ID:nkl9Qzh90.net] 長々と無意味なレスバが続いてたけど、ひとつだけ皆が同意できそうなのは 例外がどういう用途で使われるべきかの一般的なコンセンサスに従う人は ID:D89+JmTA0 = ID:pJdoypJN0 と一緒に仕事したくない、という点だけだな
394 名前:デフォルトの名無しさん [2017/11/15(水) 00:30:13.38 ID:2GqBFPwl0.net] 異常は戻り値で知らせるなって言いたいんじゃないの。 まあそりゃそうだよねって言う。
395 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 00:57:36.26 ID:ESiJAd3S0.net] ここc#スレで合ってるよね…
396 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 01:09:16.87 ID:udlId46Ca.net] 勘違いする人がいると見てられないので一応書いとくけど、 例外の目的の一つはフェイルセーフ、つまりプログラマの想定外のことが起こった時に 「安全側に倒す」 = 「プログラムを強制終了させる」ことなので、 「プログラマの想定外のことが起こってもプログラムの実行が止まらないようにしたい」 などという馬鹿なことを考えてはいけない。
397 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 01:35:57.65 ID:pJdoypJN0.net] >>391 はぁ? 他の誰かのライブラリを使ったときに 使用者の想定内がライブラリ作成者の想定外のときなんて簡単に発生すんだろーがバーカ テメーはちんちんでも弄ってろ
398 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 02:16:30.38 ID:oUD9LeEe0.net] ここは間を取ってContractしよう
399 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 03:59:39.11 ID:f4TQv9de0.net] >>331 誰もみてないだろうけど多分解決したっぽいので質問取り下げます ほんとlinqって便利だな
400 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 06:34:16.49 ID:iANpDJJe0.net] >>392 具体的には何のライブラリ?
401 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 08:15:52.85 ID:M8NqkMX5d.net] >>395 キチガイに触んなすな
402 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 08:45:58.03 ID:6LdVh8Top.net] >>394 LINQでどうやるの?
403 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 09:21:08.88 ID:EAeU3mIh0.net] >>395 会社の お前のレス ガイジ過ぎるだろ ちょっと考えてからレスしたら
404 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 09:39:52.81 ID:tmuRT0930.net] ガイジコラボ
405 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 10:00:24.72 ID:K3LG5GcrM.net] >>399 お前、単発だけど 連結するとガイジなんだろ?w
406 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 10:01:55.68 ID:DCxsxqPWd.net] >>397 やりたいのは文字列じゃないけどこんな感じのイメージ パフォーマンスはしらない var list = new List<string>() { "○", "×", "×", "×" , "○", "△", "△", "○", "△" }; Func<string, bool> isFirst = (item) => item == "○"; int groupingId = 0; var result = list.Select(item =>{ if (isFirst(item)) { groupingId++; } return new { Id = groupingId, Value = item }; }) .GroupBy(pair => pair.Id, pair => pair.Value); // { "○", "×", "×", "×"}{"○", "△", "△"}{"○", "△" } List<List<string>> hoge = result.Select(group => group.ToList()).ToList();
407 名前:デフォルトの名無しさん [2017/11/15(水) 11:14:21.87 ID:LdCnvqY76.net] LINQと関数型プログラミングって何が違うの?
408 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 11:42:46.04 ID:l4Bv56LcM.net] >>402 ガイジ乙
409 名前:デフォルトの名無しさん [2017/11/15(水) 11:51:23.71 ID:CJEkfJ7L0.net] >>401 畳み込みですやってみた。 var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" }; var isFirst = new Func<string, bool>((item) => item == "○"); var result = list.Aggregate(new List<List<string>>(), (prevList, item) => { if (isFirst(item)) prevList.Add(new List<string>() { item }); else prevList.Last().Add(item); return prevList; }); // resultからhogeにクローン var hoge = (List<List<string>>)result.Select(group => (List<string>)group.Select(item => item));
410 名前:デフォルトの名無しさん [2017/11/15(水) 12:03:19.06 ID:RrK4s1ZI6.net] こっちの方がいいか。 var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" }; var isFirst = new Func<string, bool>((item) => item == "○"); var hoge = list.Aggregate(new List<List<string>>(), (prevList, item) => { if (isFirst(item)) { prevList.Add(new List<string>() }; prevList.Last().Add(item); return prevList; });
411 名前:デフォルトの名無しさん [2017/11/15(水) 12:05:06.75 ID:RrK4s1ZI6.net] if (isFirst(item)) { prevList.Add(new List<string>() }; 括弧ミスった
412 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:05:11.35 ID:Tar4qvIud.net] Func<T,bool> を受け取るSplit関数定義した方が後で楽じゃね?
413 名前:デフォルトの名無しさん [2017/11/15(水) 12:07:15.90 ID:RrK4s1ZI6.net] 確かにその方がスッキリするな。 いずれにしろsplitの中身を定義しないといけないけど
414 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:29:09.51 ID:DCxsxqPWd.net] >>405 Agreegate余り使ったことなかったけど便利だな こっちの方が綺麗だ if (isFirst(item) ||prevList.Count>0) 書いてなかったけど、リストの先頭が〇とは限らないのでこんな感じで
415 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:35:31.31 ID:MLdh1wBXM.net] Aggregateは宣言的でないので関数型に慣れたらむしろ読み辛く感じるようになる 考え方が実質的に手続き型だから、手続き型に慣れてる人には馴染みやすいので濫用されてしまいやすい
416 名前:デフォルトの名無しさん [2017/11/15(水) 12:43:50.52 ID:LdCnvqY76.net] 関数型の典型的な関数みたいにバッ、バッって感じじゃなくてズィーンて感じだからか。 >>401 のやり方だと使ってる関数はバッバだけ感じかもしれないけど外部変数使ってるから内外に絡み合ってるのがあれだけどどうすればいいんだろう
417 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:46:35.76 ID:h8srGYM+0.net] Select/Aggregateなんて変な書き方せず素直にmap/reduceでいいのにな SQLっぽくというコンセプトで台無しになってる感じ
418 名前:デフォルトの名無しさん [2017/11/15(水) 12:48:32.27 ID:LdCnvqY76.net] ズィーン→ズインッ→ズィッ→バッ こう見れば畳み込みも関数型に馴染む
419 名前:デフォルトの名無しさん [2017/11/15(水) 12:49:52.25 ID:LdCnvqY76.net] >>412 まあこの場合ではSQLを扱ってるわけじゃないしな
420 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:54:47.35 ID:l4Bv56LcM.net] 関数にした方が見やすいじゃん 無駄に不具合出して喜ぶ低能過ぎる
421 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:11:40.68 ID:DCxsxqPWd.net] 確かに目新しさにおおーってなったけど、これただのforeachでいいな やっぱシンプルにループさせるのが最強か var result = new List<List<string>>(); list.ForEach(item => { if (isFirst(item) || list.Count <= 0){ result.Add(new List<string>()); } result.Last().Add(item); });
422 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:14:41.39 ID:MLdh1wBXM.net] var sep = list.Select((x, i) => new {x, i}) .Where(xi => xi.x == '○') .Select(xi => new[] {'○'}.Concat( list.Skip(xi.i + 1).TakeWhile(x => x != '○'))); こうかな 関数作った方がいいのは同意する
423 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:15:45.67 ID:1p9gbgPTa.net] 上のお題、結果がIEnumerable<IEnumerable<string>>でいいなら、 var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" }; var index = 0; var hoge = list.GroupBy(x => x == "○" ? ++index : index); ではだめ?
424 名前:デフォルトの名無しさん [2017/11/15(水) 17:26:29.53 ID:7R79hyBA0.net] >>416 それ意味的にはaggregateと全く変わらない 初期値が外にあるか引数のところにあるかしか違いない
425 名前:デフォルトの名無しさん [2017/11/15(水) 17:30:36.24 ID:7R79hyBA0.net] >>417 それaggregateより読みやすいと思うか?
426 名前:デフォルトの名無しさん [2017/11/15(水) 17:40:07.85 ID:7R79hyBA0.net] >>418 その型じゃダメでしょ。
427 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:02:02.20 ID:1p9gbgPTa.net] >>421 過去ログろくに読まずに>>418 書いたけど、質問者もGrouBy使ってるじゃん>>401
428 名前:デフォルトの名無しさん [2017/11/15(水) 18:04:09.97 ID:uxhVFwQf0.net] >>422 変換しろよ その分だけコード長くなるぞ
429 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:09:17.28 ID:1p9gbgPTa.net] >>423 何に変換するの? 元々の質問には最終的に欲しい型の指定はない 単に列挙できれば良いならIEnumerable<IEnumerable<string>>として扱えれば十分
430 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:38:01.15 ID:AeO6Jp1U0.net] いつも思うんだが、この手のやつをLINQでやりたがるやつって何が目的なんだろ 自分ですらすらと書けるならLINQでいいけど、そうじゃないなら勉強以上の意味があるとは思えん 個人的にはシンプルさを競うなら>>418 がいいと思う 戻りの型が気に食わないなら .Select(t => t.ToList<string>()).ToList<List<string>>(); あたり追加すればいいだろ
431 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:40:53.79 ID:EAeU3mIh0.net] こんなのやっててきったねーコード書く癖がついたら嫌だなw
432 名前:デフォルトの名無しさん [2017/11/15(水) 18:46:37.59 ID:iCpU6Box0.net] お前らが思ってる程きれいでもきたなくもないから安心しろ
433 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:49:57.02 ID:rNYxO5wL0.net] おい!待望の独習C#新版がでるみたいだぞ!
434 名前:デフォルトの名無しさん [2017/11/15(水) 18:56:00.52 ID:SIgrthm30.net] >>425 変数や関数を定義するのにいちいち名前をつけるのが面倒だからよく使う 無名だらけ
435 名前:デフォルトの名無しさん [2017/11/15(水) 18:56:47.00 ID:SIgrthm30.net] 関数を定義するときには場所にも悩むしな
436 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:00:28.04 ID:DCxsxqPWd.net] >>418 Selectなくても大丈夫だったか hogeのGetEnumeratorが呼ばれる度にindexが増えていくのが気になるけど 戻り値はIEnumerableでもIGroupingどっちでもいいけどkeyは隠すかも もし必要になったら以下のメソッドを作って、foreachと速度比較してって採用するかどうかって感じかな 色々と参考になった public static IEnumerable<IEnumerable<string> Split<T>(IEnumerable<T> source, Func<T, bool> predicate){ var index = 0; return source.GroupBy(x => predicate(x) ? ++index : index); }
437 名前:デフォルトの名無しさん [2017/11/15(水) 19:05:07.59 ID:JCFmpBxh0.net] 俺嫌われすぎだろ アスペルガー症候群だから仕方ないのか
438 名前:デフォルトの名無しさん [2017/11/15(水) 19:06:53.89 ID:LdCnvqY76.net] スリップが****-7wKgのは全部ワシじゃ
439 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:46:43.95 ID:h8srGYM+0.net] linqより何でもListにしないと心休まらない兄貴の方が重症かもな
440 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:57:17.06 ID:rGQqr4VZr.net] >>434 ww 現場にもよくいる
441 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 20:39:25.83 ID:ILed194Q0.net] >>428 ここにいる人らにはもう必要ない
442 名前:デフォルトの名無しさん [2017/11/15(水) 20:42:42.91 ID:4QHQX7jw0.net] >>434 アカンか?
443 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:21:02.68 ID:EAeU3mIh0.net] linqだからで許されてるクソコード延々貼り付けたガイジはさっさと死ねよ
444 名前:デフォルトの名無しさん [2017/11/15(水) 21:25:59.97 ID:md1eodvT0.net] LINQが良いか悪いかは別にしてLINQを必要以上に毛嫌いする奴って頭悪いだけだろ。
445 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:34:02.77 ID:EAeU3mIh0.net] >>439 今回のは普通に書いた方が綺麗だったよね?
446 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:34:15.53 ID:O2CkROvj0.net] ここ数日の有り様は何なんだろう C#養護学校の卒業式でもあったのかね
447 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:35:20.82 ID:EAeU3mIh0.net] linq友の会スレ使えよガイジ
448 名前:デフォルトの名無しさん [2017/11/15(水) 21:36:55.30 ID:4L7ZsFBR0.net] 必要以上にってのが言いたかった。 実用性は別としてリスト操作系関数でスラスラ書ける奴にコンプでもあるのかって思っちゃう
449 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:39:23.16 ID:EAeU3mIh0.net] >>443 え? そんなの気にしたことないや プログラムなんて組めるようになったらそこでスキルレベルマックスだろ
450 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:43:12.25 ID:EAeU3mIh0.net] あとは 設計書記述スキルを上げるか 見積り書記述スキルを上げるか 議事録作成スキルを上げるか した方がナンボか実りがあるよ
451 名前:デフォルトの名無しさん [2017/11/15(水) 21:44:53.19 ID:4L7ZsFBR0.net] しかし自分の苦手な物を使える奴にはコンプを感じる
452 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:46:47.98 ID:D6YDuXrJ0.net] >>440 レスいくつも書き込むくらいならそのコード提示したらいいのに
453 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:48:01.68 ID:EAeU3mIh0.net] >>447 別に俺そこ
454 名前:アだわらんよ 興味ねーし お前にも [] [ここ壊れてます]
455 名前:デフォルトの名無しさん [2017/11/15(水) 22:15:03.22 ID:mH4zmpJW0.net] 興味ねーならゴミだのクソだのほざいてんじゃねーよw
456 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:17:35.92 ID:EAeU3mIh0.net] >>449 クソコードを嬉々として貼られるのは見逃せないな 荒らしと変わんねーし
457 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:20:30.39 ID:EAeU3mIh0.net] どれだけ偉そうな主張があるのかと思えば 貼ってあるのはクソコードばかり linq貼ってるやつ目障りだから死ねよ 普通に組んだ方が綺麗なコードなら持ってくんなよ だっせ
458 名前:デフォルトの名無しさん [2017/11/15(水) 22:21:20.95 ID:txwTk3zR0.net] おまえの価値基準で判断すんなw コンプ感じてるだけw
459 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:24:54.13 ID:qS39jpKw0.net] これ以上はLINQスレでやれと言おうとしたらもう落ちているのね
460 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:25:31.88 ID:EAeU3mIh0.net] >>452 いいじゃん 便所の落書きなんだし 俺が書くスペースもあんだろ 誰でもかける処理わざわざ複雑にして 悦にいってるマヌケなPGみて 安心感を得られるセラピー効果もある
461 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:26:54.12 ID:EAeU3mIh0.net] >>453 linq誰も使ってないからな
462 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:28:44.48 ID:D6YDuXrJ0.net] まあコード書けないアホは相手にしなくていいよ
463 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:35:29.64 ID:EAeU3mIh0.net] どっちかっていうとアプリを作れないアホだな まあ、コードで何か主張したいならGitHubでもやればいいのに こんな便所でしか主張できないなら クズどものlinqライフもここでしめーだろ
464 名前:デフォルトの名無しさん [2017/11/15(水) 22:39:12.32 ID:E1HTns1P0.net] ウハwwwwww 書けない奴が批判の図wwww 権利すらなしwwwwwww
465 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:44:23.78 ID:EAeU3mIh0.net] >>458 クソコード貼っていい気になってるの? アドバイスしてあげるけど 滅茶苦茶レベル低いよ
466 名前:デフォルトの名無しさん [2017/11/15(水) 23:03:01.93 ID:vH3D/QHI0.net] キミ流のコードおなシャス!
467 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:19:43.56 ID:rNYxO5wL0.net] >>436 ここは初心者スレじゃないのかw
468 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:22:37.65 ID:vwyVPxZJp.net] 人間初心者のスレですよ、たぶん
469 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:25:46.54 ID:vwyVPxZJp.net] 正確にはC#で記述された人工知能なんですけどね
470 名前:デフォルトの名無しさん [2017/11/15(水) 23:26:21.77 ID:H4muME/S0.net] >>428 どこ情報?
471 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:47:19.33 ID:EAeU3mIh0.net] >>464 amazonで予約中になってる
472 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:14:27.14 ID:x/aWQ3sN0.net] stringは参照型だから既定値はnullということで合ってるよね?
473 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:22:49.67 ID:/4eW5bh4M.net] >>466 既定値はnullだけどstringはイミュータブル型
474 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 13:24:58.55 ID:lGT15xaEa.net] >>466 stringは参照型で規定値はnull
475 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:15:43.67 ID:7VJMckpW0.net] WPFじゃなくてWindowsForms内で簡単な3D描画したいんですが どういう風がいいでしょうか。 とりあえず箱を線で描くだけなんですが。 ・DrawLineみたいなので始点終点を3次元(X,Y,Z)で指定し描画 ・視点の位置(X,Y,Z)と向きを指定して表示 って風な感じが希望なんですが・・・・
476 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:25:02.34 ID:K+YFepCs0.net] それでいいじゃん
477 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:27:37.39 ID:7VJMckpW0.net] DrawLine の Point型 って X,Y しかないじゃないですか。 X,Y,Z で指定できる DrawLine がないのかと
478 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:32:16.65 ID:F5ZZYHwp0.net] 気合で座標計算
479 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:39:59.53 ID:K+YFepCs0.net] カメラ固定でいいんだろ? ZがXYのどこになるかは簡単な計算で出せる 紙に気に入った角度の3軸を書いて見ればいい
480 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:49:26.46 ID:rygh13wZ0.net] OpenTK
481 名前:でも使えば? [] [ここ壊れてます]
482 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:04:34.95 ID:JEjgvNkla.net] >>471 カメラの視線方向をZ軸、カメラから1000mm先のカメラの視線に垂直な平面上の1000mmの 線分がモニター上に1000mmで表示されるモデルを採用、3D、2Dともに同じ単位系(例えばmm) を使用する条件なら、3D空間上の点(X, Y, Z)を2D上の点(x, y)に写像するには、 (x, y) = (X/Z, Y/Z) でいいと思う。知らんけど 2DグラフィックのY軸が下向きなのを考慮するならyはもちろん-1倍する
483 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:32:37.14 ID:JEjgvNkla.net] 描画面の中心を原点にする変換も必要かw こっちはGraphicsの組み込みの機能でできるけど
484 名前:デフォルトの名無しさん [2017/11/16(木) 19:52:49.24 ID:o+kP3k0v0.net] 透視投影 satoh.cs.uec.ac.jp/ja/lecture/ComputerGraphics/3.pdf
485 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:57:23.76 ID:K+YFepCs0.net] そんな面倒なことしなくても カメラ固定ならXYに足すだけでいいじゃん Zが1ならXYに0.5ずつ足すみたいのでいいよ Zが2ならXYに1ずつ足す Zが3ならXYに1.5ずつ足す みたいな
486 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 21:38:46.30 ID:ac8ZDyBE0.net] >>469 URLが何故か張れないんだが C#3D立方体ワイヤーフレーム (第1回) for VS2013 Express でググって見つかるところが参考になる ライブラリを期待しているのならC++で探すしかないだろうな DLLになっていればC#からでも使えるから
487 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 22:56:01.22 ID:851mScQ5a.net] いくらなんでもopenGLライブラリはwinforms用ぐらいあると思う windows forms openglでググれ
488 名前:デフォルトの名無しさん [2017/11/16(木) 23:02:09.93 ID:o+kP3k0v0.net] >>474 でもうでてる
489 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:17:24.79 ID:Tv1Vr9CT0.net] 時間, 名前, テスト回数 2017/1/1, A氏, 3 2017/1/1, A氏, 4 2017/1/1, B氏, 1 2017/1/1, B氏, 2 2017/2/1, A氏, 1 2017/2/1, A氏, 2 2017/2/1, B氏, 1 2017/2/1, B氏, 2 2017/3/1, A氏, 1 2017/3/1, A氏, 2 2017/3/1, A氏, 3 ↑のようなデータがある場合 ↓のように名前ごとに最新の時間のデータを取得したい。 2017/3/1, A氏, 1 2017/3/1, A氏, 2 2017/3/1, A氏, 3 2017/2/1, B氏, 1 2017/2/1, B氏, 2
490 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:18:08.01 ID:Tv1Vr9CT0.net] >>482 ↓のような感じで取れるとは思いますが 実際のデータでは時間も名前も複数あるのでLINQで一発で取れる書き方はないでしょうか? public class Test { public DateTime 時間 { get; set; } public string 名前 { get; set; } public int テスト回数 { get; set; } } List<Test> ListTest = new ListTest (); var List1 = ListTest.Where(x=>x.名前 == "A氏" & x.時間 = 2017/3/1).ToList(); var List2 = ListTest.Where(x=>x.名前 == "B氏" & x.時間 = 2017/2/1).ToList(); List3.add(List1); List3.add(List2);
491 名前:デフォルトの名無しさん [2017/11/16(木) 23:18:26.88 ID:o+kP3k0v0.net] LINQの出番再び
492 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:19:34.43 ID:eJZERDUZ0.net] 友の会スレに行け
493 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:28:56.32 ID:Tv1Vr9CT0.net] そんなこといわずに優しいレスくれよ 友の会ってどこなの?
494 名前:デフォルトの名無しさん [2017/11/16(木) 23:37:44.24 ID:o+kP3k0v0.net] list.GroupBy(item=>item.名前).Select(group=>group.Max(item=>item.日時.Ticks)).ToList<Test>()
495 名前:デフォルトの名無しさん [2017/11/16(木) 23:44:12.00 ID:o+kP3k0v0.net] 今試したらエラー吐いたけど参考にしてくれ
496 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:44:38.82 ID:Tv1Vr9CT0.net] >>487 レスありがとうございます。 Ticks使ったことないので参考になりました。 ありがとうございます。
497 名前:デフォルトの名無しさん [2017/11/17(金) 00:03:01.06 ID:LOAPaCxV0.net] ListTest.GroupBy(item => item.名前).Select(group => group.Aggregate((max, item) => item.時間 > max.時間 ? item : max)).ToList()
498 名前:デフォルトの名無しさん [2017/11/17(金) 00:16:27.21 ID:ZIvR54fI0.net] DateTimeオブジェクトはそれ自体に大小関係演算子使えるしな
499 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:34:17.30 ID:xoZUoffUa.net] どれも微妙に仕様から外れてるような…
500 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:40:57.63 ID:45Grbd2f0.net] 並びの下の方が同じ日付でも最新なの? まあ、そういうデータよくあるけど
501 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:54:10.94 ID:E5GExksf0.net] SQLだとドヤ顔でExistsしてるブログがたくさん出るやつだな
502 名前:デフォルトの名無しさん [2017/11/17(金) 00:57:10.96 ID:ZBvifIa80.net] 下のやつを最新にしたいなら>=にすればいいのかな 順番通りの保障ないかもしれないけど
503 名前:デフォルトの名無しさん [2017/11/17(金) 01:02:10.05 ID:ZBvifIa80.net] ienumerbleだからだめか 最初の段階でインデックスとペアにするとか
504 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 01:13:33.00 ID:xoZUoffUa.net] 多分個人の最終日のすべてデータが欲しいんだよね
505 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 01:21:22.13 ID:xoZUoffUa.net] う〜んできたけど汚い
506 名前:デフォルトの名無しさん [2017/11/17(金) 02:55:06.18 ID:ZBvifIa80.net] これだけで各々の最新のデータが取れるはず。 ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList() ・GroupBy Elements in a grouping are yielded in the order that the elements that produced them appear in source. https://msdn.microsoft.com/ja-jp/library/bb534304(v=vs.110).aspx ・OrderBy キーに従って昇順のシーケンスの要素を並べ替えます。 このメソッドは、安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合は、要素の順序が保持されます。 https://msdn.microsoft.com/ja-jp/library/bb534966(v=vs.110).aspx 元データの並び順で下にあるほうのが優先されてるのをはっきりとわかるように書きたかったらかなり長いけどこうかな?w ListTest.Select((item, index) => { Item = item, Index = index } ).GroupBy(pair => pair.Item.名前).Select(group => group.GroupBy(pair => pair.Item.時間).OrderBy(innerGroup => innerGroup.Key).Last().OrderBy(pair => pair.Index).Last().Item)
507 名前:デフォルトの名無しさん [2017/11/17(金) 02:56:22.67 ID:ZBvifIa80.net] .ToList() w
508 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 09:51:19.99 ID:45Grbd2f0.net] これ、仕事で使われたらキレるな
509 名前:デフォルトの名無しさん [2017/11/17(金) 10:01:35.59 ID:yfGcWiWk0.net] 落ち着けよ、おっさん。
510 名前:デフォルトの名無しさん [2017/11/17(金) 11:41:22.51 ID:vZ4OY4a56.net] LINQ使わなかったらこうか? int indexOfSame名前(Test item, List<Test> list) { for(var i=0;list.Count;i++) if(list[i].名前==item.名前){ foundIndex=i; return i; } } return -1; } List<Test> extractLatestData(List<Test> list) { var result=new List<Test>(); foreach(var item in list){ var foundIndex=indexOfSame名前(item, result); if(foundIndex>=0){ if(item.時間>=result[foundIndex].時間){ result[foundIndex]=item; } }else{ result.Add(item); } } return result; } var result= extractLatestData(ListTest); LINQ使えばこう? var result=ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList();
511 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 11:58:47.46 ID:XIkoXTHK0.net] 横に長くて拒否反応出るのも解らないでは無いんだが 読む時は愚直に左から読んでいくだけだし、PowerShell使ってると日常茶飯事だしな……
512 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 12:03:36.39 ID:/4Y2zvAi0.net] 普通は、改行しながら書く
513 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 12:08:02.02 ID:qxZxmWbCM.net] >>504 じゃあ、全コード一行でいいじゃん 左から読んでいくだけだろ?
514 名前:デフォルトの名無しさん [2017/11/17(金) 12:11:30.21 ID:vZ4OY4a56.net] foreach~~ result.Add(latestDataOf(リスト, 名前)) とかのほうがいい?
515 名前:デフォルトの名無しさん [2017/11/17(金) 12:14:53.31 ID:vZ4OY4a56.net] これだとおかしいか foreachであらかじめリストから抽出しておいた名前の種類の一覧とかを与えないとあれか
516 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 12:23:06.18 ID:uCPaYCi4d.net] 最新取る頻度が高いなら最新テーブルと履歴テーブルを分けてほしい
517 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 13:11:41.07 ID:QYCCbo0/0.net] 推敲してから書き込めば一度で済むのに。。。
518 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 13:38:17.44 ID:45Grbd2f0.net] >>503 コメントがないじゃん やり直し
519 名前:デフォルトの名無しさん [2017/11/17(金) 14:48:58.50 ID:y/lDgZqq6.net] みんなって推敲してるの? 真面目だな 俺もこれからはそうするかもしれん
520 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 15:16:56.52 ID:Km51pzYd0.net] 真面目に考えるとデータベースに更新分Insertしてからあらかじめ作ってあるビューをSelectするだけ GroupBYや集計はDBでやった方が楽だしこっちでは表示件数や順序くらいしかいじらない データベースといってもローカル鯖や組み込みもある、適材適所
521 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 17:32:51.55 ID:VYtKuwzgM.net] インサート前にソートとかボトルネックだよね
522 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:05:42.37 ID:g1yHwUG3M.net] sources .GroupBy(s => new { 名前, テスト回数 }) .Select(g => new { g.Key.名前, g.Key.テスト回数, 時間 = g.Max(s => s.時間) }); 悩むところねえなぁ
523 名前:デフォルトの名無しさん [2017/11/17(金) 18:29:28.97 ID:ZBvifIa80.net] 汎用性低いな。
524 名前:デフォルトの名無しさん [2017/11/17(金) 18:32:42.23 ID:ZBvifIa80.net] ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList() ワシのが1番じゃろ。
525 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:42:45.87 ID:1r1wVT3lM.net] よくみたら仕様ちゃうやん自分… src.GroupBy(s => s.名前) .SelectMany(g => g.Where(t => t.時間 == g.Max(u => u.時間)); これが王道の正解な
526 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 18:50:16.49 ID:1r1wVT3lM.net] こっちのが速いかな sec.ToLookup(s => s.名前) .Select(g => new { g, m = g.Max(t => t.時間) .SelectMany(p => p.g.Where(u => u.時間 == p.m);
527 名前:デフォルトの名無しさん [2017/11/17(金) 18:50:30.24 ID:ZBvifIa80.net] そういやラムダ式の中の命名は超シンプルでいいんだったな。 >>518 最大値を探すためにループ、その値を持ち主をまた探すためにループってなんかキモくね?それが王道なのか。
528 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:36:01.87 ID:15/bjs8Fd.net] >>482 まず時間と名前でグループ化 時間, 名前, テスト回数 2017/1/1, A氏, 3,4 2017/1/1, B氏, 1,2 2017/2/1, A氏, 1,2 2017/2/1, B氏, 1,2 2017/3/1, A氏, 1,2,3 あとは日付けでソートして名前でDistinctするかな
529 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 19:40:08.46 ID:hFmoO+PyM.net] >>520 ループ? SelectManyはSQLで言えば結合みたいなもの LinqのJoinだとこんな感じかな src.GroupBy(s => s.名前) .Join(src, g => new { 名前 = g.Key, 時間 = g.Max(t => t.時間) }, u => new { u.名前, u.時間 }, (g, u) => u); SelectManyの方がわかりやすいな
530 名前:デフォルトの名無しさん [2017/11/17(金) 19:46:57.67 ID:ZBvifIa80.net] Maxを探すためにループ、その持ち主また探すためにWhereでループ
531 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:26:05.65 ID:/4Y2zvAi0.net] max ← 持ち主 こういう方向のリンクなら、max を探してから、持ち主も探さなきゃいけないけど、 逆方向のリンクなら、すぐ
532 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:34:11.03 ID:45Grbd2f0.net] 名前、日付で降順ソートして名前ごとの最新取るだけでなげーな
533 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 20:40:49.52 ID:2lBbqhr3M.net] >>525 それ結局最後まで舐めないと全ての名前が分からないから何の意味もないぞ
534 名前:デフォルトの名無しさん [2017/11/17(金) 21:20:38.75 ID:Xkp76caL0.net] LINQって実は裏側でforeachで回してるってホント?
535 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:41:36.29 ID:SHrICtEWr.net] >>527 ループは一回
536 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:50:29.21 ID:/4Y2zvAi0.net] 例えば、100個の中から、1個を探すのは、全(線形)探索 O(n) しかできない 全データにインデックス・ハッシュがついていれば、O(1)だが、 ソートするには、全探索する必要がある DB みたいに、B-tree でソートされているのなら、O(log n)
537 名前:uアルゴリズムと計算量」を勉強して [] [ここ壊れてます]
538 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 21:53:48.98 ID:45Grbd2f0.net] >>529 すればいいじゃん 何がしたいの? 速度アップしたいの?
539 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 22:28:51.51 ID:fmtM/py00.net] こんなにレスが付いてるとは思わなかった。 無事満足いく結果がとれるようになりました。 試したことないのもあって勉強になりましたありがとうございます。
540 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 22:41:16.10 ID:bpYBjcB50.net] >>527 記述によっては複数回どころか毎回ループもあり得るから注意な
541 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 23:53:01.59 ID:f2B03iH5a.net] foreach版も作ったけど 一回回すだけで辞書はできるので計算量は減るし再利用にも便利
542 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:22:17.61 ID:dA2WGfe00.net] DBに接続して操作するクラスを作ってるのですが、コンストラクタでDBに接続してデストラクタとDisposeで切断処理を書こうと思っています 基本的にはこのような書き方でいいのでしょうか? 各処理のメソッドで接続切断を仕込むのもあると思うのですが連続で処理する場合たとパフォーマンスの低下に繋がると思ったので気になりました
543 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:26:06.53 ID:uyqqFOTJ0.net] これEXISTS使うSQLの定番問題なんでその定番SQLが生成されるようにAnyするのが最速 そう、EFならね
544 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:33:21.33 ID:Q2wZVPR60.net] >>534 途中でLANケーブル抜いたらどういう動作するの?
545 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:34:15.67 ID:Q2wZVPR60.net] そしてすぐに指す!
546 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:37:14.30 ID:dA2WGfe00.net] >>536 DBはローカルなんでそこは考えてませんでした 途中でDBとの接続切れたらエラー返すぐらいしか考えてないですね そこでクラス抜けるようにするかどうかは分かりませんがデストラクタかdisposeに入ると思います まだ実装してませんが
547 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 01:37:59.01 ID:dA2WGfe00.net] >>535 接続部分はAnyでまとめた文打ち込む前後だけ開くってことでしょうか?
548 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 02:05:22.67 ID:uyqqFOTJ0.net] >>539 悪いが俺のレスは質問と関係ないぞ ちなみに各DBのコネクションクラスは質問通りのIDisposableな自動Close設計で 連続する処理する場合はコネクションを開いたまま使いまわすのが普通 SQLite.NETが参考と言うかやりたいことそのままじゃないか?
549 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 02:09:22.40 ID:dA2WGfe00.net] >>540 ありがとうございます!
550 名前:デフォルトの名無しさん [2017/11/18(土) 02:43:03.59 ID:NMU9eY0n0.net] >>540 ありがとうございます!
551 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 16:41:16.80 ID:S0Dl2HXu0.net] >>540 ありがとうございます!
552 名前:デフォルトの名無しさん [2017/11/18(土) 17:07:33.62 ID:18CT9AkR0.net] https://ideone.com/a5csSX たくさんボタンがあって、ボタンを押すとそれに対応した画像を保存するプログラムなのですが ひとつのsaveFileDialogを使いまわすにはどうすればいいでしょうか 上のコードのpictureBox_1、pictureBox_2が引数になる様にしたいのですが
553 名前:デフォルトの名無しさん [2017/11/18(土) 17:30:37.37 ID:mVpmRSdA6.net] >>544 if (saveFileDialog1.ShowDialog() == DialogResult.OK) { // 画像保存処理 }
554 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 17:33:50.19 ID:v7G/T0vB0.net] >>544 ボタンで分岐ならすぐできる private void button_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); if (saveFileDialog1.ShowDialog() != DialogResult.OK)) return; if (sender==button1) { pictureBox_1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Bmp) } else if (sender==button2) { } }
555 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 18:31:43.88 ID:+tDuSBLG0.net] >>544 ボタン事に対応したピクチャーボックスがあるならTagに設定しておくと便利だよ button1.Tag=pictureBox_1;ってしといて ((PictureBox)(((Button)sender).Tag)).Imageって感じで画像を取得できる
556 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 19:04:31.90 ID:yU1kJYivM.net] void RegisterClickEvent(Button b, PictureBox p) { var d = new SaveFileDialog(); b.Click += (s, e) => { if (d.ShowDialog() == DialogResult.OK) { p.Image.Save(d.FileName, ...); } } } // on load var pairs = new [] { new { b = button_1, p = pbox_1 }, new { b = button_2, p = pbox_2 }, ... }; foreach(var pair in pairs) RegisterClickEvent(pair.b, pair.p);
557 名前:デフォルトの名無しさん [2017/11/18(土) 19:27:10.06 ID:18CT9AkR0.net] みなさん有難う御座います。 やってみます。
558 名前:デフォルトの名無しさん [2017/11/18(土) 19:30:23.03 ID:NMU9eY0n0.net] こんなところにもちゃっかり匿名クラスw
559 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:21:22.01 ID:6NKrq56ga.net] >>544 まずSaveFileDialogのFileOKイベントを使ってるのがまずいくない? これだと結局FileOKのイベントハンドラに引き渡すためだけにImageかパスをフィールドに持つ必要が出てくる private string AskSaveNameFromUser() { var sfd = new SaveFileDialog(); sfd.DefaultExt = "bmp"; sfd.Filter = "BMP形式|*.bmp"; if (sfd.ShowDialog(this) == DialogResult.OK) { return sfd.FileName; } return null; } こんな風にユーザーから保存名を貰ってくるメソッドを作った方がいいんじゃない?
560 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:22:04.37 ID:6NKrq56ga.net] その上で private bool TrySaveImage(Image img) { var savePath = AskSaveNameFromUser(); if (savePath == null) return false; try { img.Save(savePath, ImageFormat.Bmp); } catch (Exception) { return false; } return true; } こんなメソッドを用意すれば、後はラムダ式使ってボタンのclickイベントにこれを紐づけするだけ button1.Click += (s, e) => TrySaveImage(pictureBox1.Image);
561 名前:デフォルトの名無しさん [2017/11/18(土) 20:36:23.54 ID:NMU9eY0n0.net] ボタン押した時に保存したいんだからClickイベントハンドラの中に記述すればいいだろ。
562 名前:デフォルトの名無しさん [2017/11/18(土) 20:42:16.49 ID:2DwFpZ7T0.net] フォームで画像を表示したところ、それを閉じなければコンソールに処理が戻らないプログラムになってしまいました 同時に動かす方法があれば教えていただきたいです
563 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:46:06.00 ID:v7G/T0vB0.net] >>554 コンソールって何を指しているの? フォームに画像表示(パネルでもPictureboxでも)して反応が無くなるってことは普通は無い
564 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:46:26.41 ID:9PzaXhXFM.net] START をコマンド名の前に書いても? とエスパー回答
565 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:48:58.44 ID:v7G/T0vB0.net] モーダルフォームで表示しているのならモードレスフォームにして表示 https://dobon.net/vb/dotnet/form/showform.html
566 名前:デフォルトの名無しさん [2017/11/18(土) 20:53:01.78 ID:NMU9eY0n0.net] >>554 Threadを使おう var thread = new System.Threading.Thread( () => { System.Windows.Forms.Application.Run(form); }); thread.Start();
567 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 20:57:25.99 ID:6NKrq56ga.net] 一つのプロセスで複数のUIスレッド作って大丈夫なんだっけ?
568 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:01:09.80 ID:GCI+mPsu0.net] すみません、上手く説明できないと思うので一応コードも載せます やりたいことはコマンドプロンプト上で流れる処理の途中で画像を呼び出すことです その際、処理が止まってしまいます var form = new System.Windows.Forms.Form(); var pb = new System.Windows.Forms.PictureBox(); pb.Image = System.Drawing.Image.FromFile(imgpath); pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; form.Controls.Add(
569 名前:pb); System.Windows.Forms.Application.Run(form); [] [ここ壊れてます]
570 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:02:37.60 ID:GCI+mPsu0.net] 途中で送信してしまいました・・ 頂いた返事から色々と試してみようと思います!
571 名前:デフォルトの名無しさん [2017/11/18(土) 21:03:01.96 ID:NMU9eY0n0.net] >>560 var form = new System.Windows.Forms.Form(); var pb = new System.Windows.Forms.PictureBox(); pb.Image = System.Drawing.Image.FromFile(imgpath); pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; form.Controls.Add(pb); var thread = new System.Threading.Thread( () => { System.Windows.Forms.Application.Run(form); }); thread.Start();
572 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:04:16.09 ID:v7G/T0vB0.net] >>560 Application.Run(form);で止まるなそれは フォームのインスタンス作ってShow()できないの?
573 名前:デフォルトの名無しさん [2017/11/18(土) 21:06:38.70 ID:NMU9eY0n0.net] Application.Runをしないとメッセージ来ねえからShowしても一瞬で消えるだろ。
574 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:07:12.07 ID:v7G/T0vB0.net] じゃあ別スレッドでやるしかないのか
575 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:19:47.80 ID:GCI+mPsu0.net] >>562 並列処理で無事起動できました! イカのような記号が何を意味するか分かりませんが いい機会なのでスレッドも勉強してみます >>563 なぜApplication.Run(form)で止まってしまうのでしょうか? フォームに制御が移ってしまっているということですかね
576 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:23:57.35 ID:D1AcCkIgr.net] Task使え!
577 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:26:29.84 ID:v7G/T0vB0.net] >>560 その部分全部を別クラスにしてインスタンスを作って呼び出せば動いた 実際に呼び出す部分は formtest f = new formtest(); f.formshow(); を入れておいて 別クラスで例えば class formtest:Form { public formtest() { } public void formshow() { var form = new System.Windows.Forms.Form(); var pb = new System.Windows.Forms.PictureBox(); pb.Image = System.Drawing.Image.FromFile(imgpath); pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; form.Controls.Add(pb); System.Windows.Forms.Application.Run(form); } } を作っておく >>566 ああちょっと遅かったか
578 名前:.>>568 mailto:sage [2017/11/18(土) 21:29:35.82 ID:v7G/T0vB0.net] ごめんこれ無しでw>>568
579 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:36:41.17 ID:GCI+mPsu0.net] >>568 丁寧に教えてもらいありがとうございます どの実現方法も勉強になりますし、解がすぐに思い浮かびコードにできるのは憧れます
580 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:37:46.34 ID:v7G/T0vB0.net] >>570 すいません手順間違えて動くと勘違いしていましたw 結局同じことなので参考にしないでくださいw
581 名前:デフォルトの名無しさん [2017/11/18(土) 21:50:58.81 ID:AvOAupbn0.net] 変数がNULLだったら、ってこれが一番シンプル? a == null ? 0 : 1;
582 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:55:24.54 ID:GCI+mPsu0.net] >>571 そうでしたか 検証までしてもらい申し訳ないです
583 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 21:56:43.57 ID:kl8n9Pj50.net] >>572 つ ?? 演算子
584 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:13:06.30 ID:ScUjvH+z0.net] >>574 >>572 の式書ける?
585 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:17:16.38 ID:kl8n9Pj50.net] >>575 書けない。nullの場合の値設定のみ。
586 名前:デフォルトの名無しさん [2017/11/18(土) 22:17:39.50 ID:AvOAupbn0.net] NULLじゃなかった場合の処理が要らない場合は>>574 がベスト?
587 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:20:13.27 ID:w1kiMD3J0.net] a == null ? 0 : a; a ?? 0; は同じ内容になる
588 名前:デフォルトの名無しさん [2017/11/18(土) 22:21:15.58 ID:AvOAupbn0.net] >>578 おけ さんきゅ
589 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 22:47:38.85 ID:kl8n9Pj50.net] ぬるぽ
590 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 23:05:35.11 ID:VG3ktzhs0.net] Unity+C#の質問になっちゃいますが、 ========================================= using System.Collections; using System.Collections.Generic; using UnityEngine; public class Ball_Ctrl : MonoBehaviour { public float speed = 50.0f; void Update () { Vector3 test = new Vector3(); test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime; transform.Rotate( test ); } } ========================================== これをキューブ型の3Dオブジェクトにぶち込むと上下キーで回転するんだけど、 これに回転制限を設けたい場合どうすればいいか教えてください!
591 名前:デフォルトの名無しさん mailto:sage [2017/11/18(土) 23:23:09.15 ID:Wsch61C00.net] >>581 とりあえずtest.xの値をリアルタイムで確認してみるとか ちゃんと制御できてるのがいいんだろうけどな
592 名前:デフォルトの名無しさん [2017/11/18(土) 23:30:02.55 ID:NMU9eY0n0.net] >>581 test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime; // minAngle〜maxAngleの間に制限 var minAngle=20f; var maxAngle=160f; test.x=test.x<minAngle?minAngle:test.x; test.x=test.x>maxAngle?maxAngle:test.x;
593 名前:581 mailto:sage [2017/11/19(日) 00:15:02.15 ID:+rKwXo5m0.net] >>582 >>583 この説明受けてもまだチンプンカンプンで申し訳ないのですが、 実際に角度を変えている「transform.Rotate」ってのが 「現在の角度+test.x」って事だから、 if文で、 もし現在の角度がmin°〜max°以内の範囲ならば test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime; って事ですかね? 現在値なら genzaiti = this.transform.eulerAngles.x; で現在の角度を取得出来るんですが、 なんか上手くいかない・・・ >>583 の test.x=test.x<minAngle?minAngle:test.x; test.x=test.x>maxAngle?maxAngle:test.x; の記述も意味がよく分からないです・・・
594 名前:デフォルトの名無しさん [2017/11/19(日) 00:22:50.41 ID:5IbV37Zg0.net] genzaiti = this.transform.eulerAngles.x; if(genzaiti>=min && genzaiti<=max) { test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime; } こうしてもうまくいかないってこと?
595 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 00:46:45.14 ID:nVHpanKs0.net] >>584 ああ、transformって姿勢行列か だったらtransform→angleの変換は期待しない方がいい angle→transformは一方通行として 現在のangleを保持して 毎回transformをangleから作る感じで
596 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 00:50:00.47 ID:+rKwXo5m0.net] using System.Collections; using System.Collections.Generic; using UnityEngine; public class Ball_Ctrl : MonoBehaviour { public float speed = 50.0f; public float genzaiti; public float min = -15.0f; public float max = 15.0f; void Update () { Vector3 test = new Vector3(); genzaiti = this.transform.eulerAngles.x; if (genzaiti >= min && genzaiti <= max) { test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime; } transform.Rotate( test ); } } ==================================== 教えて頂き、こうしてみたんですが 挙動がおかしいです if文的に ↑をおしてmaxを超えるとキー入力を受け付けなくなるのは理解出来るんですが、 ↓キーをおすとgenzaitiが359とか謎の数値になるのが理解できない・・・
597 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 01:17:17.13 ID:nVHpanKs0.net] >>587 359=-1やんけ?
598 名前:デフォルトの名無しさん [2017/11/19(日) 07:08:15.26 ID:5IbV37Zg0.net] >>587 if (genzaiti >= min && genzaiti <= max) ↓ if (genzaiti%360 >= min && genzaiti%360 <= max)
599 名前:デフォルトの名無しさん [2017/11/19(日) 07:19:50.08 ID:5IbV37Zg0.net] すまん、これは間違い
600 名前:デフォルトの名無しさん [2017/11/19(日) 09:53:15.87 ID:RgqRbH7C0.net] RubyはPerlより優れていてPythonより劣っている。
601 名前:デフォルトの名無しさん [2017/11/19(日) 12:26:49.81 ID:/vA5wcYG0.net] >>581 これで同じことやってる https://github.com/zabaglione/ObjectRotateClamp/blob/master/ObjectRotateClamp.cs
602 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 12:35:27.94 ID:E5DVFTo40.net] もう、自分でゴリゴリロジックを書くのが馬鹿らしくなってきた。 何処かの偉い人が言っていたが今のプログラミングは工学じゃなくて科学だと。 nugetか何処かでライブラリを拾ってきて、ひたすら実験を繰り返し、 自分の期待通りの結果が得られるかどうか判定するのみ。
603 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:13:49.58 ID:CpArH3DxM.net] ドメインロジックもそれでできるならいいけどね できないでしょ
604 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:23:38.14 ID:4mwAxl/ka.net] >>593 むしろそれのどこが科学なのかとw 電気屋も建築屋もパーツや材料がスペック通りの性能を持ってるか 実験するけど、それを科学とは言わないと思うよw
605 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:31:47.12 ID:T31pkR2W0.net] 今週はずっとlockとかMoniterとかManualResetEventSlimとか new Thread(new ThreadStartとかTask.Factory.StartNewとかTask.Run などなど書いていて頭痛くなってきた、やり方いろいろありすぎ
606 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:34:25.58 ID:CpArH3DxM.net] 今だと
607 名前:ルとんど使わないよねその手の非同期ライブラリ [] [ここ壊れてます]
608 名前:581 mailto:sage [2017/11/19(日) 13:39:52.27 ID:+rKwXo5m0.net] >>592 ひとまずこれをブチ込んでみたら思った通りに動いた! よく見つけてくれましたね!ありがとうございます! いまから一個ずつ理解するため勉強します。 他のみなさんも親切にどうもありがとうございました! 今回の件はとりあえず一件落着です。
609 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:40:17.88 ID:E5DVFTo40.net] >>595 現代のプログラミングは科学だって言ってるのオレじゃないけどねw ソフトウエアってパーツや材料みたいなきちんとしたスペックなんかは無いし ソースが巨大でブラックボックス化しているので 自然科学の実験と観察のようだと皮肉って言ってるんだと思う。
610 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:42:55.02 ID:E5DVFTo40.net] >>598 の人も実験と観察の世界だw
611 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:44:15.53 ID:Plho4dsNM.net] >>597 いや全部使うだろ マルチスレッドといえば、社内にParallel厨がいてうざいわ ボトルネックになってないのに無駄に並列化するのやめろ オーバーヘッドを増やすだけで全く速くなってないんだよ
612 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:47:26.35 ID:CpArH3DxM.net] >>601 いや使わんよ スレッド間の結合が強くなりすぎる
613 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:49:44.71 ID:CpArH3DxM.net] Taskは使う 他は保守性下げるから使いたくないし使わなくても問題ない
614 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 13:52:13.40 ID:E5DVFTo40.net] >>601 そういうヤツに限ってLockがなんだか分かってなくて共有リソースのロックが放置プレイ。 たまたま動いているような状態だ。
615 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:22:20.18 ID:k+hZMr200.net] Taskは普通に使うけど、わざわざThreadを使うケースってなんかあったっけ?
616 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:32:26.34 ID:E5DVFTo40.net] >>605 Task.Runってメインスレッドより早く終わるのが前提でしょ メインスレッドと同時に立ち上げて上がりっぱなしのだとThread.Startでしょう。
617 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:44:54.87 ID:k+hZMr200.net] >>606 LongRunningじゃダメなの?
618 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:55:49.72 ID:E5DVFTo40.net] >>607 へぇ〜、スレッドプールを消費しないオプションがあったんんだ。 でも、Thread.Startを使わないでTask.Factory.StartNewに TaskCreationOptions.LongRunningを付けて実行するメリットって何があるのだろ?
619 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:58:44.65 ID:k+hZMr200.net] 顔真っ赤やんけ・・・もういいわ
620 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 15:59:36.35 ID:Ay/cPvn90.net] 最近こういう下らねープライドで食い下がる奴多いな
621 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:00:15.24 ID:Ay/cPvn90.net] もちろんid真っ赤な方に言ってるんで誤解せんといて
622 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:09:07.36 ID:E5DVFTo40.net] >>609 真っ赤とかどうとかじゃなくて素直に聞いているだけなんだけどな。 Task.Runはお手軽だけどTask.Factory.StartNewにそれほどのメリットを感じないので聞いてみた。
623 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:54:48.98 ID:CpArH3DxM.net] やれやれ
624 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:57:32.50 ID:0lccfPn/r.net] 過去の遺物 今はTask.Run一択
625 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 16:59:16.27 ID:CpArH3DxM.net] 使いたいなら使えばいいよ誰も文句は言わん 仕事で遭遇しなきゃ害はない
626 名前:デフォルトの名無しさん [2017/11/19(日) 17:17:53.28 ID:YUYxzc/40.net] なんだこいつら... その人は普通にThreadでいいものを無理してTaskでやる意味聞いてるだけじゃん.... なんで突然キレ出したのか謎すぎる...
627 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:23:28.67 ID:E5DVFTo40.net] >>613-614 だから、メインスレッドと同じ寿命のスレッドはTask.Runでどうするんだよ。 答えられないのなら、煽るような真似をするな。
628 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:39:24.07 ID:nV3+UDVnM.net] ");
//]]>-->629 名前:14" rel="noopener noreferrer" target="_blank">>>614 過去の遺物 今はasync/await一択 [] [ここ壊れてます]
630 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 17:46:38.44 ID:jnbFiabv0.net] >>618 Taskとasync awaitってめっちゃ紐付いてるじゃん 切り離して考えるのはおかしいぞ
631 名前:デフォルトの名無しさん [2017/11/19(日) 17:53:11.85 ID:5IbV37Zg0.net] >>619 Task.Runを自分で書くのは過去の遺物ってことじゃね?
632 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 18:39:57.70 ID:CpArH3DxM.net] >>616 逆ってこと
633 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 18:51:04.39 ID:T31pkR2W0.net] 過去の遺物と断言できるのはThread.suspend
634 名前:デフォルトの名無しさん [2017/11/19(日) 19:30:29.96 ID:5IbV37Zg0.net] Unityとか出て来たから初めて使ってみたけど楽しい
635 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 19:34:33.51 ID:2mKNwU/B0.net] .net4.0までの環境で仕事してるおれにも同じ事いえんの?
636 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:01:28.15 ID:8FVAlHGr0.net] >>624 なぜサポート切れを使うんだ?
637 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:08:02.55 ID:NX3L6kgWa.net] XP使ってるエンドユーザーを切り捨てできなきゃそうするしかないね
638 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 20:33:47.12 ID:+rKwXo5m0.net] >>623 今更感はあるのでしょうが、僕も数日前に初めてUnity(C#も)触ったんですけど すごいですよね!今ってこんな感じにゲーム作れるんですね・・・ 僕の場合3Dモデラーなんで、覚える事いっぱいだけど プログラム出来る人なら無料のアセット入れたらすぐさまゲーム作れそうですね
639 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 22:46:03.87 ID:a21FIb9I0.net] >>608 キャンセルや例外の処理などを他のタスクと同列に扱える。 それらが必要無いなら特にメリットも無いけど、Threadクラスに拘るメリットも無い。⇒Taskで一本化
640 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:06:57.29 ID:E5DVFTo40.net] >>628 ありがとう! そう言う答えが欲しかった。 メインスレッドと同時に起動しっぱなしになるスレッドをTaskで起動すると Task内で発生した例外がTask終了時に一気に飛んでくるという解釈でよいのかな? それだと使いにくいな。
641 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:10:42.79 ID:E5DVFTo40.net] プログラム終了時に例外が発生することがあるが ひょっとして.NETライブラリ内のTaskが災いしてる?
642 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:22:19.54 ID:kef1Qlbp0.net] 普段の行い
643 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:27:16.64 ID:KzEdu68P0.net] えぇ……
644 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:32:38.48 ID:rl2qpTKV0.net] >>630 自分で作った立ち上げっぱなしのスレッドorタスクの後処理をしてないんだろ >>631 で合ってるなw
645 名前:デフォルトの名無しさん mailto:sage [2017/11/19(日) 23:40:03.47 ID:rl2qpTKV0.net] 立ち上げっぱなしかどうかは関係ないか そこは訂正しとく
646 名前:デフォルトの名無しさん [2017/11/20(月) 00:18:59.27 ID:i2xgyqGp0.net] ダッセ
647 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 04:47:41.41 ID:LQqpoEbp0.net] >>625 知らんがなw上があほなんだよ
648 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 06:17:01.54 ID:U7p2GA3b0.net] >>631 この業界定番のギャグだな。
649 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 06:17:56.26 ID:U7p2GA3b0.net] >>633 nugetで拾ったライブラリの中の人の行いが悪いからだな。
650 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 07:14:49.97 ID:nPsSyBEn0.net] >>636 お前も同類だけどな
651 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:04:56.95 ID:XyKfixC2r.net] >>629 逆で未処理の例外があればTaskが終了する それはThreadと同じ
652 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:07:46.65 ID:FVq6Osty0.net] よくあんなゴミに声をかけようという気になるものだ 類は友を呼ぶからか?
653 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:09:30.80 ID:XyKfixC2r.net] 上の人からの 古い方が安心だから と訳が解らない理由で.Net3.5を採用しようとしてる新規プロジェクトがあるw 当然現場は猛反対しているが
654 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:30:36.23 ID:OymZQAJWM.net] >>642 変化を極端に恐れるジャップ体質どうにかしてほしいな
655 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:37:53.75 ID:phc3FRBoM.net] >>640 wait, resultのとき以外でも落ちるのか?
656 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:40:57.62 ID:1G6nIlxwM.net] 民族性じゃなくて契約の問題 それでコストが少し増えたとしても成果じゃなく工数で金取るから不利益にならないし、 客の事業じゃなく作業に対して責任を負う以上はもどうしてもオーバークォリティにならざるを得ない 自社サービスの会社だと軽いノリでバージョン上がるぞw
657 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:43:07.45 ID:phc3FRBoM.net] >>642 多分、安心と言っている意味が違うかも。 .NET3.5はMSが終了宣言できないバージョンになる。 vb6の様にゾンビの如く生き残り安泰w
658 名前:デフォルトの名無しさん [2017/11/20(月) 08:49:09.41 ID:Kfz9fY2x6.net] >>641 思い通りならなくてドンマイw
659 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 08:55:17.32 ID:FVq6Osty0.net] ゴミが染るから触んな
660 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 09:02:42.76 ID:phc3FRBoM.net] >>645 受託じゃNode.jsなんて使う機会は無いもんね 自社サービス会社のがプログラマーは楽しそう
661 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 09:38:42.97 ID:zQ7I4hEQM.net] PCLって美味しいの?
662 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:44:42.83 ID:bl/e+CdyM.net] >>639 おまえは開発環境変更できる権限あるのか。いいな。
663 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:46:23.27 ID:bl/e+CdyM.net] >>642 async await使えないの
664 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 11:58:13.80 ID:QH5eJXusM.net] ギョーミーなアプリでasync/await使う?
665 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 12:14:21.61 ID:UOv8Me/NM.net] >>653 使わない というかawaiasyncってなんだ?って連中の方が多数派なので使えない 冗談みたいなホントの話
666 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 12:18:41.10 ID:QH5eJXusM.net] >>654 使ってても待たせてるだけで何も出来ないとか 意味ないじゃんw っての
667 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 13:24:27.66 ID:Q9UPjx7d0.net] >>650 デスクトップだけなら共有プロジェクトでいい
668 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 17:43:42.18 ID:XyKfixC2r.net] >>653 バリバリ使ってる 知らない人でも説明すれば大体は解ってくれる こんな便利なものがあるんですね!と感動する人 ふーんな人 非同期何それ美味しいの?な人 説明では解ったと言いながら実装では悪戦苦闘してる人 反応は様々だね
669 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:00:51.43 ID:bl/e+CdyM.net] >>657 おれなんかTaskで匿名メソッドシコシコ書いてるわ!
670 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:48:31.14 ID:OyLLFCrh0.net] すげーでかい図を出力したいんですがフォーマットは何がオススメですか? 画像だとデスクトップより大きくなると表示できないようです
671 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 18:53:19.76 ID:aqwGZvu20.net] >>659 >デスクトップより大きくなると表示できない こういうこと? スクロールバーを付けて画像を表示する dobon.net/vb/dotnet/graphics/scrollimage.html#section1
672 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:22:27.44 ID:OyLLFCrh0.net] >>660 あ、申し訳ないです フォームでエラー出てました
673 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:33:32.37 ID:aqwGZvu20.net] >>661 x64(AnyCPU)で動かす それがだめなら自分で必要なだけ読み込んで部分的に表示するしかない GDI+にはそんな機能無かったと思うから
674 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:34:30.92 ID:U7p2GA3b0.net] >>654 知識が.NET2.0くらいで止まってる人が多いよ。 それ以上の言語拡張は開発者置いてけぼりのMSの自己満足かもね。
675 名前:デフォルトの名無しさん [2017/11/20(月) 19:40:12.58 ID:YF/poHTW
] [ここ壊れてます]
676 名前:6.net mailto: >>661 なんのエラーが書けや [] [ここ壊れてます]
677 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:43:30.41 ID:U7p2GA3b0.net] >>659 Open XML
678 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 19:55:19.01 ID:U7p2GA3b0.net] >>657 非同期何それ美味しいの? 調理間違えても、お腹壊さない?
679 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:17:10.91 ID:rFfN6JGKM.net] >>663 というか、アメリカは内製が中心だからバージョンについて日本ほど保守的にならなくていいんだと思うよ
680 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:19:38.39 ID:aqwGZvu20.net] >>664 エラーは今回どうでもいい情報なんだよな むしろ表示する用途・解像度・実行環境の方が重要 x64なら10000*10000 pixel*32bppのBitmapでも余裕で表示できるけど
681 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:23:29.97 ID:e0aI6m0P0.net] ただのコーディングミスでNullReferenceとか最悪コンパイルエラーまである
682 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 20:34:17.67 ID:U7p2GA3b0.net] >>667 実際の実装に無難で枯れた技術を使うのと 新しい技術に無知なのは違うと思うけど
683 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:10:30.74 ID:LQqpoEbp0.net] >>659 ttps://qiita.com/bsh_tw/items/b8b2f845d85d1f1dc4e9 こんな感じ?
684 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:17:18.15 ID:rFfN6JGKM.net] >>670 そういう問題じゃないの 内製だと、選んだ技術について組織の中でノウハウを蓄積しやすい また、開発も運用保守もユーザーも同じ主体なのでJVMのバージョンアップでベンダーに億単位でぼったくられるようなことにはならず、 更新の障壁が比較的低いんだよ
685 名前:デフォルトの名無しさん [2017/11/20(月) 21:25:02.39 ID:UI9vB3qq0.net] >>668 いや、、フォームのエラーだけじゃわかんねえだろ、、、 本当にお前の思ってるのが原因か、、?
686 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:25:54.16 ID:U7p2GA3b0.net] >>672 ま、見積もりありきの受託開発とリスクのある新技術の導入が合わないのはあるとは思う なんでc#スレでJVM w
687 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:21.71 ID:aqwGZvu20.net] >>673 考え方が逆だと思うんだよな エラーだけ示されて解決できるのならそうしたらいいと思うけど、どっちにしても本人が何も言わないのならどうしようもない
688 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:24.50 ID:y/6cZRj30.net] 区別が付いてないんでしょ
689 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:28:54.04 ID:2/KPMrVLr.net] 内製じゃないけど開発の各関係部署にプロトタイプを配るのにクレームがつかない為に.NETのバージョンを下げてた人達がいたなあ 当然製品版も下げてたww その話聞いて笑うしかなかった (´・ω・`)
690 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:31:06.19 ID:EjockrVW0.net] ライセンス料ケチってVS2010とか使ってるのが原因の場合もあるぞ
691 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 21:47:30.51 ID:Rfx0F+NsM.net] >>672 内製は銀の弾丸じゃねーぞw
692 名前:デフォルトの名無しさん [2017/11/20(月) 22:00:54.42 ID:UI9vB3qq0.net] >>675 なら聞けよ 何言ってんだ
693 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:03:17.71 ID:U7p2GA3b0.net] 落ち着いて ( ´・ω・`)_且~~
694 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:12:04.01 ID:gpmTl3Lx0.net] LINQの書き方で質問ですが 特定の教科の赤点の人数を調べるとした場合 数が少なければ↓のような処理で済むのですが public class Test { public string 名前 { get; set; } public int 国語 { get; set; } public int 数学 { get; set; } } List<Test> ListTest = new ListTest (); string Kyouka = "国語"; int akaten = 0; if(Kyouka == "国語") { akaten = ListTest.Where(x=>x.国語 < 30 ).ToList().Count; } if(Kyouka == "数学") { akaten = ListTest.Where(x=>x.数学 < 30 ).ToList().Count; } 数が増えるので↓のような書き方がやりたいんですが無理ですか? akaten = ListTest.Where(x=>x.Kyouka < 30 ).ToList().Count;
695 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:15:11.19 ID:ThNisUZnM.net] >>678 dotnet cli + VSCodeでいいじゃん 商用無料で最新バージョン使えるぞ SCDなら配布も楽だし なんで流行らないんだろ 旧バージョンもう要らんでしょ
696 名前:デフォルトの名無しさん [2017/11/20(月) 22:16:16.66 ID:UI9vB3qq0.net] 種類が増えるなら教科ごとにプロパティ作るんじゃなくて教科名+点数の辞書のリストにするのが自然だと思う
697 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:21:19.53 ID:rFfN6JGKM.net] >>682 データ設計が悪い テスト結果(生徒ID, 科目, 点数) 生徒(生徒ID, 名前) この方がSQLフレンドリー
698 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:30:41.09 ID:ThNisUZnM.net] >>682 C#じゃないけどSQLアンチパターン読んだほうがいい var map = new Dictionary<string, Func<Test, int>() { ["国語"] = t => t.国語, ["数学"] = t => t.数学, }; var ans = map.Select(e => new { 科目 = e.Key, 赤点人数 = TestList.Count(t => e.Value(t) < 30), }); foreach(var a in ans) Console.WriteLine($"{a.科目}: {a.赤点人数} 人");
699 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:40:41.76 ID:aO8f69d6a.net] >>682 それ、LINQいっこも関係ないような気が... Func<Test, int> getScore = (x) => { if (Kyouka == "国語") return x.国語; if (Kyouka == "数学") return x.数学; }; akaten = ListTest.Where(x => getScore(x) < 30 ).ToList().Count;
700 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:50:14.07 ID:rFfN6JGKM.net] >>687 それは毎回無駄な科目チェックが入るから非効率 せっかくデリゲート使うんなら最初にgetScoreを科目に応じたものに差し替えるのがスマート もちろんそれ以前にデータ設計が間違ってるけど
701 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 22:51:04.11 ID:aO8f69d6a.net] >>688 そりゃそうでしょうけどストレートにオーダーされたものを出してるだけなんでw
702 名前:デフォルトの名無しさん [2017/11/20(月) 22:52:45.76 ID:UI9vB3qq0.net] var akaten=ListTest.Count(x=>(int)(typeof(Test).GetProperty(Kyouka). GetValue(student))<30);
703 名前:デフォルトの名無しさん mailto:sage [2017/11/20(月) 23:14:47.31 ID:gpmTl3Lx0.net] >>684 >>685 やっぱりデータ設計が悪いと言われますか 今のうちに変えてしまうべきなのかな >>686 Dictionary使ったことなかったので参考になります。 SQLアンチパターンすごい為になりそうなので読んでみます。 >>687 >>690 まだ完全に理解できていないけど参考になります。 レス参考に対応してみます。 みなさんアドバイスありがとうございました。
704 名前:デフォルトの名無しさん [2017/11/21(火) 11:17:50.06 ID:qjtNZd9v6.net] new Dictionary<string, int>(){ {“たろう”, 68} } 型引数を推論させて new Dictionary(){ {“たろう”, 68} } みたいにできないの?出来ればいいのに。
705 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 12:30:59.27 ID:WV/YnhFsM.net] C#は厳格な型言語です
706 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 12:32:30.39 ID:JYBkdGYBM.net] C#7ならたぶんこう書ける static Dictionary<TKey, TValue> ToDictionary(this IEnumerable<(TKey key, TValue value)> items) => items.ToDictionary(x => x.key, x => x.value); new[] { ("たろう", 68) }.ToDictionary()
707 名前:デフォルトの名無しさん [2017/11/21(火) 19:23:11.85 ID:K26qvPIE0.net] awaitってなんの意味があるの? 待ってたら非同期の意味なくね?
708 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:28:24.05 ID:TIZ+WImHM.net] >>695 って思うじゃん?
709 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:32:39.47 ID:oC2HbrNwa.net] >>695 処理が終わるまで待ってるように見えるけど実際は別にスレッドを使って 違うことを同時にやってるだけ
710 名前:デフォルトの名無しさん [2017/11/21(火) 19:36:01.18 ID:K26qvPIE0.net] >>697 ? メインのスレッドはタスクの実行完了を待機状態なんだろ? 待機してたら何もできないから意味なくね?
711 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:38:32.15 ID:zF41/4yq0.net] >>698 awaitの後の処理をタスクにして、awaitで待ってるタスクの後続タスクにしてる。 メインのスレッドは待機してない。
712 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:39:21.82 ID:tfBo/9nR0.net] >>698 簡単なコードで試せるんだから2chに書き込む時間使って動作確認すれば?
713 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 19:40:18.25 ID:KARCkhIlr.net] メインスレッドはいわゆるwaitをしている訳ではない
714 名前:デフォルトの名無しさん [2017/11/21(火) 19:41:33.68 ID:K26qvPIE0.net] >>699 なるほど!
715 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:20:36.17 ID:8K/pnPq30.net] 最近のオシロスコープはWebサーバー機能を持っていて、Webブラウザでアクセスすると 計測画面を表示させることができますが、C#で同じような機能を簡単に実装することはできるでしょうか? リモートデスクトップではなく、WinFormsのアプリ画面だけをネット越しに共有する感じです。
716 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:27:50.82 ID:UMxxTtnJ0.net] >>703 中にwebサーバー入ってんじゃね? c#でって言われてもハードの構成が何を想定してるのかわかんなくね?
717 名前:デフォルトの名無しさん [2017/11/21(火) 21:31:11.05 ID:K26qvPIE0.net] >>703 WinFormsの画面を配信したいってこと?
718 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:34:21.85 ID:UMxxTtnJ0.net] exeコピーすればいいじゃんね
719 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:36:26.83 ID:UMxxTtnJ0.net] サーバーのHDDのインストーラをぶっ叩けば.netframeworkも入るぞ
720 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:50:25.88 ID:z0YVJa690.net] 精度や遅延はどの程度なら許容されるんだろ オシロスコープに出来るんならC#でも出来るとは思うけど どんなデータの送り方してるのかまでは分からない
721 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 21:52:46.40 ID:HJsjXF5N0.net] >精度や遅延はどの程度なら許容されるんだろ 要件による 遅延に関しては、ユーザ視点で表面化し難い様に誤魔化す方法が幾らかはあるし
722 名前:>>703 mailto:sage [2017/11/21(火) 21:59:41.58 ID:8K/pnPq30.net] >>705 その通りです。 作ろうとしているのはオシロスコープとは全く別で、計測器の取得データを延々と 表示し続けるようなものです。 現状はファイルベースで共有しているのですが、例として出したオシロスコープのように ある程度リアルタイムの値も見たいと社内で要望があったので。 なので、遅延は数秒レベルでも全く問題無いです。
723 名前:デフォルトの名無しさん [2017/11/21(火) 22:03:47.53 ID:K26qvPIE0.net] >>710 websocketサーバー立ててjsonで生のデータを定期的に送信するようにする。 javascritで受信してcanvasとかにそれを表示するウェブアプリをウェブサーバー立てて配信する。
724 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:04:13.13 ID:oC2HbrNwa.net] >>710 webサーバでいいだろう
725 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:11:08.94 ID:UMxxTtnJ0.net] この場合ってHDDからデータ取ってくるだけじゃね?
726 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:11:40.48 ID:fFSiopFkM.net] ElasticsearchとKibanaでも使えば?
727 名前:デフォルトの名無しさん [2017/11/21(火) 22:23:31.72 ID:K26qvPIE0.net] >>713 javascriptで定期的にデータのファイルをダウンロードして表示するようにするだけか
728 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:27:39.04 ID:z0YVJa690.net] 後は計測間隔がmsスケールとかじゃなけりゃ そんなに難しくは無いと思う
729 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 22:32:00.42 ID:tfBo/9nR0.net] もうC#関係なくなってきてるな
730 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:02:59.07 ID:/0BXFww1a.net] 昔USBや232C接続の計測器のデータ拾う仕事してたけど ネットワーク越しはやったことないな サンプルレートはmsオーダどころか10ksps以上でも問題ないでしょう
731 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:24:00.28 ID:AM6ulXU90.net] 9600BPS同期で通信出来れば誉めてあげるよ
732 名前:デフォルトの名無しさん [2017/11/21(火) 23:29:41.27 ID:e9zQnDKx0.net] windows visual studioでのフォームアプリを使ってのC#の質問です 例えばTextBoxAとTextBoxBのテキストボックスを フォーム上に配置して TextBoxAに「あ」と入力してEnterを入力したらTextBoxBに「い」と表示させるようにしたいのですが どうすればいいでしょうか?
733 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 23:31:16.83 ID:TR9cbyXd0.net] >>711 で充分だろう 難しいとこ一つもないよ
734 名前:デフォルトの名無しさん [2017/11/21(火) 23:38:07.40 ID:K26qvPIE0.net] >>720 テキストボックス1のイベントハンドラでテキストボックス1のTextプロパティを取得して、それが「あ」ならテキストボックス2のTextプロパティに「い」を代入する。
735 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:06:37.07 ID:jXiKT4v3a.net] >>720 スレの存在意義を否定するようだけど その程度でいちいち質問してたら先が思いやられるよw public Form1() { InitializeComponent(); textBoxA.KeyDown += (s, e) => { if(e.KeyCode == Keys.Enter && textBoxA.Text == "あ") textBoxB.Text = "い"; }; } 自分でやっといて何だけど、本当はいきがってラムダ式なんか使わずに イベントハンドラを書いた方が保守性の面では好ましいと思う
736 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:32:48.43 ID:pUgwVgr10.net] いきがってラムダ式とか使ってるけど直前のレスがほぼ完全解答という
737 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:38:13.46 ID:KA0qTObfa.net] 俺だったらTrim()付けるね
738 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:47:40.32 ID:QmSU3CcY0.net] キメェ ctrl+vでどうなるんだ? とか最終的にはkillfocusちゃうの? とか考えると普段ぜってー組まない コード見ると黒板キィィィィィって やられてる気分になる
739 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 00:54:55.44 ID:d5y4PxOU0.net] 煽るだけのバカ
740 名前:デフォルトの名無しさん [2017/11/22(水) 00:55:46.04 ID:Jt3bKlvZ0.net] そいついつもキレてんな。
741 名前:デフォルトの名無しさん [2017/11/22(水) 00:56:49.24 ID:NUn4dBze0.net] キレッキレやな
742 名前:デフォルトの名無しさん [2017/11/22(水) 00:59:12.72 ID:8eOpOd0J0.net] >>726 エンターで動作なんだからCtrlVがどうこうとかイミフだしフォーカス外したいなら外せばそれで済む話じゃねえか
743 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 01:38:12.73 ID:QmSU3CcY0.net] >>730 テキストボックスでkillfocus以外での処理は鬼門 そういう暗示にかかっているのです でもctrl+Aは気軽に入れるけどね
744 名前:デフォルトの名無しさん [2017/11/22(水) 22:27:47.55 ID:2ViDa+Rm0.net] データバインド教えて this.dataGridView_List.DataSource = list; これをロード時に書けば listにAddしてけばDataGridに行追加されてく?
745 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 23:26:53.46 ID:OlRubHVI0.net] listがINotifyCollectionChangeを実装したオブザーバブルなリストならね。 ただのリストじゃ反映されないと思う
746 名前:デフォルトの名無しさん [2017/11/22(水) 23:30:35.23 ID:2ViDa+Rm0.net] >>733 これWPFだけ?
747 名前:デフォルトの名無しさん [2017/11/22(水) 23:39:53.01 ID:Jt3bKlvZ0.net] >>734 Formアプリでもあるんじゃない? www.digi-con.co.jp/tech/node/66
748 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 00:45:13.68 ID:axjWBGmc0.net] 素朴な疑問なんですけど ListコレクションからLINQでデータ検索したい時とか、データがソートされてる方がパフォーマンスが良いとかあるんでしょうか
749 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 00:48:24.00 ID:3UvXGadQ0.net] >>736 ソートされてるならBinarySearchを使えば速い LINQ使ったら線形検索になるのでソートは意味ない
750 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 09:20:42.83 ID:axjWBGmc0.net] >>737 BinarySearchが使えるのは知りませんでした ありがとうございます
751 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 10:19:01.69 ID:ocuKvabTr.net] 件数少ない時は線形の方が速いよ
752 名前:デフォルトの名無しさん [2017/11/23(木) 16:29:13.27 ID:1glLBmTM0.net] 1 のとき 0.7 3 のとき 0.9 8 のとき 0.6 9 のとき 0.5 こういうデータがある時、右の要素が最大である左の要素の番号を返すプログラムを作りたいのですが 簡単な方法はないでしょうか?
753 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:36:15.34 ID:6Js7jM8k0.net] List〈class〉でやってみるといいのでは? class Data { public int id{get;set;} public double result{get;set;} } みたいに作って、ListをループさせてData.resultを確認して一番大きい数字のid(クラス)を返すみたいな ICollectionに一番大きい数字のindex返す関数とかあった気がするからもっと楽に作れるかもしれないけど
754 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:41:24.65 ID:E5KFBI6l0.net] 楽さなら右要素でソートして末尾の左要素返せば 普通に探索しても大した手間の差ではない気もするが
755 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 16:44:45.88 ID:DqyU4UwDM.net] >>740 DBに突っ込んでから select key from data where value = (select max(value) from data) でいいよ
756 名前:デフォルトの名無しさん [2017/11/23(木) 16:58:00.67 ID:pEApwQyq6.net] @“1 のとき 0.7 3 のとき 0.9 8 のとき 0.6 9 のとき 0.5” .Split(‘\n’) .Select(line => line .Split(“のとき”) .Select(piece => piece.Trim()) ) .OrderBy(pair => pair[1]) .Last()[0];
757 名前:デフォルトの名無しさん [2017/11/23(木) 17:01:37.44 ID:pEApwQyq6.net] 変換忘れた(;ω;)
758 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:03:20.80 ID:6Js7jM8k0.net] >>744 この仕様はまったく考えてなかった 仕様聞くのって大変だな・・・
759 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:17:36.99 ID:cW6v2Sii0.net] >>740 https://ideone.com/W1bKs5
760 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:24:58.41 ID:cW6v2Sii0.net] よく考えたらC#だった、寝惚けてるわ
761 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 17:44:11.84 ID:cW6v2Sii0.net] どっちで書いても同じようなもんだった https://ideone.com/fD2j3A
762 名前:デフォルトの名無しさん [2017/11/23(木) 18:22:14.69 ID:1glLBmTM0.net] みなさん有難う御座います。 Dictionaryを使ってみようと思うのですが Dictionary<string,double> dict = new Dictionary<string,double>(); dict.Add("1",0.7); dict.Add("3",0.9); dict.Add("8",0.6); dict.Add("9",0.5); このあとvalueが最大値の時のキーの値を求める方法がわかりません dict.OrderBy(pair.Value).Last.Keyじゃダメなんでしょうか?
763 名前:デフォルトの名無しさん [2017/11/23(木) 18:24:15.88 ID:pEApwQyq6.net] >>750 いいよ
764 名前:デフォルトの名無しさん [2017/11/23(木) 18:34:21.92 ID:1glLBmTM0.net] >>751 現在のコンテキストに 'pair' という名前は存在しません。 というエラーが出て出来ないです…
765 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:37:13.32 ID:Go3NcBxu0.net] pair宣言してないからだろうに、 dict.OrderBy(pair => pair.key).Last.Keyじゃないかな。
766 名前:デフォルトの名無しさん [2017/11/23(木) 18:37:55.69 ID:pEApwQyq6.net] https://ideone.com/XlOtVQ
767 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:38:17.36 ID:Go3NcBxu0.net] もちろん pair => pair.Value だったな。
768 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:39:03.67 ID:4OkBFxYdM.net] >>752 どこか適当なところで勉強してから来なさい
769 名前:デフォルトの名無しさん [2017/11/23(木) 18:54:09.98 ID:1glLBmTM0.net] >>753 >>754 >>755 ありがとうございます!出来ました ただ同じキーがあると動かなくなるので別の方法を考えなければいけない様です…
770 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:59:24.88 ID:kBi82nCb0.net] >>757 同じキーが存在するのにDictionary使うのが間違い 他の人が例として使っているDataクラスで事足りると思うんだが
771 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 18:59:33.92 ID:yDdQ43O00.net] そりゃキーが重複したらエラーになるよ 辞書ってそういうもんでしょ あと重複があるんなら>>749 のを使えば?
772 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 19:07:10.50 ID:eO5S+uX/0.net] 「valueが最大値の時のキーの値」だけが必要なんじゃなかろうか?
773 名前:デフォルトの名無しさん [2017/11/23(木) 19:14:33.13 ID:1glLBmTM0.net] >>749 で教えて頂いたのでやってみます!
774 名前:デフォルトの名無しさん [2017/11/23(木) 19:16:31.56 ID:1glLBmTM0.net] 配列の大きさが不明なのでaddが使える方法でやりたかったもので…
775 名前:デフォルトの名無しさん [2017/11/23(木) 19:18:05.05 ID:pEApwQyq6.net] var list = List<Data>() これを使えばいい Addもできる
776 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:12:06.29 ID:eO5S+uX/0.net] >>762 単に最大時のkey, valueだけが欲しいのならListもaddも不要だけどね。。
777 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:41:13.63 ID:FrNu/68p0.net] Name : aaa Info : vvv Message : sss テキストファイルに↑のような空白文字で:を揃えた情報を、File.ReadLinesで取り出し、 .ToArray()で配列にしたあとTextBoxのLinesに設定したところ、コロンの位置がずれてしまいます。 foreachでTextプロパティに追加していく方法でもずれるのですが、Consoleだと綺麗に出力されます。 なにか対策等ありますか?
778 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 20:43:45.19 ID:kBi82nCb0.net] >>765 コンソールと同じように、テキストボックスのフォントをMSゴシックみたいな等幅フォントにする
779 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 21:07:02.11 ID:FrNu/68p0.net] >>766 MSゴシックで試したところ解決しました。 ありがとうございました。 等幅フォントの使い道がこんなところにあったとは、でした。
780 名前:デフォルトの名無しさん [2017/11/23(木) 21:25:10.61 ID:vcWp0UMr0.net] >>764 思わせぶりなことだけ言うだけ。
781 名前:デフォルトの名無しさん [2017/11/23(木) 21:29:38.22 ID:vcWp0UMr0.net] >>765 タブ文字じゃだめなん?
782 名前:デフォルトの名無しさん [2017/11/23(木) 21:48:04.04 ID:1glLBmTM0.net] >>749 とList使った方法で出来ました! 有難う御座いました。 ソート時の=>の書き方が色々あっていまいち理解出来てないですが…
783 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 21:59:19.61 ID:6Js7jM8k0.net] ラムダ式とLinqは後々覚えていけばいいんじゃないの とりあえずこういう書き方もできるって事で
784 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:15:45.74 ID:tJBaWbvoa.net] ラムダ式はデリゲートと同時に覚えようよw たいして覚えることないんだし、今時C#プログラマの最小要件でしょ
785 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:21:30.93 ID:Bg3Rqdl/0.net] HttpClient client=new HttpClient(); FormUrlEncodedContent contents = new FormUrlEncodedContent(new Dictionary<string, string>{ {"あああ","1"}, {"あああ","2"}, {"いいい","0"}, }); respnse = await client.PostAsync(url, contents); このままだと同じキーを含んでいるのでエラーが出ます。 サイトの仕様上、このままデータを送らないといけないのですが、どう変更すれば きるようになりますか?
786 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:24:57.40 ID:eO5S+uX/0.net] >>770 1 のとき 0.7 3 のとき 0.9 4 のとき 0.9 5 のとき 0.9 こんなデータのとき、3,4,5のどれでもええの?
787 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:31:44.60 ID:yDdQ43O00.net] >>773 KeyValuePairの配列でやってみたら?試してないから動くかわからんけども
788 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 22:53:52.49 ID:FrNu/68p0.net] >>769 ありがとうございます。タブ文字でもできることを確認しましたが、 今回はString.Format("{0, 4} : {1}", num,message)のような文字列も綺麗に出力したいので 等幅フォントを使用したいと思います。
789 名前:デフォルトの名無しさん [2017/11/23(木) 23:31:46.08 ID:vcWp0UMr0.net] >>773 new List<KeyValuePair<string, string>>{ {"あああ","1"}, {"あああ","2"}, {"いいい","0"}, }
790 名前:デフォルトの名無しさん [2017/11/23(木) 23:37:02.83 ID:1glLBmTM0.net] >>774 左のデータは重複することはあっても右のデータは0.93234…みたいな感じで重複しない感じです!
791 名前:デフォルトの名無しさん mailto:sage [2017/11/23(木) 23:56:53.12 ID:6gvgNZ3b0.net] 乱数をキーにして衝突して死んだやつを俺は知ってる
792 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 10:33:29.48 ID:mPUfH2u/0.net] >>774 のようなコーナーケースの指摘に対して、「そんなケースは稀だから考えなくてよい」とするか 「どっちでもいいならどっちかに決めよう」とするか、開発センスが現れるな。
793 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 11:35:20.40 ID:GsVE4oKd0.net] 今回は稀でもないけどね
794 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 11:52:48.02 ID:EfmvZejc0.net] 最大値の行を取り出すだけにコレクションは不要だけどね
795 名前:デフォルトの名無しさん [2017/11/24(金) 11:58:30.46 ID:PklTWoNU6.net] >>782 だから口だけカマチョはやめろ
796 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:01:51.76 ID:EfmvZejc0.net] >>783 配列の最大値を所得するロジックを知らんと? 配列ソートの前に習うだろ。
797 名前:デフォルトの名無しさん [2017/11/24(金) 12:02:53.10 ID:PklTWoNU6.net] 動的リストだからAddとか必要って言ってんだろ
798 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:09:15.88 ID:mqWCdSHW0.net] >>782 配列リストの最大値出せるけど今回はindexがバラバラになってるじゃん
799 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:14:42.91 ID:EfmvZejc0.net] >>785 動的リストとは?
800 名前:デフォルトの名無しさん [2017/11/24(金) 12:15:06.09 ID:J2WegmLO6.net] >>787 Add使いたい言っとるだろ
801 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:22:59.05 ID:mqWCdSHW0.net] 一応配列もコピーとサイズ増やして擬似的に追加は出来る 昔の俺が調べて書いてたけどコレクション使えと怒られた
802 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:26:56.52 ID:EfmvZejc0.net] >>788 それはお前らが誘導したからw 元データの構造がが何なのかワカランとどれが最適かはわからんな
803 名前:デフォルトの名無しさん [2017/11/24(金) 12:29:02.86 ID:J2WegmLO6.net] >>790 >>762 [] [ここ壊れてます]
805 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:42:17.78 ID:EfmvZejc0.net] >>791 c#の中からいきなり>>740 のデータが湧いて出てくるはずもなく、 そのような仕様があるとしたら「宿題」だなw
806 名前:デフォルトの名無しさん [2017/11/24(金) 12:44:49.36 ID:J2WegmLO6.net] コレクションは要らない!(キリッ
807 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:47:41.40 ID:EaZH7dVF0.net] >>792 いい加減黙ったら。 必要だからListにしてるだけで、>>782 とか何の足しにもならんぞ。
808 名前:デフォルトの名無しさん [2017/11/24(金) 12:53:50.07 ID:qz26KndN0.net] >>760 >>764 >>782
809 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 12:55:58.12 ID:EfmvZejc0.net] >>794 オレは最大値を取り出すだけならリスト構造は不要と言っているだけだ。 間違ってるか?
810 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:07:04.20 ID:EaZH7dVF0.net] >>796 元データを用意する実装の都合でそうしてるだけなのに、そんな分かり切ったことを言う必要ないだろ。 勘違いしてるそぶりもなかったしな。
811 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:12:51.07 ID:EfmvZejc0.net] >>797 何を言いたいのかさっぱりわからんわ。
812 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:14:37.94 ID:EaZH7dVF0.net] >>798 最大値を取り出すためにリスト構造にしているわけではない。 これなら分かる?
813 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:18:59.06 ID:mqWCdSHW0.net] あの説明でこの配列仕様考えてたってこと? double?[] data = new double[] { null, 0.7, null, 0.9, null, null, null, null, 0.6, 0.5 };
814 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:20:05.03 ID:mqWCdSHW0.net] >>800 あぁ多次元やジャグ配列があるか これ忘れて
815 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:23:12.73 ID:EfmvZejc0.net] >>799 最大値を取り出した後の事に触れて無いのも事実。 最大値だけが必要なのか、取り出した最大値を使ってリストに何かをしたいのかわからない。 本人は最大値の取得だけで満足して消えてしまったし。
816 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:37:21.47 ID:cWMe5SKyM.net] 本当に最大値だけでいいのかも知んないしね
817 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:42:02.13 ID:mqWCdSHW0.net] 右が最大値の時の左の要素の番号が欲しいって書いてあるぞ インデックスも飛び飛びで左の要素が重複するときもあるって後から出してる 確かに多次元やジャグ配列ならその仕様はありそうだけどその差は技術力の無い俺には大きな差がわからん
818 名前:デフォルトの名無しさん [2017/11/24(金) 14:07:29.79 ID:ZR8Pz10g6.net] コレクションなんか必要ない(キリッ
819 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 14:40:56.86 ID:asGQ9mvw0.net] 今日のウンコの最大サイズとか何回目に出たウンコとかどうでもいいだろ
820 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 17:05:26.06 ID:BCw6/Ft50.net] >>806 でも色は大事だぞ どす黒いのはヤバイ
821 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 17:12:26.57 ID:asGQ9mvw0.net] >>807 それ、最大サイズとかじゃなくて 少量でもアウトだから
822 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 20:00:59.51 ID:7dGX3zxS0.net] 非同期処理のasync/awaitって 処理A var ret = await Task(); 処理B みたいなときはTaskの中の処理が終わるまでは処理Bには進まないという理解であってる? あとTaskの中がプロパティに値を代入するだけみたいなawaitを使うタイミングがない場合は await Task.Run(()=>{ Taskの中でやりたい処理 }); って書くしかない?
823 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 20:36:08.05 ID:GsVE4oKd0.net] 馬鹿か 8回もよく粘ったもんだな
824 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:02:49.89 ID:3H9uQYBg0.net] >>809 1.そのasyncメソッドの中だけを考えればそれで合ってる 2.ちょっと何言ってるか分からない awaitを使うタイミングがないって何?
825 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:16:49.61 ID:h5bnr1q30.net] まだひよっこでよくわかって無いんだが 過去の他人が書いたコードで if (条件){ 処理 A } else if (条件){ 処理 B } else{ // 何もしない } みたいなコードを見ることがあるんだが このelseの何もしないってのは必要なのか?
826 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:23:55.00 ID:7dGX3zxS0.net] >>811 大雑把に書くと下みたいなクラスのプロパティ書き換えるだけのメソッド awaitする要素見えないけどawait演算子書かないとvisual studioが警告出すからどうやってawaitすればいいのかと private async Task<bool> Task() { a=b; c=d; return true; }
827 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:24:04.90 ID:573d9hpx0.net] >>812 本人に聞けよw というごく当たり前の話を省くと ・説明的なコードとしてわざわざつけくわえてある ・追加の可能性があるのでわかりやすいようにわざわざ残してある このあたりじゃだめか? C#として必要か?って話なら自分で消してみてビルドしろよって返す
828 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:25:24.75 ID:mqWCdSHW0.net] 後々追加するかもで書いたり何もしないってのをはっきり伝えたいとかで書いてるんじゃないかな コンストラクタで class Sample { public Sample() { //何もしない } } に近いものを感じる
829 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:41:06.27 ID:h5bnr1q30.net] >>814 >>815 本人はもう辞めてたの あぁ説明的な感じなのかな 別にこんなふうに書くのがC#のお約束とかじゃないよね
830 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:43:14.83 ID:573d9hpx0.net] >>816 IDEやコンパイラが怒らない限りC#の約束事とか知らんしどうでもいい そしてそのくらいの最適化はコンパイラに期待できる
831 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:43:58.48 ID:zpTIVf120.net] 使い道としてはなんだろね 何もしないにブレークポイントを設定するとAもBも処理しない条件のとき止まるかな だったらlogger.infoしといてもいいのに
832 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:45:42.73 ID:QGkXc5ztM.net] >>812 SIerのコーディング規約としてCOBOLの次代からある書き方だよ。 機械的にelseを入れるんじゃなくてelseの処理で何かもれて無いか考えてから空elseを入れましょうって事が形骸化して残ってる。 ほぼなんの意味もないコードです。
833 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 21:56:58.69 ID:h5bnr1q30.net] >>817 >>819 その人独自の癖みたいなもんだったってことか 消しても問題なく動くんでまぁ大丈夫っぽいし
834 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:17:05.19 ID:hbIcAcZv0.net] >>809 ってretが処理Bの中で使われなきゃ、待たずに処理B行っちゃうんじゃないの?
835 名前:デフォルトの名無しさん [2017/11/24(金) 22:19:14.41 ID:7i1mZEYS6.net] そのコードがasync修飾子を付けたメソッドの中に書かれてるとしたらそれはないだろ
836 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:31:11.65 ID:h5bnr1q30.net] 非同期処理内のコードでは無かった これってasync修飾子内のコードだとなんかのエラー回避とかになるの?
837 名前:デフォルトの名無しさん [2017/11/24(金) 22:31:59.96 ID:7i1mZEYS6.net] おまえに言ってねえよカス
838 名前:デフォルトの名無しさん [2017/11/24(金) 22:37:51.54 ID:tzXAZjO3p.net] >>824 レス指定すら出来ないとか低脳かよ
839 名前:デフォルトの名無しさん [2017/11/24(金) 22:39:38.31 ID:S6xecz6o0.net] バカか?
840 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:41:49.16 ID:7dGX3zxS0.net] 下のSetメソッドだと処理Bでretを使ってなくても大丈夫? private async Task Set() { 処理A var ret = await Task(); 処理B } private async Task<bool> Task() { a=b; c=d; return true; } 上のコードでTaskの中身にawait使いたかったら下みたいに書くしかない? 他の方法ある? private async Task<bool> Task() { Task task = Task.Run(()=>{ a=b; c=d; } await task; return true; }
841 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 22:42:24.96 ID:V887TCBHM.net] >>825 この間からネットでしかストレス解消できない寂しいやつが湧いてる
842 名前:デフォルトの名無しさん [2017/11/24(金) 22:49:06.66 ID:tzXAZjO3p.net] つーかガックシって大学回線のワッチョイか まさに低脳猿そのものだな 大学から2chとかどこの馬鹿大学の馬鹿ガキだよ
843 名前:デフォルトの名無しさん [2017/11/24(金) 23:14:31.39 ID:P/o0ISHr0.net] ウゼエ、ササクッテロ
844 名前:デフォルトの名無しさん [2017/11/24(金) 23:20:37.11 ID:tzXAZjO3p.net] ワッチョイの下4桁が変わってねぇぞ大学から2chの低脳猿ガキ
845 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 23:33:10.90 ID:oz95vMBJM.net] >>812 忘れたんじゃなくて意図した動きですよって申し送りか
846 名前:デフォルトの名無しさん [2017/11/24(金) 23:54:06.99 ID:2BrQd4/c0.net] datagridviewで下から2つ目だけ変更する方法教えて 1 あああ 4 いいい 8 ううう 9 えええ 2 おおお 上から探索して行特定してCell位置指定して編集するしかない?
847 名前:デフォルトの名無しさん [2017/11/25(土) 00:01:37.19 ID:pvPgs+4u0.net] >>833 https://qiita.com/lusf/items/222bbcb6a3f69306517b
848 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 00:06:13.82 ID:yrhFfhmW0.net] asyncってアシンク?エイシンク?
849 名前:デフォルトの名無しさん [2017/11/25(土) 00:08:11.36 ID:6waUtYEo0.net] >>834 えーおもろ DataSouce使うと プロパティ名がそのまま項目名になるのか
850 名前:デフォルトの名無しさん [2017/11/25(土) 00:10:38.42 ID:pvPgs+4u0.net] eɪsíŋkrənəs エイシンクロナス
851 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 01:10:38.87 ID:1pHkPeMia.net] ガチでアシンクだと間違って記憶してたわw aが頭について「非」の意味になる単語って他にあったっけ? aliveやaloudは違うしなあ
852 名前:デフォルトの名無しさん [2017/11/25(土) 01:16:18.14 ID:kqX7412r0.net] www.wdic.org/w/WDIC/ASYNC
853 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 01:23:13.48 ID:vI6wj4vV0.net] >>827 1.大丈夫 2.プロパティの設定ぐらいでTaskにする意味があるかは別にして、Task.Runでいいよ
854 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 08:19:21.33 ID:uShMkUYk0.net] >>827 Task.Runはその中が別スレッドになるので注意。 return await Task.FromResult(true); か、 asyncを外して return Task.FromResult(true); で。
855 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 08:55:10.96 ID:t8H/7SYV0.net] >>841 return await Task.FromResult(true); じゃなかったらTaskがiscompletedになる前に終わっちゃう?
856 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 09:31:02.68 ID:uShMkUYk0.net] 始めからcompletedなTaskが返る
857 名前:デフォルトの名無しさん [2017/11/25(土) 12:39:27.40 ID:8Imfk/az0.net] >>841 ???
858 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 14:45:48.16 ID:yDO/xVL00.net] private Task<bool> MyTask() { return Task.Run(()=>{a=b;c=d;;return true;}); } で良いと思うんだわ。戻り値が何故必要なのか知らんが
859 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:00:28.46 ID:ROI3Hzdd0.net] >>812 場面によるが 「何もしない」ではなく、asset(0) を書く、というのはやる そうなるようにすべて条件をきっちり列挙するようにしている、c# にアサーションはありますか?
860 名前:デフォルトの名無しさん [2017/11/25(土) 17:12:39.27 ID:JSTnYDsg0.net] >>841 上のやつってTask<Task>が返ってくるの?
861 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:18:13.44 ID:KwQ02SYsp.net] ワッチョイ末尾forRは大学から書き込んだりIDコロコロ変える煽りガイジなのでNGname推奨
862 名前:デフォルトの名無しさん [2017/11/25(土) 17:20:24.36 ID:JSTnYDsg0.net] x 変える o 変わる ササクッテロも煽りカスなのでNG推奨
863 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:35:24.80 ID:KnGPLM4Ka.net] 何度も同じこと言って申し訳ないけど、だからワッチョイだのIDだのって嫌いなんだよね。 こういう他人にネチネチ粘着する馬鹿を喜ばせるだけのことで、 本来の目的であったはずの荒らしに対する抑止力どころか、かえって逆効果にしかならない しかしさあ、いつも思うんだけど「誰かに粘着してやろう」とか思う奴って どういう思考回路してるのかね。 俺には粘着する側の負い目を語るに落ちてるようにしか見えないけど、 テメエを客観視する能力ってものがないのかねw
864 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:41:28.81 ID:P4DLYtAR0.net] っ[ 鏡 ]
865 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:47:24.32 ID:4eIXfHS3M.net] >>850 しかしさあ、いつも思うんだけど、毎回この「いつも思うんだけど、〜、かねw」パターンのレスを繰り返す奴ってどういう思考回路してるのかね。 俺には認知症か記憶障害にしか見えないけど、 テメエを客観視する能力ってものがないのかねw
866 名前:デフォルトの名無しさん [2017/11/25(土) 17:57:34.25 ID:pvPgs+4u0.net] 大丈夫かこのスレ?w
867 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 17:59:21.22 ID:+aAkFYw20.net] >>851 無茶苦茶イケメンが写ってる
868 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:03:20.01 ID:D6HLQxmJ0.net] >>850 無かったらないで気持ち悪い自演をする奴がいるからあったほうがいいよ こっちのが連投中の単発IDは信用に値しないだけだし
869 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:30:56.28 ID:FtBpL/BP0.net] >>852 その人は10年以上それやってるからほっといてあげて
870 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:33:11.33 ID:ROI3Hzdd0.net] >>850 ID は良かったともうよ、期限付きで連投荒らしを排除できるからね 土方キチガイちゃん、今はどうしているのかな…
871 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 19:10:27.33 ID:59PrSiyL0.net] >>852 自己紹介?
872 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 20:33:11.25 ID:mXV87WPlr.net] >>846 ある
873 名前:デフォルトの名無しさん [2017/11/25(土) 20:47:38.24 ID:UxolN1FL0.net] (´・ω・`)linqってマジックみたいにむちゃくちゃすごいってほんとなの? C# っておぼえるのむずかしいの?
874 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 20:58:40.30 ID:oOkyLeSsM.net] >>860 C#はメジャーな言語の中では特別難しいわけではないがどっちかというと難しめの部類 もともと他言語の経験者向けに作られた言語なので、他の言語の経験があればわりとすんなり入れる 反面、プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分が多く馴染みにくいと思われる C#
875 名前:ノ限ったことじゃないが、プログラミング自体が初めてなら最初は誰でも血を吐き地獄を見て自分の無能さに絶望するもんだ [] [ここ壊れてます]
876 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:05:19.12 ID:D6HLQxmJ0.net] >>860 linqガイジ自演やめろ
877 名前:デフォルトの名無しさん [2017/11/25(土) 21:18:11.07 ID:pvPgs+4u0.net] >>860 linqじゃなくてもjavascriptでも同じこと出来る
878 名前:デフォルトの名無しさん [2017/11/25(土) 21:20:36.41 ID:UxolN1FL0.net] (´・ω・`)そうなんやー
879 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:44:29.45 ID:+Jz8ZPqE0.net] >>861 > プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分が多く 具体的にどんなところ?
880 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:13:03.23 ID:P4DLYtAR0.net] コンソールアプリケーションから学んでけば、そんなでも無いと思うけどな いきなりGUIじゃ訳分からなくなるのも当然っつーか 「今は分からないだろうけど、取り合えずおまじないと思って書いといて」 的なお約束なんて、Cでもあるもんだし
881 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:22:22.08 ID:oiqZXgpT0.net] 初心者なら「なんでstringだけnullableなんだよOptionとかねーのかよ」と思うだろう
882 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:26:45.83 ID:P4DLYtAR0.net] そんな事を言い出す初心者嫌だわ
883 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:51:32.94 ID:yrhFfhmW0.net] >>865 newするところだろww
884 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 22:55:41.38 ID:N5s7ffCaM.net] 何故stringはnewがいらないの?
885 名前:デフォルトの名無しさん [2017/11/25(土) 22:56:21.40 ID:pvPgs+4u0.net] リテラルで省略できるから
886 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:01:32.05 ID:+Jz8ZPqE0.net] >>869 そう言うつまんない返し要らんし
887 名前:デフォルトの名無しさん [2017/11/25(土) 23:03:29.13 ID:8TvkEmrh0.net] クッソおもろい見本回答を見せてくれ
888 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:12:07.91 ID:+Jz8ZPqE0.net] >>873 アホなのか? 面白い回答なんて求めてない
889 名前:デフォルトの名無しさん [2017/11/25(土) 23:13:26.66 ID:mL7zXSYF0.net] アホにもわかるように説明してくれ
890 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:15:22.09 ID:+Jz8ZPqE0.net] >>875 >>865 の質問の意味がわからないなら黙っていてくれ
891 名前:デフォルトの名無しさん [2017/11/25(土) 23:17:09.05 ID:mL7zXSYF0.net] >>87 のレスがダメな理由をアホにもわかるように説明してくれ
892 名前:デフォルトの名無しさん [2017/11/25(土) 23:17:56.98 ID:pvPgs+4u0.net] >>870 のレスがダメな理由をアホにもわかるように説明してくれ
893 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:19:55.08 ID:ebsrSawd0.net] >>867 stringはclassだからnullableなのは当然じゃね? どこに引っかかっるのか分からん
894 名前:デフォルトの名無しさん [2017/11/25(土) 23:22:51.70 ID:pvPgs+4u0.net] nullableじゃない他の言語があるってことじゃね?知らんけど。
895 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:28:42.07 ID:ebsrSawd0.net] >>878 string はimmutableだから newが要らないというより newが必要となる状況がない newしてインスタンス作っても そのインスタンスのプロパティを変更する術がない immutableだから
896 名前:デフォルトの名無しさん [2017/11/25(土) 23:29:51.79 ID:pvPgs+4u0.net] >>881 すまん安価ミスってたわ >>869 のレスがダメな理由な。
897 名前:デフォルトの名無しさん [2017/11/25(土) 23:30:52.77 ID:pvPgs+4u0.net] 872 デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)[sage] 2017/11/25(土) 23:01:32.05 ID:+Jz8ZPqE0 >>869 そう言うつまんない返し要らんし ?
898 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 23:58:41.99 ID:A9/gx1Z/0.net] 流れをぶった切って申しわけないが container.Resolve<IEventAggregator>().PublishOnUIThread(new MaxProgressMessage(FileList.Count)); が長すぎて幻滅してるんだ、短かくする方法ない?
899 名前:デフォルトの名無しさん [2017/11/26(日) 00:01:18.75 ID:esrARD9/0.net] 無いだろ。 分解するくらいしか
900 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:09:31.88 ID:8WHK08hV0.net] 長くて見づらいというなら改行したらだめかね
901 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:31:14.56 ID:2r+x+WFfM.net] 手段を問わないならジェネリックメソッドでも書けば短くなるだろう
902 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:37:23.82 ID:E6i9SBGc0.net] その呪文は必ず出てくるやつだから、ベースクラス作って埋め立てて見えなくするのも手だ
903 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 06:55:45.07 ID:sYAKtbjg0.net] >>888 何を召喚する呪文?
904 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 07:32:40.07 ID:pGcZHtwF0.net] >>882-883 >>869 のどこが > プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分 なのか詳しく書いてみ
905 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 07:45:26.48 ID:KNE4EyEa0.net] >>890 だから、newするとこだろ
906 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 08:16:58.08 ID:pGcZHtwF0.net] >>891 理由を書け とアホにもわかるように書かないとダメなの?
907 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 08:17:27.00 ID:E6i9SBGc0.net] >>889 vdlz.xyz/Csharp/ToolKit/MVVM/Prism/Tutorial/010_EventAggregationQuickStart.html こんなやつを使うための前準備
908 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 10:40:50.07 ID:2r+x+WFfM.net] 横からだけどnewする意味が分からなかった 無駄に見えた AAA aaa = new AAA(); それとAAAが二回書かないといけないのも無駄に見えた 今はvarがあるからいいけど c++だと AAA aaa;でオブジェクトができる
909 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 10:59:28.85 ID:5qF5LlC+0.net] そこはC++で比較するなら、 AAA* aaa = new AAA(); でないの
910 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:05:35.98 ID:5qF5LlC+0.net] もっと言うなら、参照型だからnewが必要になるんであって C#のクラスは全て参照型だから、ってのが理由でしょ
911 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:06:13.70 ID:v4Gq1kEY0.net] newが分からないって人はおそらく C#がというよりオブジェクト指向が分かってない
912 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:19:31.24 ID:sYAKtbjg0.net] "Hello, world." 出力させるだけなのになんでなんでこんなに長いコードが必要なのかと思ったわ
913 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:21:24.75 ID:5qF5LlC+0.net] エントリポイントがあって、入出力のライブラリを読み込まなきゃいけないからしゃーない ……というのを理解する為に、基礎知識って必要なんすよな
914 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:26:52.04 ID:KNE4EyEa0.net] >>897 分からない じゃなくて、 初心者のころ分からなかった。
915 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:27:52.79 ID:fisQ6o8j0.net] コンソールアプリを作った時のmain関数の戻りが何故voidがデフォ?
916 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 11:28:34.60 ID:KNE4EyEa0.net] この流れどうでもいいわ >>861 は責任とれよ
917 名前:デフォルトの名無しさん [2017/11/26(日) 12:27:12.72 ID:xDPLX0UM0.net] ゴミスレ
918 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 12:59:52.42 ID:pGcZHtwF0.net] >>902 絡んできて最後はこれかよ w
919 名前:デフォルトの名無しさん [2017/11/26(日) 19:53:03.03 ID:esrARD9/0.net] 今更だけどスレタイのふらっとって♭とかかてんだな 今気づいたわ。考えた奴センスあるな
920 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 05:07:40.67 ID:zYU8hzi70.net] 「C#」の失敗は ↑この名前そのもの。 名前に記号を含んだことでネット検索などでの調査が非常にしずらい。 現にこのスレのタイトルは検索で辿りつけるようにシャープを3種類(#,♯,#)も使っている。
921 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 05:28:02.06 ID:J9PNM2DU0.net] C言語よりマシ
922 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 06:39:27.91 ID:mxmQS4Eu0.net] Goなんてグーグルで検索するの大変、グーグルなのに
923 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 07:17:04.00 ID:U9yOEuDb0.net] APLよりはマシ
924 名前:デフォルトの名無しさん [2017/11/27(月) 07:57:54.24 ID:9arhdycY0.net] 普通に検索できるけど。 https://i.imgur.com/JuJbkc6.png
925 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 08:30:46.44 ID:ENOa9M21M.net] >>906 > 名前に記号を含んだことでネット検索などでの調査が非常にしずらい。 いつの時代で止まってるんだよ w
926 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 08:32:52.42 ID:Oy0eCX2Rr.net] 検索で苦労したのは初期だね ある程度広まると普通に検索できるようになった Google先生をなめてはいけないw
927 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 11:20:17.01 ID:moQmEOhzM.net] >>906 Google舐めんなよ、c#の検索で困ったことはないぞ
928 名前:デフォルトの名無しさん [2017/11/27(月) 11:56:36.72 ID:YP5p2xtB6.net] 名前の短さとユニーク性から言って他の言語の中で1番検索が手軽だろ
929 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 12:42:18.81 ID:XW1caEg1p.net] 記号よりもCの派生みたいな名前しといてわりとそんなことない方が問題
930 名前:デフォルトの名無しさん [2017/11/27(月) 15:04:54.85 ID:Nt2T9amD0.net] Golang
931 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 17:16:49.94 ID:cJelrrxv0.net] でも初期はヒット数皆無だったね
932 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 17:45:58.74 ID:6f5qj3RBd.net] >>917 昔々
933 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 18:04:10.89 ID:vgvtax0D0.net] 初期ってXP発売当時=21世紀の最初の頃だよな
934 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 19:10:17.82 ID:OWKhgpwq0.net] >>915 まあどっちかっつーとDelphiの流れを汲んでるからな
935 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 19:51:53.13 ID:cJelrrxv0.net] windows7出たあたりのときもc#とか記号入りの語句の検索に Google自体が弱かった
936 名前:デフォルトの名無しさん [2017/11/27(月) 20:08:46.06 ID:kbE8zzrJ0.net] 英語圏だとc sharpとかやるのにお前らなんでシーシャープとか検索の工夫せんのや?
937 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:11:02.29 ID:za1uA7lb0.net] スレで聞いたり回答はしても自分でググらない人がいるのか C# のあとに調べたこと書いて普通に見つかるのに
938 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:19:33.20 ID:GUxcPAnYM.net] ドボンとか宇宙仮面みとけば良かったから問題ない
939 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 20:21:46.22 ID:ENOa9M21M.net] >>917 記号を検索してくれなかったからな なので演算子の検索とかも大変だった
940 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 21:37:45.69 ID:zPT1usJA0.net] 痴呆老人の繰り言のようだ
941 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:06:59.04 ID:SLs8Sy3DM.net] ちょまどよりもドボンのが貢献度高いけどドボンはMSにスカウトされたの?
942 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:14:46.79 ID:SLs8Sy3DM.net] C#でもDIしてみたいと思ったのですが、使うのは絶対にインターフェースなのでしょうか 抽象クラスを使ってる例を見ないので、ひょっとしたら抽象クラスは使わないのかと感じています
943 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 07:38:58.15 ID:vyISmGF6d.net] >>928 必要があれば使うよ
944 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 08:44:27.50 ID:tn7hDAAkM.net] >>928 インターフェース継承(必ずしもC#のinterfaceではなく、使う側からの見え方を継承するという意味ね)に抽象クラスを使うのは今時はあまり好まれない 規模の大きな開発だと、使われる側の前に使う側のクラスが先に実装されてしまうこともよくあるし、 いちいち個別に判断するより少々冗長になったとしても全部interfaceの方が分かりやすいし後で融通利くだろという考え方をすることが多い 抽象クラスを使って実装を共通化したい場合は、interfaceを抽象クラスが継承してそれを更に継承すればいい
945 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:16:48.34 ID:7U+HR4FY0.net] インターフェースクラス自体いらんけどね
946 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:57:15.96 ID:QXpLTJ6d0.net] インターフェースはクラスじゃないんだが、そこら辺から勉強やり直したほうが良いと思う
947 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 09:58:37.73 ID:7U+HR4FY0.net] >>932 インターフェースいらん 何かメリットある?
948 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:04:21.92 ID:QXpLTJ6d0.net] >>933 例えばusing構文は、interfaceに依存しているけど アレ便利だと思わん?
949 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:06:06.04 ID:7U+HR4FY0.net] >>934 思わん 実際意図通りに動くかどうかは中身を見ないとわからんから usingで書いたけどリークしたりとかあるあるじゃん
950 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:07:25.71 ID:7U+HR4FY0.net] 他には?
951 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:07:35.24 ID:PGwr6nW1M.net] >>927 ドボンの中の人は匿名で出たがりじゃ無いのでオファーが有っても断ってるだろうな。
952 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:14:53.34 ID:7U+HR4FY0.net] そもそも不特定多数が突然触る環
953 名前:境って開発じゃないよな ちゃんと設計してから組むのが当然であって どんな場面を想定してるのか全くわからない インターフェースを統一しようがどうだろうが必要なデータを必要なだけしか渡さないでほしい [] [ここ壊れてます]
954 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:15:16.01 ID:QXpLTJ6d0.net] >>935 usingはDisposeを呼び出すだけの機能なんだから、バグが有るなら実装したアンタの責任だろ
955 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:16:56.59 ID:7U+HR4FY0.net] >>939 別に俺が作ったときの話してるわけじゃない そもそも俺はこのクソ機能嫌いだから使ってない
956 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:20:37.75 ID:7U+HR4FY0.net] 標準ライブラリぐらい共有されてるソースでしか使わないほうがいいんじゃない? コミュニケーションコストが大きくない? ドキュメントもそれなりに書かないとどこの誰向けのインターフェースなのかわかりにくい お客様に使わせる前提? サンプルソース用意した方が良さそうだし
957 名前:デフォルトの名無しさん [2017/11/28(火) 10:29:54.52 ID:c9nafor26.net] 抽象クラスだと一個しか共通機能付けれないじゃん。
958 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 10:37:12.94 ID:fCILQp+K0.net] だからBindableBaseは使いにくいんじゃハゲ言われても 毎回INotifyPropertyChangedを実装してる方が毛根に悪いだろ
959 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:03:18.93 ID:PGwr6nW1M.net] また、基地外湧いてる
960 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:05:45.21 ID:yuNzgourM.net] >>944 ブーイモで認定とかないわ
961 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 11:31:18.53 ID:PGwr6nW1M.net] 会社の回線使って5ch見るとツーホーされるんでw
962 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 12:13:04.45 ID:AHd0O/Rna.net] どうせならstaticおじさんパロって「しっくりこないんです」って言ってほしかった。 まあ、どっちにしろ面白くないよ悪いけど。 2chだからって無理して道化を演じなくてもいいんだよ。 20年前30年前ならわかるけど、まさか2017年にもなってネットの掲示板に書き込むことが 君にとって非日常なのか?w
963 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 12:21:50.69 ID:OnZeiLZr0.net] 2006年からC#スレにいる奴にとってはもはや日常を越えてるよな
964 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:01:21.00 ID:vyISmGF6d.net] >>931 インターフェースクラスwww
965 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:17:00.01 ID:yuNzgourM.net] staticおじさんは小難しい仕組みを延々と語ってたけど 俺は単純にメンバ変数がグローバル変数化するのが嫌でクラス使うのやめた
966 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:24:48.88 ID:7U+HR4FY0.net] >>949 インターフェースのメリットを説明できないからそういうレスするんだよね なにも作れないから言語の機能だけ覚えて身を固めたんでしょ? 説明をさせるとメッキが剥がれちゃうんだよね?
967 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:42:38.72 ID:7U+HR4FY0.net] 相手も想定してないのにインターフェースなんて意味ないって 誰に提供したいインターフェースなの? ただ趣味で作ってるゴミコードなんでしょ? あ、usingがメリットとか言ってたっけ? アレのどこがメリットなんだよ 使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん しかも明示的に実行されてるのかどうなのか見えなくなってるし
968 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:48:33.09 ID:bfhutU2GM.net] >>952 > あ、usingがメリットとか言ってたっけ? > アレのどこがメリットなんだよ > 使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん > しかも明示的に実行されてるのかどうなのか見えなくなってるし 詳しく
969 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 13:50:43.25 ID:7U+HR4FY0.net] >>953 ブーイモじゃ嫌 でもusingが動いてるかどうかどうやって確認する?
970 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:24:36.03 ID:h4MoZ9j60.net] 普通にDispose書いたときに Disposeが正しく動いてるかどうかを確認するのと 同じようにすればいいんじゃね しらんけど
971 名前:デフォルトの名無しさん [2017/11/28(火) 14:25:39.80 ID:xJKXjbc10.net] >>954 インターフェースのデメリットを説明できないからそういうレスするんだよね なにも作れないから言語の機能だけ覚えて身を固めたんでしょ? 説明をさせるとメッキが剥がれちゃうんだよね?
972 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:33:47.59 ID:bfhutU2GM.net] >>954 usingなんてシンタックスシュガーなんでdisposeコードは自動展開されている。 逆コンパイルしてILコードでも見とけ。
973 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:40:17.59 ID:7U+HR4FY0.net] >>955 え?どこみんの?
974 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 14:41:56.97 ID:7U+HR4FY0.net] >>957 それ、わかりやすいコードなの? 解析が困難になってない?
975 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 15:00:07.13 ID:bfhutU2GM.net] >>959 そこは、それ食べられるの? 美味しいの? だろ。 美味しいかどうかはわからんがCLRは食うぞ。
976 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 15:09:47.65 ID:7U+HR4FY0.net] >>960 (*゚∀゚)bブーイモは期待通り駄目だな
977 名前:デフォルトの名無しさん [2017/11/28(火) 16:23:31.62 ID:1xNDji3d0.net] クラスの継承だと一個しか継承できないじゃん。 機能が被ってるけど親子関係にはないクラス作りたかったらそれぞれに同じ機能実装しないとダメじゃないの?どうやるの?
978 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 17:20:04.90 ID:Qe8OZN310.net] 多重継承
979 名前:デフォルトの名無しさん [2017/11/28(火) 17:35:52.85 ID:SapPVZy10.net] それぞれで実装しないといけないのはどっちでも同じだけどインターフェースがないと親子関係にないクラスに同じ機能があることを明示できない。
980 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 18:34:11.84 ID:7U+HR4FY0.net] >>964 はぁ? どういうケース?
981 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 18:58:30.06 ID:AywzDJwi0.net] おまえ、.NETのライブラリがインターフェースだらけだと知って インタフェースはイラネって言ってるのか?
982 名前:デフォルトの名無しさん [2017/11/28(火) 19:05:52.27 ID:MQt2+v8o0.net] >>965 どういうケースもクソもないだろ。 インターフェースってそういうもんだろ? インターフェース使えば親子関係にないクラスでも同じ機能のメンバに同じ書き方でアクセスできるようにできるぞ。
983 名前:デフォルトの名無しさん [2017/11/28(火) 19:08:08.25 ID:MQt2+v8o0.net] >>966 みんなが使うライブラリならインターフェース使ってもいいけど同じチーム内でしか使わないならそんなのいらないらしい
984 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:09:54.51 ID:7U+HR4FY0.net] >>966 企業が全体に提供するものは有りだと思ってる インターフェースを提供する側と使用する側が明確じゃん ドキュメントも割りとしっかり書かれるだろうし サンプルソースもあれば テストもしっかりされてる でも人売り派遣プロジェクトではコミュニケーションコストが上がるだけなので無駄 10人以内のプロジェクトでは無駄ぐらいに受け取ってくれていい
985 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:17:20.15 ID:AywzDJwi0.net] >>968 ユニットテストでモック使うときはインターフェース使うけどね。 奴隷派遣の戦場ではインターフェース不要は認める。
986 名前:デフォルトの名無しさん [2017/11/28(火) 19:30:18.03 ID:MQt2+v8o0.net] 要するにインターフェースいるか要らんかは条件次第なのにインターフェース自体要らん(と言ってるように聞こえるようなこと)を言い出したそいつが諸悪の根源ってこと。
987 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:39:10.15 ID:Z6M2FdMEH.net] 俺が理解できないものは使わない ← これは正しい 俺が理解できないものは要らない ← 単なるおバカ
988 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:41:18.71 ID:7U+HR4FY0.net] >>971 いや、大手ライブラリ提供側なら使ってもいいってだけで メリットはさっぱりわからん いらないんじゃない?
989 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:43:27.10 ID:muuNV74C0.net] ソルジャーはインタフェースに定数を定義する
990 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:50:33.68 ID:1gCYrVqGM.net] javaの様にinterfaceにトレイトを入れれば?
991 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 19:53:10.33 ID:w7dx9OeN0.net] ジャップを以外に人売り派遣C#ユーザーなんかいねーから問題ねーだろ
992 名前:デフォルトの名無しさん [2017/11/28(火) 20:08:25.12 ID:A5IfF+7K6.net] >>973 メリットはクラスになにかしらの共通の機能を次々と簡単に付加できること そしてその機能を持ってるクラスのオブジェクトをまとめて処理可能
993 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:11:57.14 ID:1gCYrVqGM.net] interfaceは必要なメンバーを持ってるよという印なだけで 機能追加は別な話
994 名前:デフォルトの名無しさん [2017/11/28(火) 20:15:05.35 ID:A5IfF+7K6.net] どっちでもいい 例えばINotifyナンチャラとか付ければ簡単に新しい機能を付加できるしその機能があることをプログラムが知ることができる
995 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:34:10.41 ID:7U+HR4FY0.net] >>978 俺もそう思う 機能追加は別だよね
996 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 20:36:14.43 ID:7MxKQMqJ0.net] >>980 次スレ
997 名前:デフォルトの名無しさん [2017/11/28(火) 20:42:42.92 ID:A5IfF+7K6.net] >>980 別だとしてもその実現の過程でインターフェースは必要になる 機能をペタペタ付加したいなら基底クラスの継承だけで共通化するより簡単になる
998 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:32:30.59 ID:7U+HR4FY0.net] >>981 ふらっと C#,C♯,C#(初心者用) Part134 mevius.5ch.net/test/read.cgi/tech/1511872248/ mateの機能使ったらワッチョイ付いてなかったw
999 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:34:31.90 ID:7U+HR4FY0.net] >>982 え?別にいらないし俺は お前しか使ってないんだからお前が説明しろよw
1000 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:46:03.84 ID:Uj4nMEBrr.net] >>972 ww まあよくいるけどね そう言う人達
1001 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:06:45.64 ID:+2YCkirN0.net] >>984 初心者ならインターフェイスは不要 if使ってクラスごとに場合分けして書けば対応できる この書き方が冗長だと感じたときに必要になる
1002 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:10:01.45 ID:7U+HR4FY0.net] >>986 昔はそういうのもあったかもしれんけど 今は明示的に書くことのわかりやすさの方を優先してるから ゴミにしか見えないや
1003 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 22:17:35.16 ID:s2z2xmpX0.net] >>987 はいキチガイ
1004 名前:デフォルトの名無しさん [2017/11/28(火) 22:29:51.83 ID:g1MyZtTV0.net] クソスレ
1005 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 04:01:41.95 ID:GKLQJ/Lf0.net] クソレス
1006 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 06:39:28.26 ID:72enVETJ0.net] >>952 これインターフェイス関係なく普通の継承でもそうじゃん StreamのDisposeを使うときはあらゆる実装を確認するのかな
1007 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 07:04:15.95 ID:YmbiuT7DM.net] staticおじさんは直ぐに意固地になる 神が人間クラスにstaticおじさんインターフェースをimplementsした上、加齢により意固地になるメソッドに実装書かれたから
1008 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 08:19:51.68 ID:rMr3voC10.net] >>991 だから企業が提供してるなら有りって言ってんじゃん でも手作りならやめるべき
1009 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 08:39:14.71 ID:VYTpT9vMM.net] >>993 ほんと中途半端な実装は迷惑だよね。 中身を見て殺意を覚
1010 名前:えるようなのがあるよ。 [] [ここ壊れてます]
1011 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 09:31:54.46 ID:rMr3voC10.net] >>994 お前が自分はそうじゃねぇって思ってるならその考えを改めるべき
1012 名前:デフォルトの名無しさん [2017/11/29(水) 09:33:48.08 ID:bodUKsOx0.net] \  ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `'ー '´ ○ O ,r"´⌒`゙`ヽ / , -‐- !、 / {,}f -‐- ,,,__、) と思うゴリラであった / / .r'~"''‐--、) ,r''"´⌒ヽ{ ヽ (・)ハ(・)}、 / \ (⊂`-'つ)i-、 `}. (__,,ノヽ_ノ,ノ \ l `-" ,ノ ヽ } 、、___,j'' l
1013 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:01:47.13 ID:+NOPuT/4p.net] やけに盛り上がってると思ったらおじさん湧いてたのかぁ
1014 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:29:15.32 ID:rMr3voC10.net] >>997 お父さん(白い犬)チッス
1015 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 10:49:50.75 ID:gShtlFNMd.net] まだいたのかキチガイ
1016 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 11:07:12.42 ID:VFisOLC/M.net] >>999 同一人物か? いくつ端末持ってんだ? ガイジ過ぎるw
1017 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 21日 13時間 55分 47秒
1018 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています