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


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

ふらっと C#,C♯,C#(初心者用) Part133



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

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()



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]
>>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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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