ふらっと C#,C♯,C#(初心者用) Part133
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 7bde-MYX9)
垢版 |
2017/11/07(火) 21:11:25.20ID:LeQqgpmT0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
http://mevius.5ch.net/test/read.cgi/tech/1507543256/

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

■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/07(火) 22:06:49.52ID:cTk2bFo+0
0005デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/07(火) 23:17:05.39ID:cTk2bFo+0
開発になんのフォント使ってる?
0007デフォルトの名無しさん (ワッチョイ 0676-9Rqp)
垢版 |
2017/11/07(火) 23:37:30.45ID:mi3cUHZI0
前スレでリストの抽象化に関して聞いた者ですが
もう少し整理して説明すると下記のコードの"IList<共通の型>"部分を
共通の型で作れないかなと考えておりました
クラスならばインターフェースで共通の型に出来ますが
リストのようなコレクションも出来たら良いなと

class Hoge
{
public string Hogege { get; set; }
}

class Fuge
{
public string Fugaga { get; set; }
}

class Program
{
static void Main(string[] args)
{
IList<共通の型> dto1 = new List<Hoge>();
IList<共通の型> dto2 = new List<Fuge>();
}
}
0009デフォルトの名無しさん (ワッチョイ e58a-cDlW)
垢版 |
2017/11/08(水) 00:15:38.90ID:anngrWrU0
>>7
いまいち意味不明なんだが、同じリスト型で管理したいクラスってことは
それぞれis-a関係になる共通の継承元があるはずだろ?

class Hoge : 共通の型 {...}
class Fuga : 共通の型{...}

var List<共通の型> = new List<共通の型>();

でダメな理由がわからん
これで「HogeとFugaを抽象化した型」のリストができるだろ?

リストその物の抽象化って話なら、List<T>がそのものズバリなんだから、
何を言いたいのか理解できてない
せめて用途を説明してくれ
0010デフォルトの名無しさん (ワッチョイ e58a-cDlW)
垢版 |
2017/11/08(水) 00:20:45.56ID:anngrWrU0
>>9
あ、変数名抜けてた
0011デフォルトの名無しさん (ワッチョイ 2ee8-BQiS)
垢版 |
2017/11/08(水) 00:40:48.04ID:CLyn8lVQ0
みんなListList
Dictionaryのがいいよ
0016デフォルトの名無しさん (ワッチョイ e5a5-i2sB)
垢版 |
2017/11/08(水) 22:18:42.71ID:kPo1IP0w0
プロパティについて教えてください
setとgetが呼び出されるタイミングがよくわかりません
以下のようなコードがあったとしてsetが呼び出されるのはTestに値が代入された時という理解で合っていますか?
getはsetが呼び出されると自動的に呼び出されるというようなぼんやりした理解なのですが正しいでしょうか?

またgetだけが呼び出されるケースもあると資料で見たのですがそれはどのような使い方をした時なのでしょうか?
初歩的な質問で申し訳ありませんがよろしくお願い致します

Private int test
Public int Test()
{
set {
test= value;
}

get {
return test
}
}


public void Main()
{
Test=100;
}
0022デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/08(水) 23:33:00.93ID:8vwit5Fs0
俺が作ったプログラムを起動させた結果
https://i.imgur.com/WFwZTSM.png
0024デフォルトの名無しさん (ワッチョイ e175-3oFj)
垢版 |
2017/11/08(水) 23:41:19.13ID:Fypp0IbQ0
>>22
なんか描画してるの?
0025デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/08(水) 23:46:07.65ID:8vwit5Fs0
>>24
エロ動画詰まったZIPを
Parallelで解凍したらこうなった
40個位
0036デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/09(木) 14:07:05.33ID:xkkUp3yc0
これまで客の要望で20個ぐらいParalleにしたけど
一つとして早くなったことないよ
ボトルネックがIO周りなのに勘違いしてる奴多過ぎな気がする
ハードディスクに保存するのもIOやで?
って言ってわかるやついねーよな
パンピーじゃ
0037デフォルトの名無しさん (ワッチョイ df8a-KLCy)
垢版 |
2017/11/09(木) 16:51:34.36ID:cNKMHUR60
>>28
>>7で既に使ってると思うんだが何を調べるのか…
0039デフォルトの名無しさん (ワッチョイ ffe8-yfb/)
垢版 |
2017/11/10(金) 00:17:10.66ID:J/IcK0Bh0
parallelで解凍したエロ動画はRAMディスクに出力したよ
7分→2分になったよ
0040デフォルトの名無しさん (ササクッテロレ Sp33-nSoy)
垢版 |
2017/11/10(金) 00:59:14.89ID:WaNBZPrLp
VSでもC#でもないからややスレチになるが、
make に-j4 付けてもビルド70分くらいから60分くらいになるだけであまり速くならなかったのに
さらにノートン先生でビルドするディレクトリ外したら20分になったことがある
新規ファイルが大量に出来る場合、パラレルにしても変わらないと感じるなら、I/O以外にもタスクマネージャーでウィルスチェックしてないか確認必要
0046デフォルトの名無しさん (ワッチョイ ffa5-ySnM)
垢版 |
2017/11/10(金) 07:46:11.03ID:g/THXaNi0
非同期IOは旧来のクライアントごとのスレッドでリクエストをさばくやり方よりオーバーヘッドが少ないから
C10Kに耐えられるってだけで、シングルスレッドのままじゃ性能は高くない。
性能を求めるならそれをコア数分のスレッドで走らせる。
0049デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/10(金) 18:45:01.22ID:i6RuFN3y0
>>43
技術的に答えさせていだだきます
C#よりもVBの方がキーワードの数が多く難易度も高くなりますから
使用するプログラマーの能力的にはVBの方が優勢であると言えるでしょう
0054デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/10(金) 20:21:19.35ID:i6RuFN3y0
>>53
底辺のお前が言うなw
0055デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 20:48:46.88ID:SSmhpTC60
Parallel処理内で
一つのListにAddしてっても文句言われない?
0058デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 20:56:22.58ID:SSmhpTC60
>>56
天才かよ
>この型のpublic static (Visual Basic ではShared) メンバーは、スレッド セーフです。

>>57
それ遅いらしい
0059デフォルトの名無しさん (ブーイモ MM0f-hQHN)
垢版 |
2017/11/10(金) 21:02:22.44ID:kHWlHLuRM
>>58
それstaticメンバ以外はスレッドセーフじゃないってことだぞ
あと、たかがListのAddのロックのコストが問題になるような状況なら
Listを共有しないでスレッドローカルでList作って終わってからマージした方がいい
0061デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/10(金) 21:07:25.77ID:7i6+bCDW0
>>58
Addとかインデックスでの参照はオブジェクトのメンバだろ?ダメじゃん。
結局lockしかない
0062デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 21:08:58.39ID:SSmhpTC60
いるんだよなあstaticアンチ
staticでスレッドセーフなら万々歳だけどね
0063デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/10(金) 21:10:20.09ID:7i6+bCDW0
0064デフォルトの名無しさん (ブーイモ MM0f-hQHN)
垢版 |
2017/11/10(金) 21:10:46.32ID:kHWlHLuRM
>>62
お前は何を言ってるんだ
Listをstaticフィールドに入れたらスレッドセーフになるんじゃなくて、
Listクラス自身のstaticメソッドに限ってスレッドセーフであるということだぞ
0065デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 21:25:08.41ID:SSmhpTC60
つまりどういうことだってばよ…
こういうことちゃうんか?

class Hoge
{
public static List<Huga> aaa = new List<Huga>();

private void ParallelOjisan()
{
Parallel.ForEach(aaa, op, a =>
{
Hage h = new Hage();
aaa.add(h.GetData(a));
});
}
}

動いたぞ
0067デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 21:32:13.69ID:SSmhpTC60
public static List<Huga> aaa;

これでええんか?
0069デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/10(金) 21:33:29.83ID:7i6+bCDW0
Addはstaticメソッドじゃねーよ
0070デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 21:35:03.80ID:SSmhpTC60
>>69
あ…そうなんだ…
じゃあ作らなきゃstaticなAdd
0073デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/10(金) 21:43:06.07ID:7i6+bCDW0
>>70
staticだからスレッドセーフなんじゃねーよw
Listのstaticメソッドは全部スレッドセーフに作ってるよってマイクロソフトが言ってるだけw
素直にlock使うか>>59で言ってるようにしろw
0075デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 21:57:42.58ID:SSmhpTC60
これMSが説明下手なだけだからね
Lockおじさんの言うとおりにするよ
0076デフォルトの名無しさん (ワッチョイ 5fbe-OZYs)
垢版 |
2017/11/10(金) 22:01:04.30ID:lM00qbpm0
無知な癖に謎の態度
0077デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 22:04:52.67ID:SSmhpTC60
てかスレッドローカルおじさんがわからん
スレッドローカルなのにあとでマージって出来るん?

もしかしてParallel処理終わっても
スレッド指定してその中身取れるの?
0078デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/10(金) 22:18:25.44ID:SSmhpTC60
あ、わかったわ
なんでもない
0082デフォルトの名無しさん (ワッチョイ 5f23-hQHN)
垢版 |
2017/11/10(金) 23:23:11.10ID:TSxiC3iy0
ConcurrentBagはロックフリーじゃないぞ
追加と取り出しを並行して行うために作られた複雑なコレクションで、オーバーヘッドも大きい
追加だけなら滅多に競合しないはずだから、普通にロックしたほうがむしろ速いんじゃないか?
0084デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/11(土) 00:28:03.41ID:Wyc7UUxM0
お前らブイバーの爪の垢でも煎じて飲めよ
0086デフォルトの名無しさん (ワッチョイ df8a-KLCy)
垢版 |
2017/11/11(土) 05:01:11.17ID:epAZZTWl0
ID:SSmhpTC60とかいうアスペ
0088デフォルトの名無しさん (ワッチョイ 7fd2-ySnM)
垢版 |
2017/11/11(土) 12:00:52.86ID:oSkXIpj60
初歩的な質問ですがお願いします。
C#で画像ビューアを作製しています。
ドラッグアンドドロップで画像を表示する事はできたのですが、
ダブルクリックして画像を表示する方法が分かりません。
jpeg等の画像ファイルに自作プログラムを関連づけておいて
ファイルをダブルクリック→自作プログラムが起動して画像を表示、という様にしたいです。

この方法について解説しているサイトか
ググるためのキーワードだけでも教えてもらえるとありがたいです。
0091デフォルトの名無しさん (ワッチョイ 5f02-OZYs)
垢版 |
2017/11/11(土) 12:21:55.21ID:aAbgGGPi0
>>88
「プログラムから開く」で自作ソフトを選択して起動させるとmain関数の引数にダブルクリックしたファイルのパスが入る。
0095デフォルトの名無しさん (ワッチョイ 5f02-OZYs)
垢版 |
2017/11/11(土) 17:14:52.12ID:QA+V6jEx0
プログラミング初心者に英語ドキュメント突きつける鬼畜
0096デフォルトの名無しさん (オッペケ Sr33-48y6)
垢版 |
2017/11/11(土) 17:22:47.41ID:6DAw5yNPr
まあ今時
と言うかこれからはと言うか
英語のドキュメントのリーディングくらいは必須スキルかもね
MSもいつまで日本語ドキュメント提供してくれるか分からんよw
0097デフォルトの名無しさん (ワッチョイ 7fd2-ySnM)
垢版 |
2017/11/11(土) 17:32:07.79ID:oSkXIpj60
>>89-84
予想外に沢山のレスありがとう
なるほど、Main関数の引数からパスを取ればいいのね
GUIでも内部的にはコマンドラインと同じってことか
GUIアプリって作ったこと無かったから難しく考えすぎてたよ
0099デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/11(土) 17:33:33.06ID:Wyc7UUxM0
リーディングくらいは日本語で言えんのか
0100デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/11(土) 17:49:21.24ID:QwHnz2ZY0
日本語(機械翻訳)
0111デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/11(土) 18:59:52.33ID:QwHnz2ZY0
英語だと読めないことはないが直感的に読めないので読む気失せるから嫌だ
0112デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/11(土) 19:01:35.88ID:fOHx5JH9a
言葉に関する能力でプログミング能力と関係がありそうなのは
説明的な文章を書く能力だろうけど、個人的にはまったく無関係とも思えんけど
そこまで関係するのかなという気もする。微妙だね
0115デフォルトの名無しさん (ワッチョイ 5f96-eUVz)
垢版 |
2017/11/11(土) 19:29:41.43ID:CYrZ+T3I0
C#とJSって同じ部分があるんですけど
同じ部分はJSと同じ感じで使ってもいいんでしょうか
0117デフォルトの名無しさん (ワッチョイ 5fb3-KLCy)
垢版 |
2017/11/11(土) 21:03:18.54ID:r1EKDs0n0
DB接続を抽象化する為にインターフェイスの使用を考えていますが、取得する項目を明示したい場合ってどういう風にすればいいのでしょうか?

例えば
class Book

public string Title{get;set;}
public int Price{get;set;}
public int Pages{get;set;}

の形式でDBから取得してればどのDBでも使えるインターフェースを作りたいのですが、このBookの定義をどこに記述できるのかが分かりません
0119デフォルトの名無しさん (ワッチョイ 5fb3-KLCy)
垢版 |
2017/11/11(土) 21:24:33.76ID:r1EKDs0n0
>>118
ありがとうございます
内容見ましたが、この場合はインターフェースは不適切で抽象クラスが正解って事でしょうか
他にもこの2つの違いについて記してあるサイト見ましたが一部明示的な実装するには抽象化クラスと言うわけですね
0123デフォルトの名無しさん (ワッチョイ 5fb3-KLCy)
垢版 |
2017/11/11(土) 22:39:04.35ID:r1EKDs0n0
>>120
こういう関数もあるのですね、ありがとうございます
調べましたがどこまでの範囲で接続に使えるか分からないので今回は見送ろうかと思います
参考サイトは多い感じなので便利な機能そうでした

DBと書きましたがcsvやExcelといったものからも取得を考慮していました
少し仕様説明が足りてませんでしたね・・・
0124デフォルトの名無しさん (アウアウアー Sa8f-nvIT)
垢版 |
2017/11/12(日) 01:15:25.26ID:n0dr1tl2a
APIを使用したファイル変換の変換状況を知るために自作メソッドのGetStatus()をSystem.Timers.TimerのElapsedイベントに設定して200msecごとに状況を取得することができました。
その変換を繰り返し行う際、そのタイマーのイベントが発生している時でも次のファイル変換を実行してしまいます。GetStatus()で変換終了判定が出た場合(Timer.Enabled=falseのあと)に次のファイル変換を行うようにしたいのですが、どのようにしたらいいでしょうか?
0125デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/12(日) 01:22:00.64ID:bU5Cj3UO0
タイマーイベントのイベントハンドラの最初の行でEnableをFalseにして処理が終わったところでEnableをTrueにする
0127デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/12(日) 01:37:54.98ID:bU5Cj3UO0
すまん。質問をよく理解してなかった
0128デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/12(日) 02:38:51.64ID:A0+Crtura
>>124
正直、何を言ってるのかさっぱり分からないし、それが俺の読解力のせいだと思えないw

その変換とやらを実行するクラスなりメソッドなりが、
現状、一つのファイルの変換が終わると次のファイルの変換を自動的に始める
仕様になっているんだと思うが、それを自動から手動、つまり外から明示的に
メソッドを呼ぶなり特定のプロパティの値を変えるなりしないと次のファイルの変換が
始まらないように変えるだけのことじゃないの?
0131デフォルトの名無しさん (アウアウアー Sa8f-nvIT)
垢版 |
2017/11/12(日) 04:18:09.89ID:n0dr1tl2a
>>127
>>128
下手な文ですみません
TimerのElapsedで指定したイベントが発生中は次の処理をせずに、Timer.Enabled=falseになってから次の処理を実行するものだと思っていたんです
>>128さんの言うように変換終了判定の場合にプロパティかフラグを立ててそれを監視?するようにしてみます
0132デフォルトの名無しさん (ワッチョイ 7fb3-kkiU)
垢版 |
2017/11/12(日) 06:39:56.32ID:MOg5phwx0
>>129-130
今の自動翻訳だと結局原文参照にいくことも多々あるんだが...
なんのためにカーソル置くと原文表示するようにしてるのかも理解してないのかよ w
すごくウザイから設定で表示しないようにして欲しいが
0134デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/12(日) 07:20:55.29ID:cRgWk2Y70
最近、プログラミングの腕をそれ以外に求めてる奴が暴れててウザイ
英語ができたからなんだってんだよ
くだんねーアプリしか作れないからくだんねーこと気になるんだぞお前
0135デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
垢版 |
2017/11/12(日) 07:49:13.63ID:e5xLDhIK0
>>123
>DBと書きましたがcsvやExcelといったものからも取得を考慮していました

世の中には、ODBCと言うものがあって、odbc excel driverとかodbc text driver や他のdbも使える
つ ?System.Data.Odbc.OdbcConnection
0140デフォルトの名無しさん (ブーイモ MMa3-hQHN)
垢版 |
2017/11/12(日) 08:52:42.69ID:OnRpH+1DM
ドカタ系にいたときもわりとアメリカの新しいパッケージや製品を使う仕事してたが
専門卒の委託のメンバー達はITスキルはあるのに英語が読めなくて全然仕事できなくて不憫だったわ
英語ができないと国内でも後追いになっちゃう
0142デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/12(日) 09:20:22.95ID:cRgWk2Y70
>>136
だからなんだよ
テメーみてーな発達障害持ってなきゃ英語なんか読めなくてもマニュアルのいみぐれーわかんだよバーカ

英語読めるからぼくちゃんのプログラミングの腕も確かでチュよ褒めてって?

気持ち悪ぃんだよさっさとくたばれガイジ
0145デフォルトの名無しさん (スププ Sd9f-KLCy)
垢版 |
2017/11/12(日) 11:02:16.46ID:7vMgKcBHd
>>142
どんだけコンプレックスあるの
0146デフォルトの名無しさん (ワッチョイ 5f25-OZYs)
垢版 |
2017/11/12(日) 11:21:03.88ID:V8vWJYoP0
マ板並みの見苦しさ
0147デフォルトの名無しさん (ワッチョイ 5fa5-TPjW)
垢版 |
2017/11/12(日) 11:27:55.80ID:/Gc52cuR0
http://tercel-tech.hatenablog.com/entry/2015/04/29/181723

こちらの方のコードを参考に電卓の自動化を試みてるのですが、

mainForm = AutomationElement.FromHandle(process.MainWindowHandle);
のところでエラーが出ます。

型 'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました
追加情報:プロセスは終了しているため、要求された情報は利用できません。

何が原因でしょうか?
0149デフォルトの名無しさん (ワッチョイ ff9a-TPjW)
垢版 |
2017/11/12(日) 11:41:43.01ID:VwNKZEQ+0
>>147
電卓("calc")が起動しているか
デバッガでprocessがnullになっていないか
をそれぞれ確認
全部こっちで確かめるのはめんどうなので例えば
Thread.Sleep(DEFAULT_WAIT_TIME);
の部分を
while(process=null){Thread.Sleep(DEFAULT_WAIT_TIME);}
と書き換えてみるとか。いい加減な方法だからデバッグ時以外に勧めないが
0151デフォルトの名無しさん (ワッチョイ 5fa5-TPjW)
垢版 |
2017/11/12(日) 11:52:22.18ID:/Gc52cuR0
自分の環境はwin10で以前までと仕様が違いますよね。
それが原因かもしれません。
電卓のウィンドウハンドルを直接指定してやったら正常に動きました。
ここの方は親切ですね^^
頑張りたいと思います。
0152デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/12(日) 12:15:13.20ID:j8Tzb3u50
実行してもフォームが固まらないアプリって全部にDoEventsが入ってるわけなん?
メッセージキューは排他のために処理待ちになるん
0156デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/12(日) 13:00:56.85ID:j8Tzb3u50
>>154
さんきゅ
0158デフォルトの名無しさん (ワッチョイ 5fa5-TPjW)
垢版 |
2017/11/12(日) 14:51:20.87ID:/Gc52cuR0
c++
void __stdcall systemcall(string passbuf,bool wait_flag)

c♯
[DllImport("sample.dll", CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
private extern static int systemcall(string passbuf,bool wait_flag);

これで
systemcall("dir", true);

保護されていないメモリがどうの出てエラーになりますが何がいけないのでしょうか?
0160デフォルトの名無しさん (ワッチョイ 5fa5-TPjW)
垢版 |
2017/11/12(日) 14:54:56.10ID:/Gc52cuR0
c♯側のvoidがintになってましたが記述ミスです><

エラー内容は正確には
ハンドルされていない例外: System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとし ました。他のメモリが壊れていることが考えられます。
0165デフォルトの名無しさん (ワッチョイ ffa5-ySnM)
垢版 |
2017/11/12(日) 18:26:13.27ID:/VKzDrV00
フォームアプリの新規作成は推奨しないってアナウンスはあるんで、それのことじゃないかな。
https://support2.microsoft.com/kb/3001686

C++/CLIそのものはまだサポートされてると思う。廃止されたのはマネージ拡張。
マネージ拡張からC++/CLIへの移行ドキュメントとか、比較的最近の日付でメンテナンスされてるし。
0172デフォルトの名無しさん (ワッチョイ ffa5-ySnM)
垢版 |
2017/11/12(日) 19:40:46.39ID:/VKzDrV00
C++/CLIって、なぜか使ったことなさそうな人にやたら叩かれるよねぇ。
自分に必要なけりゃスルーしとけばいいのに、わざわざ「要らない」アピールするのが謎だ。
0178デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/12(日) 20:32:44.51ID:bU5Cj3UO0
>>170
急に飛躍しすぎ
0181デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/12(日) 21:09:15.54ID:H0u2BwIs0
まあ最新技術はPythonやPHPで実装される時代だしな。
0183デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/12(日) 21:44:46.58ID:H0u2BwIs0
いや、Cは要らないだろ。
Pythonが有れば何でもできる。
0186デフォルトの名無しさん (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/12(日) 22:14:51.64ID:uWcm4jWJ0
String testid= "ABCD" + ".text";

このABCD.textっていう中身は"テスト"っていう文字列が入ってるとします。
でも、testidの中には”ABCD.text"が設定されるのですが、
どうすれば"テスト"という値が入るのでしょうか。

ABCD.textはtextviewで"テスト"という文字をあらかじめ設定しています。
0188186 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/12(日) 22:34:55.34ID:uWcm4jWJ0
下記の引数でアクセスすると、上記は期待値が入るのですが、
下記のtestidを指定するとおもった結果となりません。
しかし、ABCD.textといった風に直接指定するのではなく変数か何かで間接的に指定したいと思っております。

関数(ABCD.text);
関数(testid);
0200デフォルトの名無しさん (ブーイモ MMa3-sJj3)
垢版 |
2017/11/12(日) 23:37:57.60ID:eFe5AqQqM
>>186
"ABCD" + ".text"してるなら
testidの中身はやはり "ABCD.text"です
ただの文字列です
それが勝手に”テスト”になってたら怖いし不便です
プログラムしてて予測がつきませんので"ABCD.text"のままでいるほうが安心です

"ABCD.text"からABCD.textにできる言語もありますが
C#は基本的にそういうのはやらない方向でプログラムするべきです
0205デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 00:31:47.43ID:sn+CO+UA0
>>186
String testid= "ABCD" + ".text";
じゃなくて

String testid=ABCD.text;
0207デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 00:38:07.10ID:sn+CO+UA0
答えはリフレクションだろ?
0209デフォルトの名無しさん (ワッチョイ df8a-KLCy)
垢版 |
2017/11/13(月) 01:41:09.93ID:v8HXsfBj0
>>208
は?
0216デフォルトの名無しさん (ワッチョイ ff7f-OWtR)
垢版 |
2017/11/13(月) 18:28:32.97ID:SvVWerXL0
プリミティブな配列
例えばstring[]とかってシリアライズ出来ましたっけ?
0218デフォルトの名無しさん (スププ Sd9f-KLCy)
垢版 |
2017/11/13(月) 20:26:35.00ID:WRqgiOAAd
>>188
致命的に説明が下手か何も理解してないかのどっちかだと思う
下手に一般化するより今書いてるコードにコメント書いてそのまま晒した方がマシ
0219デフォルトの名無しさん (ワッチョイ 7f7f-OWtR)
垢版 |
2017/11/13(月) 21:09:23.39ID:K5+qKqcP0
>>217
ありがとうございます
0220デフォルトの名無しさん (スププ Sd9f-gMZ8)
垢版 |
2017/11/13(月) 21:18:38.99ID:hP7f8JAdd
asynctaskの中でhttpによるデータ取得して取得したデータを戻り値で返す処理を作成しました。
同時にexceptionによる詳細なエラー内容も戻り値として返したいのですが、どのようにすればよいでしょうか?
戻り値が2つできないので困っております。又、戻り値の型は違います。
0225デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
垢版 |
2017/11/13(月) 21:38:36.94ID:sn+CO+UA0
>>220
エラーオブジェクトに応答とその他情報突っ込んでthrow
0226デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/13(月) 22:01:26.37ID:qSvbvuzsa
>>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; }
}
0228220 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/14(火) 01:18:02.74ID:Rbk2zOBm0
正常時は別の戻り値、異常時はthrow?で戻り値の型に合った内容が、
格納されるのでしょうか。
呼び出し元で、どのように取り出せばよいのでしょうか。
0229デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 01:28:44.28ID:Xx2aI1jk0
>>228
エラー処理で検索
0230228 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/14(火) 01:36:41.11ID:Rbk2zOBm0
いろいろお教えいただいているのですが、
http://www.nowonbun.com/2016/06/c-trycatchthrowfinally.html#!
↑のようなHPとかthrow とかエラー処理で検索しても
戻り値に入れて、それを呼び出し元でどのように見ているのかいくら探してもでてきません。。

try,catchとかでコンソールにエラー内容出力のことではないですよね。。
0233デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 01:44:37.90ID:Xx2aI1jk0
関数内で例外をキャッチして新しくException オブジェクト作ってそのInner
Exception にキャッチした例外オブジェクトを突っ込んで作った例外オブジェクトのDataプロパティに返したたいデータ突っ込む
それをthrowして呼び出し元でキャッチしてDataプロパティから取り出す
0235228 (ワッチョイ 5fe9-vLjR)
垢版 |
2017/11/14(火) 01:59:34.75ID:Rbk2zOBm0
皆さまありがとうございます。いまださっぱりわからないので出直してきます。。
ありがとうございました。

try catchでcatchのとこにエラー情報が入る?まではわかったきがするのですが、
再スローとかInnerExceptionになるとさっぱりでした。

下位の呼び出し先のエラー情報を上位の呼び出し元にthrowすれば戻り値関係なく渡せるといった感じなのでしょうか。。
サイトみててもそうはどうやってもみえなかったのです。
0242デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 02:22:37.27ID:Xx2aI1jk0
>>236
どういうこと?
Exception派生クラスの中から適切なものを選ぶってこと?
それともキャッチした例外オブジェクトにデータを付加するの?
0247デフォルトの名無しさん (スップ Sd9f-voEu)
垢版 |
2017/11/14(火) 02:31:42.57ID:WLqSYvBrd
>>245
ちゃんと読めよカスwww

>自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。
0249デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 02:33:31.14ID:Xx2aI1jk0
なんでスップ2つ+固定回線で自演してるの?
0250デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/14(火) 02:34:47.54ID:L0+XEUiLa
>>247
言っちゃわるいけど、君の読解力がおかしいことはよくわかった。

その一文のどこをどう呼んでもキャッチした例外をInnerExceptionに入れて
別の例外を投げてはいけない、などという意味には読めません
0252デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/14(火) 02:38:38.93ID:L0+XEUiLa
しかし、

>自作のソース コードからは、意図的に System.Exception、System.SystemException、System.NullReferenceException、または System.IndexOutOfRangeException をスローしないでください。

これ、前者2つがダメな理由は分かるけど後者2つはかなり意味不明だね。
翻訳ミスを疑ったけど英語でもそうなってる。
これはさすがに盲従する奴はアホだと思う
0256デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/14(火) 02:46:50.86ID:L0+XEUiLa
>>253
なるほど、NullReferenceExceptionの方は一応回答者が理由出してるけど
もっと明示的な例外の方が良いから使うなというには弱いように感じるね。

IndexOutOfRangeException の方は使っちゃダメな理由出てないね
0264デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/14(火) 02:56:20.70ID:L0+XEUiLa
>>263
君、そういうくだらないレスしかできない自分が嫌にならないの?
絵に描いたような「精神勝利法」だけど、そんなので勝った気になれるって小学生かよ。
俺ならプライドがあるからやらないけど、きっと傷つくような自尊心なんて最初から持ってないんだね
0266デフォルトの名無しさん (ワッチョイ 5f8a-KLCy)
垢版 |
2017/11/14(火) 05:35:40.63ID:e8+qL+KH0
>>264
久々にみた気持ちの良いブーメラン
親切に教えてもらっても意固地になる人って職場にも一人はいるよね
0269デフォルトの名無しさん (バッミングク MMdf-ioWr)
垢版 |
2017/11/14(火) 07:11:13.47ID:R9xQaEyZM
プロパティだけのデータストア用インナークラスを作ってるんですけど、クラスの修飾子をprotectedにして中のプロパティをpudlicにしています
メンバの方がアクセス権が広い事に違和感を感じるのですが世間様ではある事なのでしょうか
0271デフォルトの名無しさん (ワッチョイ 5f4b-7wKg)
垢版 |
2017/11/14(火) 08:09:47.71ID:sF+2jjEu0
>>267おまえなら>>220にどう対処する?
0272デフォルトの名無しさん (ワッチョイ 5f23-hQHN)
垢版 |
2017/11/14(火) 08:27:49.82ID:04qZtOw+0
>>269
クラスがprivateの場合はメンバの方を広くするしかないんだからそれ自体はおかしくない
クラスがinternalでメンバがpublicというのはよくある
でもprotectedな内部クラスというのはそもそもあまり一般的ではないと思う
クラスの外にその内部クラスを使うユーティリティを定義したくなったらどうする?
紛らわしくて不便なだけで特にメリットがない
0273272 (ワッチョイ 5f23-hQHN)
垢版 |
2017/11/14(火) 08:29:03.55ID:04qZtOw+0
補足
(派生クラスを作ろうとした人が)クラスの外にその内部クラスを使うユーティリティを定義したくなったらどうする?
という意味な
0275デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 09:09:39.51ID:HdsegbLs6
>>274
同期だったとしてどうする?
0277デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 09:11:01.60ID:HdsegbLs6
>>276
サーバーに接続出来なかったらどうする?
0279デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 09:15:00.68ID:HdsegbLs6
>>278
レフトとか知らないけど例外でよくね?例外がダメ理由は?
0281デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 09:32:31.86ID:HdsegbLs6
>>280
呼び出し関数内で何かしらのデータを作ったとしてそれはどうやって呼び出し元に伝達する?
0284デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 09:41:26.10ID:HdsegbLs6
>>282
404のレスポンスボディとか
0286デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 10:00:57.46ID:HdsegbLs6
例外処理は汚くなるからイベントハンドラとかみたいな呼び出し階層の最上位にだけに集約させたいってこと?
0288デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/14(火) 10:11:37.55ID:NRM6wS+d0
存在しないリソースを要求するだけで例外を引き起こせるなら。
0289デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 10:23:21.54ID:HdsegbLs6
>>267>>276が何を言いたいのかわからん
0295デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 13:51:56.33ID:D89+JmTA0
でもファイルが開けないで例外は困る
他のも完全に例外とそうでないのと作った奴との波長が合わないと
仕分けが面倒臭い
いっそ握り潰すは結構わかる
なんかいい手はるのか?
0303デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 14:21:12.02ID:D89+JmTA0
>>299
うんちっちException
うんこっこException
うんこっここっこException
ちんぽっぽException
ちんぽっぽちんぽException
ちんちんException
まんこっこException
まんこっこっこException

それぞれ挙動を変えたい
0311デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 16:03:35.67ID:D89+JmTA0
ところでCsvHelperのCurrentRecord消えてんじゃん
たかがCsvでマッピングなんかしねーよ
コイツ馬鹿じゃん
やっぱり他人の作ったもんなんかゴミだな
この程度は自分で作るべきだった
0312デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 16:05:44.77ID:HdsegbLs6
アスペ
0317デフォルトの名無しさん (ブーイモ MM0f-4n8i)
垢版 |
2017/11/14(火) 17:33:11.61ID:3oyxXo9MM
>>316
メソッドの中でcatchして例外に対する処理が出来れば、そこでcatchすれば良いし、出来なきゃ呼び出し元でcatchする。呼び出し元で処理出来なけりゃ更に上位の呼び出し元でcatchする。
基本は例外は例外なのでそんなことが起きないようにコーディングする。
0319デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/14(火) 18:04:00.27ID:gCxVQMlVa
>>314
それ、問題設定がおかしい(きつい言い方だけどそれは愚問)だから、
たぶん例外の意味が根本的に分かってないんだと思う。

まず「そもそも例外って何?」ってところからちゃんと理解した方がいいと思う。
理解をパスして定石だかお作法だかを覚えることで乗り切ろうとする態度は危険

それと
>戻り値のあるメソッドでcatchにもreturn入れないとエラーになる
間違ってる。
コンパイル通らないのは値を返さない実行パスが存在する場合だけ
0322デフォルトの名無しさん (オッペケ Sr33-48y6)
垢版 |
2017/11/14(火) 18:59:20.88ID:ElF9INq6r
>>279
ダメでは無いが例外の欠点

上下のやり取りにもあるように例外は扱いが難しく暗黙知が多い
(個人的には難しいとは思わんが)
簡単に握り潰せる
その関数が例外を出すかどうかはパッと見には解らない
非同期の時どうなるか直感的ではない

今はビジネスロジックのエラーに例外はあんまり使わない
もちろんケースバイケース
0324デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 19:24:49.61ID:D89+JmTA0
ドキュメント書かない奴に限って
ちんぽっぽちんちんException
の亜種をたくさん作るんだw

ところで
CsvHelper
GetRecords<dynamic>()で動くだろ死ねよ
って温かいレスをもらったが
Csvの読み込み程度でこんな翻弄されてるなら
やっぱり自分で作った方が安泰かな?
NuGet最新取ると概ね動かないぜ
0325デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
垢版 |
2017/11/14(火) 19:32:20.40ID:sSxxq2Sz0
>>322
Go言語が例外処理を無くしたのは、

・例外処理を正しく扱えないヤツが余りにも多すぎる
・例外処理は並行処理では扱い辛い

後者の方が無くした主な理由だろうけど
例外処理分かってないヤツ多すぎるwww
0328デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 20:04:06.14ID:QqwKiGyo6
>>322
どこが難しいと思うの?
0334デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 21:11:28.16ID:6kJ9cNLk6
>>329
どこがみんなにとって難しいと思うから322で難しいとか書いたの?
0336デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 21:16:24.25ID:6kJ9cNLk6
よくわからんが難しくないだろ。
0337デフォルトの名無しさん (アウアウイー Sa33-sJj3)
垢版 |
2017/11/14(火) 21:17:36.48ID:07a/swYLa
例外を変なところでキャッチしちゃう人が多い

メソッドAの中でメソッドBを呼んでまたメソッドCを呼んだとする

メソッドC中で例外が起こってもメソッドC内でキャッチしちゃって
メソッドCの戻り値をnullでリターンして
メソッドBで戻り値のnullチェックしてnullだったらまた戻り値をnullでリターンして
またメソッドAでチェックしてみたいな馬鹿な使い方をしてる

メソッドAでキャッチしろって思う
0338デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/14(火) 21:18:54.31ID:6kJ9cNLk6
>>337
それだけだよね。
なんも難しくない
0342デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 21:54:38.57ID:D89+JmTA0
>>341
だから何度も書いてやってんじゃん
仕分けが絶望的に面倒臭ぇから握り潰しちまうって

だってさよく考えろよ
ドキュメント化されてないメソッドが出す例外って全部でいくつかどうやって調査する?
0343デフォルトの名無しさん (ワッチョイ ff9d-ouqv)
垢版 |
2017/11/14(火) 22:03:00.14ID:5gpUPtII0
仕分けめんどくさいのは同意するけど、握りつぶすのはどうなんだ
仕分けした結果握りつぶして問題ないって判断したものならいいかもしれんが

極論として、全部握りつぶす or 全部スルーして上位にキャッチさせる
どっち選ぶ?
0345デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
垢版 |
2017/11/14(火) 22:08:15.89ID:sSxxq2Sz0
>>337
>例外を変なところでキャッチしちゃう人が多い

かと思えば、例外が必要なところでtry/catch { } で握りぶしちゃう人も多い
これも追加ね。

無駄なtry/cathと握りつぶし
例外が分かってないヤツの典型例
0346デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/14(火) 22:09:59.38ID:vkrHhpXR0
例外の仕分けとは何なのか
0351デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 22:33:03.34ID:Xx2aI1jk0
仕分けとは
握りつぶしとは
0353デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/14(火) 22:56:41.83ID:Xx2aI1jk0
初心者だから経験が浅いので分からん
0355デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/14(火) 23:00:13.12ID:vkrHhpXR0
>>348
戻り値だったらいいの?例外となんか違うか?
0360デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/14(火) 23:33:00.11ID:vkrHhpXR0
>>356
お前なんの戻り値がくるのか全部把握してる前提で話してるだろ?
0361デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/14(火) 23:43:11.80ID:D89+JmTA0
>>359
だから失敗でアプリ落としたくねーんだよ
アスペか
んで全ての例外に対応したいがメソッドの中身を読むも広大過ぎてなんの例外がくるのかわからない

ときたら握り潰すしかないよね
0365デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/14(火) 23:49:57.17ID:vkrHhpXR0
>>362
だったら例外も同じじゃない?
0368デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
垢版 |
2017/11/14(火) 23:58:11.24ID:sSxxq2Sz0
>>363
>例外をキャッチしきれなければアプリを落とすべきなんだよ

どんな例外もキャッチしなきゃダメだろ。
キャッチして「駄目だコリャ」の場合はログ吐いて落とすしかない。
0369デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/14(火) 23:58:46.20ID:A1uj0brl0
Windowsの場合、ハンドルされない例外で落としておけば、ユーザーには後日解決策が
提示される場合があると表示されて、パートナーには統計情報が連絡される。
0370(スププ Sd9f-oWMR)
垢版 |
2017/11/14(火) 23:59:42.34ID:j+l8jijkd
動いてそうだけど動いてないかもしれない、エラーが中で出てるけど見えないプログラムなんて、

ブレーキランプはつくけどホントにブレーキがかかるかわからない車みたい。
いっそ走らないほうがマシ。
0373デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/15(水) 00:03:28.48ID:2GqBFPwl0
>>372
統計情報だけもらえる。
0374デフォルトの名無しさん (アウアウイー Sa33-zl2n)
垢版 |
2017/11/15(水) 00:03:40.40ID:QiSxe5F2a
>>368
キャッチして何になるんだよ?

アプリは予測してない状況になってるんだぞ
予測できてないから復旧もできないし
誤動作してシステム食いつぶすこともあるんだから生かしておく意味はありません

そういうことしてDBに特定のデータだけ一晩中書き続けた例を知ってる
0375デフォルトの名無しさん (ワッチョイ df03-pAaq)
垢版 |
2017/11/15(水) 00:03:57.83ID:iCpU6Box0
>>367
むしろ例外の仕組みがない言語の方がプログラマーに制御できないとこで勝手に落ちるんじゃないの?
0380デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/15(水) 00:10:28.88ID:pJdoypJN0
ダメだこいつら
話になんねー
あるべき論はいいからさっさとアプリ動かせよ

握りつぶして動くなら動くでいいだろ
メソッドの中身なんて3万行だか4万行だか読んでらんねんだよバカが
その全てでテキトーに例外発生させてんだから握りつぶしてナンボだろこんなの
0382デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/15(水) 00:12:29.08ID:2GqBFPwl0
DBはコミットしなければいいと思う。
0384デフォルトの名無しさん (ワッチョイ ff9d-ouqv)
垢版 |
2017/11/15(水) 00:26:18.34ID:AeO6Jp1U0
例外で落としたくないプログラムってのはたしかに存在するけど
基本そんなプログラムをC#で書くのが間違ってると思うわ

例外処理のっていうときに、C#での(あるいは.NETでの)例外処理は、って言うようにしようぜ
つかまあこの話もう終わりで良いけど
0385デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/15(水) 00:26:49.27ID:2GqBFPwl0
ただまあ例外なんて滅多に出ないからね。
0386デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/15(水) 00:27:26.82ID:2GqBFPwl0
C++スレじゃないのか。
0388デフォルトの名無しさん (ワッチョイ 5f8a-lB0v)
垢版 |
2017/11/15(水) 00:28:57.41ID:nkl9Qzh90
長々と無意味なレスバが続いてたけど、ひとつだけ皆が同意できそうなのは
例外がどういう用途で使われるべきかの一般的なコンセンサスに従う人は
ID:D89+JmTA0 = ID:pJdoypJN0 と一緒に仕事したくない、という点だけだな
0389デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
垢版 |
2017/11/15(水) 00:30:13.38ID:2GqBFPwl0
異常は戻り値で知らせるなって言いたいんじゃないの。
まあそりゃそうだよねって言う。
0391デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/15(水) 01:09:16.87ID:udlId46Ca
勘違いする人がいると見てられないので一応書いとくけど、
例外の目的の一つはフェイルセーフ、つまりプログラマの想定外のことが起こった時に
「安全側に倒す」 = 「プログラムを強制終了させる」ことなので、
「プログラマの想定外のことが起こってもプログラムの実行が止まらないようにしたい」
などという馬鹿なことを考えてはいけない。
0401デフォルトの名無しさん (スッップ Sd9f-gk0q)
垢版 |
2017/11/15(水) 10:01:55.68ID:DCxsxqPWd
>>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();
0402デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 11:14:21.87ID:LdCnvqY76
LINQと関数型プログラミングって何が違うの?
0404デフォルトの名無しさん (ワッチョイ 5f19-7wKg)
垢版 |
2017/11/15(水) 11:51:23.71ID:CJEkfJ7L0
>>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));
0405デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:03:19.06ID:RrK4s1ZI6
こっちの方がいいか。

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;
});
0406デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:05:06.75ID:RrK4s1ZI6
if (isFirst(item)) { prevList.Add(new List<string>() };
括弧ミスった
0408デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:07:15.90ID:RrK4s1ZI6
確かにその方がスッキリするな。
いずれにしろsplitの中身を定義しないといけないけど
0410デフォルトの名無しさん (ブーイモ MM0f-hQHN)
垢版 |
2017/11/15(水) 12:35:31.31ID:MLdh1wBXM
Aggregateは宣言的でないので関数型に慣れたらむしろ読み辛く感じるようになる
考え方が実質的に手続き型だから、手続き型に慣れてる人には馴染みやすいので濫用されてしまいやすい
0411デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:43:50.52ID:LdCnvqY76
関数型の典型的な関数みたいにバッ、バッって感じじゃなくてズィーンて感じだからか。
>>401のやり方だと使ってる関数はバッバだけ感じかもしれないけど外部変数使ってるから内外に絡み合ってるのがあれだけどどうすればいいんだろう
0413デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:48:32.27ID:LdCnvqY76
ズィーン→ズインッ→ズィッ→バッ
こう見れば畳み込みも関数型に馴染む
0414デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 12:49:52.25ID:LdCnvqY76
>>412
まあこの場合ではSQLを扱ってるわけじゃないしな
0416デフォルトの名無しさん (スッップ Sd9f-gk0q)
垢版 |
2017/11/15(水) 13:11:40.68ID:DCxsxqPWd
確かに目新しさにおおーってなったけど、これただの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);
});
0417デフォルトの名無しさん (ブーイモ MM0f-hQHN)
垢版 |
2017/11/15(水) 13:14:41.39ID:MLdh1wBXM
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 != '○')));
こうかな
関数作った方がいいのは同意する
0418デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
垢版 |
2017/11/15(水) 14:15:45.67ID:1p9gbgPTa
上のお題、結果がIEnumerable<IEnumerable<string>>でいいなら、

var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var index = 0;
var hoge = list.GroupBy(x => x == "○" ? ++index : index);

ではだめ?
0419デフォルトの名無しさん (ワッチョイ 5f96-7wKg)
垢版 |
2017/11/15(水) 17:26:29.53ID:7R79hyBA0
>>416
それ意味的にはaggregateと全く変わらない
初期値が外にあるか引数のところにあるかしか違いない
0420デフォルトの名無しさん (ワッチョイ 5f96-7wKg)
垢版 |
2017/11/15(水) 17:30:36.24ID:7R79hyBA0
>>417
それaggregateより読みやすいと思うか?
0421デフォルトの名無しさん (ワッチョイ 5f96-7wKg)
垢版 |
2017/11/15(水) 17:40:07.85ID:7R79hyBA0
>>418
その型じゃダメでしょ。
0423デフォルトの名無しさん (ワッチョイ 5ff9-7wKg)
垢版 |
2017/11/15(水) 18:04:09.97ID:uxhVFwQf0
>>422
変換しろよ
その分だけコード長くなるぞ
0425デフォルトの名無しさん (ワッチョイ ff9d-ouqv)
垢版 |
2017/11/15(水) 18:38:01.15ID:AeO6Jp1U0
いつも思うんだが、この手のやつをLINQでやりたがるやつって何が目的なんだろ
自分ですらすらと書けるならLINQでいいけど、そうじゃないなら勉強以上の意味があるとは思えん

個人的にはシンプルさを競うなら>>418がいいと思う
戻りの型が気に食わないなら
.Select(t => t.ToList<string>()).ToList<List<string>>();
あたり追加すればいいだろ
0427デフォルトの名無しさん (ワッチョイ df03-uZPj)
垢版 |
2017/11/15(水) 18:46:37.59ID:iCpU6Box0
お前らが思ってる程きれいでもきたなくもないから安心しろ
0429デフォルトの名無しさん (ワッチョイ 5fe6-7wKg)
垢版 |
2017/11/15(水) 18:56:00.52ID:SIgrthm30
>>425
変数や関数を定義するのにいちいち名前をつけるのが面倒だからよく使う
無名だらけ
0430デフォルトの名無しさん (ワッチョイ 5fe6-7wKg)
垢版 |
2017/11/15(水) 18:56:47.00ID:SIgrthm30
関数を定義するときには場所にも悩むしな
0431デフォルトの名無しさん (スッップ Sd9f-gk0q)
垢版 |
2017/11/15(水) 19:00:28.04ID:DCxsxqPWd
>>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);
}
0432デフォルトの名無しさん (ワッチョイ 5f6e-7wKg)
垢版 |
2017/11/15(水) 19:05:07.59ID:JCFmpBxh0
俺嫌われすぎだろ
アスペルガー症候群だから仕方ないのか
0433デフォルトの名無しさん (ガックシ 064f-7wKg)
垢版 |
2017/11/15(水) 19:06:53.89ID:LdCnvqY76
スリップが****-7wKgのは全部ワシじゃ
0437デフォルトの名無しさん (ワッチョイ ffe8-ueqH)
垢版 |
2017/11/15(水) 20:42:42.91ID:4QHQX7jw0
>>434
アカンか?
0439デフォルトの名無しさん (ワッチョイ 5f86-bJtK)
垢版 |
2017/11/15(水) 21:25:59.97ID:md1eodvT0
LINQが良いか悪いかは別にしてLINQを必要以上に毛嫌いする奴って頭悪いだけだろ。
0443デフォルトの名無しさん (ワッチョイ 5f16-bJtK)
垢版 |
2017/11/15(水) 21:36:55.30ID:4L7ZsFBR0
必要以上にってのが言いたかった。
実用性は別としてリスト操作系関数でスラスラ書ける奴にコンプでもあるのかって思っちゃう
0446デフォルトの名無しさん (ワッチョイ 5f16-bJtK)
垢版 |
2017/11/15(水) 21:44:53.19ID:4L7ZsFBR0
しかし自分の苦手な物を使える奴にはコンプを感じる
0449デフォルトの名無しさん (ワッチョイ 5f25-bJtK)
垢版 |
2017/11/15(水) 22:15:03.22ID:mH4zmpJW0
興味ねーならゴミだのクソだのほざいてんじゃねーよw
0451デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/15(水) 22:20:30.39ID:EAeU3mIh0
どれだけ偉そうな主張があるのかと思えば
貼ってあるのはクソコードばかり
linq貼ってるやつ目障りだから死ねよ
普通に組んだ方が綺麗なコードなら持ってくんなよ
だっせ
0452デフォルトの名無しさん (ワッチョイ 5ffa-bJtK)
垢版 |
2017/11/15(水) 22:21:20.95ID:txwTk3zR0
おまえの価値基準で判断すんなw
コンプ感じてるだけw
0457デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
垢版 |
2017/11/15(水) 22:35:29.64ID:EAeU3mIh0
どっちかっていうとアプリを作れないアホだな
まあ、コードで何か主張したいならGitHubでもやればいいのに
こんな便所でしか主張できないなら
クズどものlinqライフもここでしめーだろ
0458デフォルトの名無しさん (ワッチョイ 5fe5-7wKg)
垢版 |
2017/11/15(水) 22:39:12.32ID:E1HTns1P0
ウハwwwwww
書けない奴が批判の図wwww
権利すらなしwwwwwww
0460デフォルトの名無しさん (ワッチョイ 5f4b-bJtK)
垢版 |
2017/11/15(水) 23:03:01.93ID:vH3D/QHI0
キミ流のコードおなシャス!
0464デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
垢版 |
2017/11/15(水) 23:26:21.77ID:H4muME/S0
>>428
どこ情報?
0469デフォルトの名無しさん (ワッチョイ 92eb-RjUU)
垢版 |
2017/11/16(木) 18:15:43.67ID:7VJMckpW0
WPFじゃなくてWindowsForms内で簡単な3D描画したいんですが
どういう風がいいでしょうか。
とりあえず箱を線で描くだけなんですが。

・DrawLineみたいなので始点終点を3次元(X,Y,Z)で指定し描画
・視点の位置(X,Y,Z)と向きを指定して表示

って風な感じが希望なんですが・・・・
0475デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
垢版 |
2017/11/16(木) 19:04:34.95ID:JEjgvNkla
>>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倍する
0478デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
垢版 |
2017/11/16(木) 19:57:23.76ID:K+YFepCs0
そんな面倒なことしなくても
カメラ固定ならXYに足すだけでいいじゃん
Zが1ならXYに0.5ずつ足すみたいのでいいよ
Zが2ならXYに1ずつ足す
Zが3ならXYに1.5ずつ足す
みたいな
0479デフォルトの名無しさん (ワッチョイ 6e9a-GXP8)
垢版 |
2017/11/16(木) 21:38:46.30ID:ac8ZDyBE0
>>469
URLが何故か張れないんだが
C#3D立方体ワイヤーフレーム (第1回) for VS2013 Express
でググって見つかるところが参考になる
ライブラリを期待しているのならC++で探すしかないだろうな
DLLになっていればC#からでも使えるから
0481デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/16(木) 23:02:09.93ID:o+kP3k0v0
>>474でもうでてる
0482デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
垢版 |
2017/11/16(木) 23:17:24.79ID:Tv1Vr9CT0
時間, 名前, テスト回数
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
0483デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
垢版 |
2017/11/16(木) 23:18:08.01ID:Tv1Vr9CT0
>>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);
0484デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/16(木) 23:18:26.88ID:o+kP3k0v0
LINQの出番再び
0487デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/16(木) 23:37:44.24ID:o+kP3k0v0
list.GroupBy(item=>item.名前).Select(group=>group.Max(item=>item.日時.Ticks)).ToList<Test>()
0488デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/16(木) 23:44:12.00ID:o+kP3k0v0
今試したらエラー吐いたけど参考にしてくれ
0490デフォルトの名無しさん (ワッチョイ 9102-hYVS)
垢版 |
2017/11/17(金) 00:03:01.06ID:LOAPaCxV0
ListTest.GroupBy(item => item.名前).Select(group => group.Aggregate((max, item) => item.時間 > max.時間 ? item : max)).ToList()
0491デフォルトの名無しさん (ワッチョイ 91e5-x/r4)
垢版 |
2017/11/17(金) 00:16:27.21ID:ZIvR54fI0
DateTimeオブジェクトはそれ自体に大小関係演算子使えるしな
0495デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 00:57:10.96ID:ZBvifIa80
下のやつを最新にしたいなら>=にすればいいのかな
順番通りの保障ないかもしれないけど
0496デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 01:02:10.05ID:ZBvifIa80
ienumerbleだからだめか
最初の段階でインデックスとペアにするとか
0499デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 02:55:06.18ID:ZBvifIa80
これだけで各々の最新のデータが取れるはず。
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)
0500デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 02:56:22.67ID:ZBvifIa80
.ToList()

0502デフォルトの名無しさん (ワッチョイ 914b-jqfw)
垢版 |
2017/11/17(金) 10:01:35.59ID:yfGcWiWk0
落ち着けよ、おっさん。
0503デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/17(金) 11:41:22.51ID:vZ4OY4a56
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();
0507デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/17(金) 12:11:30.21ID:vZ4OY4a56
foreach~~
result.Add(latestDataOf(リスト, 名前))
とかのほうがいい?
0508デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/17(金) 12:14:53.31ID:vZ4OY4a56
これだとおかしいか
foreachであらかじめリストから抽出しておいた名前の種類の一覧とかを与えないとあれか
0512デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/17(金) 14:48:58.50ID:y/lDgZqq6
みんなって推敲してるの?
真面目だな
俺もこれからはそうするかもしれん
0513デフォルトの名無しさん (ワッチョイ 5e9c-TFbh)
垢版 |
2017/11/17(金) 15:16:56.52ID:Km51pzYd0
真面目に考えるとデータベースに更新分Insertしてからあらかじめ作ってあるビューをSelectするだけ
GroupBYや集計はDBでやった方が楽だしこっちでは表示件数や順序くらいしかいじらない
データベースといってもローカル鯖や組み込みもある、適材適所
0516デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 18:29:28.97ID:ZBvifIa80
汎用性低いな。
0517デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 18:32:42.23ID:ZBvifIa80
ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList()

ワシのが1番じゃろ。
0520デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 18:50:30.24ID:ZBvifIa80
そういやラムダ式の中の命名は超シンプルでいいんだったな。
>>518 最大値を探すためにループ、その値を持ち主をまた探すためにループってなんかキモくね?それが王道なのか。
0521デフォルトの名無しさん (スプッッ Sd82-aK5r)
垢版 |
2017/11/17(金) 19:36:01.87ID:15/bjs8Fd
>>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するかな
0522デフォルトの名無しさん (ワントンキン MM52-TGzz)
垢版 |
2017/11/17(金) 19:40:08.46ID:hFmoO+PyM
>>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の方がわかりやすいな
0523デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/17(金) 19:46:57.67ID:ZBvifIa80
Maxを探すためにループ、その持ち主また探すためにWhereでループ
0527デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/17(金) 21:20:38.75ID:Xkp76caL0
LINQって実は裏側でforeachで回してるってホント?
0529デフォルトの名無しさん (ワッチョイ 6e80-IVKU)
垢版 |
2017/11/17(金) 21:50:29.21ID:/4Y2zvAi0
例えば、100個の中から、1個を探すのは、全(線形)探索 O(n) しかできない

全データにインデックス・ハッシュがついていれば、O(1)だが、
ソートするには、全探索する必要がある

DB みたいに、B-tree でソートされているのなら、O(log n)

「アルゴリズムと計算量」を勉強して
0531デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
垢版 |
2017/11/17(金) 22:28:51.51ID:fmtM/py00
こんなにレスが付いてるとは思わなかった。
無事満足いく結果がとれるようになりました。
試したことないのもあって勉強になりましたありがとうございます。
0534デフォルトの名無しさん (ワッチョイ f9b3-6GxS)
垢版 |
2017/11/18(土) 01:22:17.61ID:dA2WGfe00
DBに接続して操作するクラスを作ってるのですが、コンストラクタでDBに接続してデストラクタとDisposeで切断処理を書こうと思っています
基本的にはこのような書き方でいいのでしょうか?
各処理のメソッドで接続切断を仕込むのもあると思うのですが連続で処理する場合たとパフォーマンスの低下に繋がると思ったので気になりました
0538デフォルトの名無しさん (ワッチョイ f9b3-6GxS)
垢版 |
2017/11/18(土) 01:37:14.30ID:dA2WGfe00
>>536
DBはローカルなんでそこは考えてませんでした
途中でDBとの接続切れたらエラー返すぐらいしか考えてないですね
そこでクラス抜けるようにするかどうかは分かりませんがデストラクタかdisposeに入ると思います
まだ実装してませんが
0540デフォルトの名無しさん (ワッチョイ 220c-KWQn)
垢版 |
2017/11/18(土) 02:05:22.67ID:uyqqFOTJ0
>>539
悪いが俺のレスは質問と関係ないぞ
ちなみに各DBのコネクションクラスは質問通りのIDisposableな自動Close設計で
連続する処理する場合はコネクションを開いたまま使いまわすのが普通
SQLite.NETが参考と言うかやりたいことそのままじゃないか?
0542デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 02:43:03.59ID:NMU9eY0n0
>>540
ありがとうございます!
0544デフォルトの名無しさん (ワッチョイ 8df7-jW/K)
垢版 |
2017/11/18(土) 17:07:33.62ID:18CT9AkR0
https://ideone.com/a5csSX

たくさんボタンがあって、ボタンを押すとそれに対応した画像を保存するプログラムなのですが
ひとつのsaveFileDialogを使いまわすにはどうすればいいでしょうか
上のコードのpictureBox_1、pictureBox_2が引数になる様にしたいのですが
0545デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/18(土) 17:30:37.37ID:mVpmRSdA6
>>544
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// 画像保存処理
}
0546デフォルトの名無しさん (ワッチョイ 6e9a-GXP8)
垢版 |
2017/11/18(土) 17:33:50.19ID:v7G/T0vB0
>>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)
{
}
}
0547デフォルトの名無しさん (ワッチョイ fe9f-aK5r)
垢版 |
2017/11/18(土) 18:31:43.88ID:+tDuSBLG0
>>544
ボタン事に対応したピクチャーボックスがあるならTagに設定しておくと便利だよ
button1.Tag=pictureBox_1;ってしといて
((PictureBox)(((Button)sender).Tag)).Imageって感じで画像を取得できる
0548デフォルトの名無しさん (ワンミングク MM52-TGzz)
垢版 |
2017/11/18(土) 19:04:31.90ID:yU1kJYivM
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);
0549デフォルトの名無しさん (ワッチョイ 8df7-jW/K)
垢版 |
2017/11/18(土) 19:27:10.06ID:18CT9AkR0
みなさん有難う御座います。
やってみます。
0550デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 19:30:23.03ID:NMU9eY0n0
こんなところにもちゃっかり匿名クラスw
0551デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
垢版 |
2017/11/18(土) 20:21:22.01ID:6NKrq56ga
>>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;
}

こんな風にユーザーから保存名を貰ってくるメソッドを作った方がいいんじゃない?
0552デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
垢版 |
2017/11/18(土) 20:22:04.37ID:6NKrq56ga
その上で
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);
0553デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 20:36:23.54ID:NMU9eY0n0
ボタン押した時に保存したいんだからClickイベントハンドラの中に記述すればいいだろ。
0554デフォルトの名無しさん (ワッチョイ f9b3-L/2a)
垢版 |
2017/11/18(土) 20:42:16.49ID:2DwFpZ7T0
フォームで画像を表示したところ、それを閉じなければコンソールに処理が戻らないプログラムになってしまいました
同時に動かす方法があれば教えていただきたいです
0558デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 20:53:01.78ID:NMU9eY0n0
>>554
Threadを使おう

var thread = new System.Threading.Thread(
() => {
System.Windows.Forms.Application.Run(form);
});
thread.Start();
0560デフォルトの名無しさん (ワッチョイ f9b3-GXP8)
垢版 |
2017/11/18(土) 21:01:09.80ID:GCI+mPsu0
すみません、上手く説明できないと思うので一応コードも載せます

やりたいことはコマンドプロンプト上で流れる処理の途中で画像を呼び出すことです
その際、処理が止まってしまいます

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);
0562デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 21:03:01.96ID:NMU9eY0n0
>>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();
0564デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 21:06:38.70ID:NMU9eY0n0
Application.Runをしないとメッセージ来ねえからShowしても一瞬で消えるだろ。
0566デフォルトの名無しさん (ワッチョイ f9b3-GXP8)
垢版 |
2017/11/18(土) 21:19:47.80ID:GCI+mPsu0
>>562
並列処理で無事起動できました!
イカのような記号が何を意味するか分かりませんが
いい機会なのでスレッドも勉強してみます

>>563
なぜApplication.Run(form)で止まってしまうのでしょうか?
フォームに制御が移ってしまっているということですかね
0568デフォルトの名無しさん (ワッチョイ 6e9a-GXP8)
垢版 |
2017/11/18(土) 21:26:29.84ID:v7G/T0vB0
>>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
ああちょっと遅かったか
0572デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/18(土) 21:50:58.81ID:AvOAupbn0
変数がNULLだったら、ってこれが一番シンプル?
a == null ? 0 : 1;
0577デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/18(土) 22:17:39.50ID:AvOAupbn0
NULLじゃなかった場合の処理が要らない場合は>>574がベスト?
0579デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/18(土) 22:21:15.58ID:AvOAupbn0
>>578
おけ
さんきゅ
0581デフォルトの名無しさん (ワッチョイ e9a6-RuWE)
垢版 |
2017/11/18(土) 23:05:35.11ID:VG3ktzhs0
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オブジェクトにぶち込むと上下キーで回転するんだけど、
これに回転制限を設けたい場合どうすればいいか教えてください!
0583デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/18(土) 23:30:02.55ID:NMU9eY0n0
>>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;
0584581 (ワッチョイ e9a6-RuWE)
垢版 |
2017/11/19(日) 00:15:02.15ID:+rKwXo5m0
>>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;
の記述も意味がよく分からないです・・・
0585デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/19(日) 00:22:50.41ID:5IbV37Zg0
genzaiti = this.transform.eulerAngles.x;
if(genzaiti>=min && genzaiti<=max) {
test.x = Input.GetAxis("Vertical") * speed * Time.deltaTime;
}


こうしてもうまくいかないってこと?
0587デフォルトの名無しさん (ワッチョイ e9a6-RuWE)
垢版 |
2017/11/19(日) 00:50:00.47ID:+rKwXo5m0
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とか謎の数値になるのが理解できない・・・
0589デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/19(日) 07:08:15.26ID:5IbV37Zg0
>>587
if (genzaiti >= min && genzaiti <= max)

if (genzaiti%360 >= min && genzaiti%360 <= max)
0590デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/19(日) 07:19:50.08ID:5IbV37Zg0
すまん、これは間違い
0591デフォルトの名無しさん (ワッチョイ f9b3-AWKa)
垢版 |
2017/11/19(日) 09:53:15.87ID:RgqRbH7C0
RubyはPerlより優れていてPythonより劣っている。
0593デフォルトの名無しさん (ワッチョイ c219-GXP8)
垢版 |
2017/11/19(日) 12:35:27.94ID:E5DVFTo40
もう、自分でゴリゴリロジックを書くのが馬鹿らしくなってきた。

何処かの偉い人が言っていたが今のプログラミングは工学じゃなくて科学だと。
nugetか何処かでライブラリを拾ってきて、ひたすら実験を繰り返し、
自分の期待通りの結果が得られるかどうか判定するのみ。
0596デフォルトの名無しさん (ワッチョイ 5e9c-TFbh)
垢版 |
2017/11/19(日) 13:31:47.12ID:T31pkR2W0
今週はずっとlockとかMoniterとかManualResetEventSlimとか
new Thread(new ThreadStartとかTask.Factory.StartNewとかTask.Run
などなど書いていて頭痛くなってきた、やり方いろいろありすぎ
0598581 (ワッチョイ e9a6-RuWE)
垢版 |
2017/11/19(日) 13:39:52.27ID:+rKwXo5m0
>>592
ひとまずこれをブチ込んでみたら思った通りに動いた!
よく見つけてくれましたね!ありがとうございます!

いまから一個ずつ理解するため勉強します。


他のみなさんも親切にどうもありがとうございました!
今回の件はとりあえず一件落着です。
0599デフォルトの名無しさん (ワッチョイ c219-GXP8)
垢版 |
2017/11/19(日) 13:40:17.88ID:E5DVFTo40
>>595
現代のプログラミングは科学だって言ってるのオレじゃないけどねw

ソフトウエアってパーツや材料みたいなきちんとしたスペックなんかは無いし
ソースが巨大でブラックボックス化しているので
自然科学の実験と観察のようだと皮肉って言ってるんだと思う。
0601デフォルトの名無しさん (ブーイモ MM22-/KPb)
垢版 |
2017/11/19(日) 13:44:15.53ID:Plho4dsNM
>>597
いや全部使うだろ
マルチスレッドといえば、社内にParallel厨がいてうざいわ
ボトルネックになってないのに無駄に並列化するのやめろ
オーバーヘッドを増やすだけで全く速くなってないんだよ
0608デフォルトの名無しさん (ワッチョイ c219-GXP8)
垢版 |
2017/11/19(日) 15:55:49.72ID:E5DVFTo40
>>607
へぇ〜、スレッドプールを消費しないオプションがあったんんだ。
でも、Thread.Startを使わないでTask.Factory.StartNewに
TaskCreationOptions.LongRunningを付けて実行するメリットって何があるのだろ?
0616デフォルトの名無しさん (ワッチョイ 917e-jqfw)
垢版 |
2017/11/19(日) 17:17:53.28ID:YUYxzc/40
なんだこいつら...
その人は普通にThreadでいいものを無理してTaskでやる意味聞いてるだけじゃん....
なんで突然キレ出したのか謎すぎる...
0620デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/19(日) 17:53:11.85ID:5IbV37Zg0
>>619
Task.Runを自分で書くのは過去の遺物ってことじゃね?
0623デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/19(日) 19:30:29.96ID:5IbV37Zg0
Unityとか出て来たから初めて使ってみたけど楽しい��
0627デフォルトの名無しさん (ワッチョイ e9a6-RuWE)
垢版 |
2017/11/19(日) 20:33:47.12ID:+rKwXo5m0
>>623
今更感はあるのでしょうが、僕も数日前に初めてUnity(C#も)触ったんですけど
すごいですよね!今ってこんな感じにゲーム作れるんですね・・・

僕の場合3Dモデラーなんで、覚える事いっぱいだけど
プログラム出来る人なら無料のアセット入れたらすぐさまゲーム作れそうですね
0629デフォルトの名無しさん (ワッチョイ c219-GXP8)
垢版 |
2017/11/19(日) 23:06:57.29ID:E5DVFTo40
>>628
ありがとう!
そう言う答えが欲しかった。
メインスレッドと同時に起動しっぱなしになるスレッドをTaskで起動すると
Task内で発生した例外がTask終了時に一気に飛んでくるという解釈でよいのかな?
それだと使いにくいな。
0635デフォルトの名無しさん (ワッチョイ 9102-jqfw)
垢版 |
2017/11/20(月) 00:18:59.27ID:i2xgyqGp0
ダッセ
0645デフォルトの名無しさん (ブーイモ MM22-/KPb)
垢版 |
2017/11/20(月) 08:40:57.62ID:1G6nIlxwM
民族性じゃなくて契約の問題
それでコストが少し増えたとしても成果じゃなく工数で金取るから不利益にならないし、
客の事業じゃなく作業に対して責任を負う以上はもどうしてもオーバークォリティにならざるを得ない
自社サービスの会社だと軽いノリでバージョン上がるぞw
0647デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/20(月) 08:49:09.41ID:Kfz9fY2x6
>>641
思い通りならなくてドンマイw
0657デフォルトの名無しさん (オッペケ Srd1-R8Lj)
垢版 |
2017/11/20(月) 17:43:42.18ID:XyKfixC2r
>>653
バリバリ使ってる
知らない人でも説明すれば大体は解ってくれる

こんな便利なものがあるんですね!と感動する人
ふーんな人
非同期何それ美味しいの?な人
説明では解ったと言いながら実装では悪戦苦闘してる人
反応は様々だね
0664デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/20(月) 19:40:12.58ID:YF/poHTW6
>>661
なんのエラーが書けや
0672デフォルトの名無しさん (ブーイモ MMcd-/KPb)
垢版 |
2017/11/20(月) 21:17:18.15ID:rFfN6JGKM
>>670
そういう問題じゃないの
内製だと、選んだ技術について組織の中でノウハウを蓄積しやすい
また、開発も運用保守もユーザーも同じ主体なのでJVMのバージョンアップでベンダーに億単位でぼったくられるようなことにはならず、
更新の障壁が比較的低いんだよ
0673デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/20(月) 21:25:02.39ID:UI9vB3qq0
>>668
いや、、フォームのエラーだけじゃわかんねえだろ、、、
本当にお前の思ってるのが原因か、、?
0677デフォルトの名無しさん (オッペケ Srd1-R8Lj)
垢版 |
2017/11/20(月) 21:28:54.04ID:2/KPMrVLr
内製じゃないけど開発の各関係部署にプロトタイプを配るのにクレームがつかない為に.NETのバージョンを下げてた人達がいたなあ
当然製品版も下げてたww
その話聞いて笑うしかなかった (´・ω・`)
0680デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/20(月) 22:00:54.42ID:UI9vB3qq0
>>675
なら聞けよ
何言ってんだ
0682デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
垢版 |
2017/11/20(月) 22:12:04.01ID:gpmTl3Lx0
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;
0684デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/20(月) 22:16:16.66ID:UI9vB3qq0
種類が増えるなら教科ごとにプロパティ作るんじゃなくて教科名+点数の辞書のリストにするのが自然だと思う
0686デフォルトの名無しさん (ワンミングク MM52-TGzz)
垢版 |
2017/11/20(月) 22:30:41.09ID:ThNisUZnM
>>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.赤点人数} 人");
0687デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
垢版 |
2017/11/20(月) 22:40:41.76ID:aO8f69d6a
>>682
それ、LINQいっこも関係ないような気が...
Func<Test, int> getScore = (x) =>
{
  if (Kyouka == "国語") return x.国語;
  if (Kyouka == "数学") return x.数学;
};
akaten = ListTest.Where(x => getScore(x) < 30 ).ToList().Count;
0688デフォルトの名無しさん (ブーイモ MMcd-/KPb)
垢版 |
2017/11/20(月) 22:50:14.07ID:rFfN6JGKM
>>687
それは毎回無駄な科目チェックが入るから非効率
せっかくデリゲート使うんなら最初にgetScoreを科目に応じたものに差し替えるのがスマート
もちろんそれ以前にデータ設計が間違ってるけど
0690デフォルトの名無しさん (ワッチョイ 4175-jqfw)
垢版 |
2017/11/20(月) 22:52:45.76ID:UI9vB3qq0
var akaten=ListTest.Count(x=>(int)(typeof(Test).GetProperty(Kyouka). GetValue(student))<30);
0691デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
垢版 |
2017/11/20(月) 23:14:47.31ID:gpmTl3Lx0
>>684
>>685
やっぱりデータ設計が悪いと言われますか
今のうちに変えてしまうべきなのかな

>>686
Dictionary使ったことなかったので参考になります。
SQLアンチパターンすごい為になりそうなので読んでみます。

>>687
>>690
まだ完全に理解できていないけど参考になります。

レス参考に対応してみます。
みなさんアドバイスありがとうございました。
0692デフォルトの名無しさん (ガックシ 0666-jqfw)
垢版 |
2017/11/21(火) 11:17:50.06ID:qjtNZd9v6
new Dictionary<string, int>(){
{“たろう”, 68}
}

型引数を推論させて
new Dictionary(){
{“たろう”, 68}
}
みたいにできないの?出来ればいいのに。
0694デフォルトの名無しさん (ブーイモ MMcd-/KPb)
垢版 |
2017/11/21(火) 12:32:30.39ID:JYBkdGYBM
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()
0695デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 19:23:11.85ID:K26qvPIE0
awaitってなんの意味があるの?
待ってたら非同期の意味なくね?
0698デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 19:36:01.18ID:K26qvPIE0
>>697

メインのスレッドはタスクの実行完了を待機状態なんだろ?
待機してたら何もできないから意味なくね?
0702デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 19:41:33.68ID:K26qvPIE0
>>699
なるほど!
0703デフォルトの名無しさん (ワッチョイ 02c2-8CrJ)
垢版 |
2017/11/21(火) 21:20:36.17ID:8K/pnPq30
最近のオシロスコープはWebサーバー機能を持っていて、Webブラウザでアクセスすると
計測画面を表示させることができますが、C#で同じような機能を簡単に実装することはできるでしょうか?
リモートデスクトップではなく、WinFormsのアプリ画面だけをネット越しに共有する感じです。
0705デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 21:31:11.05ID:K26qvPIE0
>>703
WinFormsの画面を配信したいってこと?
0710>>703 (ワッチョイ 02c2-8CrJ)
垢版 |
2017/11/21(火) 21:59:41.58ID:8K/pnPq30
>>705
その通りです。

作ろうとしているのはオシロスコープとは全く別で、計測器の取得データを延々と
表示し続けるようなものです。
現状はファイルベースで共有しているのですが、例として出したオシロスコープのように
ある程度リアルタイムの値も見たいと社内で要望があったので。
なので、遅延は数秒レベルでも全く問題無いです。
0711デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 22:03:47.53ID:K26qvPIE0
>>710
websocketサーバー立ててjsonで生のデータを定期的に送信するようにする。
javascritで受信してcanvasとかにそれを表示するウェブアプリをウェブサーバー立てて配信する。
0715デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 22:23:31.72ID:K26qvPIE0
>>713
javascriptで定期的にデータのファイルをダウンロードして表示するようにするだけか
0720デフォルトの名無しさん (ワッチョイ 6e96-JNqm)
垢版 |
2017/11/21(火) 23:29:41.27ID:e9zQnDKx0
windows visual studioでのフォームアプリを使ってのC#の質問です

例えばTextBoxAとTextBoxBのテキストボックスを
フォーム上に配置して
TextBoxAに「あ」と入力してEnterを入力したらTextBoxBに「い」と表示させるようにしたいのですが
どうすればいいでしょうか?
0722デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/21(火) 23:38:07.40ID:K26qvPIE0
>>720
テキストボックス1のイベントハンドラでテキストボックス1のTextプロパティを取得して、それが「あ」ならテキストボックス2のTextプロパティに「い」を代入する。
0723デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
垢版 |
2017/11/22(水) 00:06:37.07ID:jXiKT4v3a
>>720
スレの存在意義を否定するようだけど
その程度でいちいち質問してたら先が思いやられるよw

public Form1()
{
  InitializeComponent();
  textBoxA.KeyDown += (s, e) =>
  {
    if(e.KeyCode == Keys.Enter && textBoxA.Text == "あ") textBoxB.Text = "い";
  };
}

自分でやっといて何だけど、本当はいきがってラムダ式なんか使わずに
イベントハンドラを書いた方が保守性の面では好ましいと思う
0726デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
垢版 |
2017/11/22(水) 00:47:40.32ID:QmSU3CcY0
キメェ
ctrl+vでどうなるんだ?
とか最終的にはkillfocusちゃうの?
とか考えると普段ぜってー組まない
コード見ると黒板キィィィィィって
やられてる気分になる
0728デフォルトの名無しさん (ワッチョイ 4175-wWUj)
垢版 |
2017/11/22(水) 00:55:46.04ID:Jt3bKlvZ0
そいついつもキレてんな。
0729デフォルトの名無しさん (ワッチョイ 1d03-FHhe)
垢版 |
2017/11/22(水) 00:56:49.24ID:NUn4dBze0
キレッキレやな
0730デフォルトの名無しさん (ワッチョイ 918f-wWUj)
垢版 |
2017/11/22(水) 00:59:12.72ID:8eOpOd0J0
>>726
エンターで動作なんだからCtrlVがどうこうとかイミフだしフォーカス外したいなら外せばそれで済む話じゃねえか
0732デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/22(水) 22:27:47.55ID:2ViDa+Rm0
データバインド教えて

this.dataGridView_List.DataSource = list;
これをロード時に書けば
listにAddしてけばDataGridに行追加されてく?
0734デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
垢版 |
2017/11/22(水) 23:30:35.23ID:2ViDa+Rm0
>>733
これWPFだけ?
0740デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 16:29:13.27ID:1glLBmTM0
1 のとき 0.7
3 のとき 0.9
8 のとき 0.6
9 のとき 0.5

こういうデータがある時、右の要素が最大である左の要素の番号を返すプログラムを作りたいのですが
簡単な方法はないでしょうか?
0741デフォルトの名無しさん (ワッチョイ 47b3-TYIg)
垢版 |
2017/11/23(木) 16:36:15.34ID:6Js7jM8k0
List〈class〉でやってみるといいのでは?
class Data

public int id{get;set;}
public double result{get;set;}

みたいに作って、ListをループさせてData.resultを確認して一番大きい数字のid(クラス)を返すみたいな
ICollectionに一番大きい数字のindex返す関数とかあった気がするからもっと楽に作れるかもしれないけど
0744デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/23(木) 16:58:00.67ID:pEApwQyq6
@“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];
0745デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/23(木) 17:01:37.44ID:pEApwQyq6
変換忘れた(;ω;)
0750デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 18:22:14.69ID:1glLBmTM0
みなさん有難う御座います。
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じゃダメなんでしょうか?
0751デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/23(木) 18:24:15.88ID:pEApwQyq6
>>750
いいよ
0752デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 18:34:21.92ID:1glLBmTM0
>>751
現在のコンテキストに 'pair' という名前は存在しません。
というエラーが出て出来ないです…
0757デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 18:54:09.98ID:1glLBmTM0
>>753
>>754
>>755
ありがとうございます!出来ました
ただ同じキーがあると動かなくなるので別の方法を考えなければいけない様です…
0761デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 19:14:33.13ID:1glLBmTM0
>>749
で教えて頂いたのでやってみます!
0762デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 19:16:31.56ID:1glLBmTM0
配列の大きさが不明なのでaddが使える方法でやりたかったもので…
0763デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/23(木) 19:18:05.05ID:pEApwQyq6
var list = List<Data>()
これを使えばいい
Addもできる
0765デフォルトの名無しさん (ワッチョイ 5f19-5mWG)
垢版 |
2017/11/23(木) 20:41:13.63ID:FrNu/68p0
Name : aaa
Info : vvv
Message : sss
テキストファイルに↑のような空白文字で:を揃えた情報を、File.ReadLinesで取り出し、
.ToArray()で配列にしたあとTextBoxのLinesに設定したところ、コロンの位置がずれてしまいます。
foreachでTextプロパティに追加していく方法でもずれるのですが、Consoleだと綺麗に出力されます。
なにか対策等ありますか?
0768デフォルトの名無しさん (ワッチョイ 0775-uycp)
垢版 |
2017/11/23(木) 21:25:10.61ID:vcWp0UMr0
>>764
思わせぶりなことだけ言うだけ。
0769デフォルトの名無しさん (ワッチョイ 0775-uycp)
垢版 |
2017/11/23(木) 21:29:38.22ID:vcWp0UMr0
>>765
タブ文字じゃだめなん?
0770デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 21:48:04.04ID:1glLBmTM0
>>749とList使った方法で出来ました!
有難う御座いました。
ソート時の=>の書き方が色々あっていまいち理解出来てないですが…
0773デフォルトの名無しさん (ワッチョイ 278a-l6Tq)
垢版 |
2017/11/23(木) 22:21:30.93ID:Bg3Rqdl/0
HttpClient client=new HttpClient();
FormUrlEncodedContent contents = new FormUrlEncodedContent(new
Dictionary<string, string>{
{"あああ","1"},
{"あああ","2"},
{"いいい","0"},
});
respnse = await client.PostAsync(url, contents);

このままだと同じキーを含んでいるのでエラーが出ます。
サイトの仕様上、このままデータを送らないといけないのですが、どう変更すれば
きるようになりますか?
0776デフォルトの名無しさん (ワッチョイ 5f19-5mWG)
垢版 |
2017/11/23(木) 22:53:52.49ID:FrNu/68p0
>>769
ありがとうございます。タブ文字でもできることを確認しましたが、
今回はString.Format("{0, 4} : {1}", num,message)のような文字列も綺麗に出力したいので
等幅フォントを使用したいと思います。
0777デフォルトの名無しさん (ワッチョイ 0775-uycp)
垢版 |
2017/11/23(木) 23:31:46.08ID:vcWp0UMr0
>>773
new List<KeyValuePair<string, string>>{
{"あああ","1"},
{"あああ","2"},
{"いいい","0"},
}
0778デフォルトの名無しさん (ワッチョイ 27f7-JCOS)
垢版 |
2017/11/23(木) 23:37:02.83ID:1glLBmTM0
>>774
左のデータは重複することはあっても右のデータは0.93234…みたいな感じで重複しない感じです!
0780デフォルトの名無しさん (ワッチョイ 7fa5-5mWG)
垢版 |
2017/11/24(金) 10:33:29.48ID:mPUfH2u/0
>>774のようなコーナーケースの指摘に対して、「そんなケースは稀だから考えなくてよい」とするか
「どっちでもいいならどっちかに決めよう」とするか、開発センスが現れるな。
0783デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 11:58:30.46ID:PklTWoNU6
>>782
だから口だけカマチョはやめろ
0785デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 12:02:53.10ID:PklTWoNU6
動的リストだからAddとか必要って言ってんだろ
0788デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 12:15:06.09ID:J2WegmLO6
>>787
Add使いたい言っとるだろ
0791デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 12:29:02.86ID:J2WegmLO6
>>790
>>762
0793デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 12:44:49.36ID:J2WegmLO6
コレクションは要らない!(キリッ
0795デフォルトの名無しさん (ワッチョイ 8730-forR)
垢版 |
2017/11/24(金) 12:53:50.07ID:qz26KndN0
>>760
>>764
>>782
0802デフォルトの名無しさん (ワッチョイ 5f19-gOHX)
垢版 |
2017/11/24(金) 13:23:12.73ID:EfmvZejc0
>>799
最大値を取り出した後の事に触れて無いのも事実。
最大値だけが必要なのか、取り出した最大値を使ってリストに何かをしたいのかわからない。
本人は最大値の取得だけで満足して消えてしまったし。
0804デフォルトの名無しさん (ワッチョイ 47b3-TYIg)
垢版 |
2017/11/24(金) 13:42:02.13ID:mqWCdSHW0
右が最大値の時の左の要素の番号が欲しいって書いてあるぞ
インデックスも飛び飛びで左の要素が重複するときもあるって後から出してる
確かに多次元やジャグ配列ならその仕様はありそうだけどその差は技術力の無い俺には大きな差がわからん
0805デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 14:07:29.79ID:ZR8Pz10g6
コレクションなんか必要ない(キリッ
0809デフォルトの名無しさん (ワッチョイ c723-hcjg)
垢版 |
2017/11/24(金) 20:00:59.51ID:7dGX3zxS0
非同期処理のasync/awaitって

処理A
var ret = await Task();
処理B

みたいなときはTaskの中の処理が終わるまでは処理Bには進まないという理解であってる?

あとTaskの中がプロパティに値を代入するだけみたいなawaitを使うタイミングがない場合は

await Task.Run(()=>{ Taskの中でやりたい処理 });

って書くしかない?
0812デフォルトの名無しさん (ワッチョイ bfe5-BZ1s)
垢版 |
2017/11/24(金) 21:16:49.61ID:h5bnr1q30
まだひよっこでよくわかって無いんだが
過去の他人が書いたコードで

if (条件){
処理 A
}
else if (条件){
処理 B
}
else{
// 何もしない
}

みたいなコードを見ることがあるんだが
このelseの何もしないってのは必要なのか?
0813デフォルトの名無しさん (ワッチョイ c723-hcjg)
垢版 |
2017/11/24(金) 21:23:55.00ID:7dGX3zxS0
>>811
大雑把に書くと下みたいなクラスのプロパティ書き換えるだけのメソッド
awaitする要素見えないけどawait演算子書かないとvisual studioが警告出すからどうやってawaitすればいいのかと

private async Task<bool> Task()
{
a=b;
c=d;
return true;
}
0814デフォルトの名無しさん (ワッチョイ 7f9a-8Ex9)
垢版 |
2017/11/24(金) 21:24:04.90ID:573d9hpx0
>>812
本人に聞けよw
というごく当たり前の話を省くと
・説明的なコードとしてわざわざつけくわえてある
・追加の可能性があるのでわかりやすいようにわざわざ残してある
このあたりじゃだめか?
C#として必要か?って話なら自分で消してみてビルドしろよって返す
0815デフォルトの名無しさん (ワッチョイ 47b3-TYIg)
垢版 |
2017/11/24(金) 21:25:24.75ID:mqWCdSHW0
後々追加するかもで書いたり何もしないってのをはっきり伝えたいとかで書いてるんじゃないかな
コンストラクタで
class Sample

public Sample()

//何もしない


に近いものを感じる
0819デフォルトの名無しさん (ブーイモ MMeb-z/UA)
垢版 |
2017/11/24(金) 21:45:42.73ID:QGkXc5ztM
>>812
SIerのコーディング規約としてCOBOLの次代からある書き方だよ。
機械的にelseを入れるんじゃなくてelseの処理で何かもれて無いか考えてから空elseを入れましょうって事が形骸化して残ってる。
ほぼなんの意味もないコードです。
0822デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 22:19:14.41ID:7i1mZEYS6
そのコードがasync修飾子を付けたメソッドの中に書かれてるとしたらそれはないだろ
0824デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/24(金) 22:31:59.96ID:7i1mZEYS6
おまえに言ってねえよカス
0825デフォルトの名無しさん (ササクッテロル Spfb-GVqX)
垢版 |
2017/11/24(金) 22:37:51.54ID:tzXAZjO3p
>>824
レス指定すら出来ないとか低脳かよ
0826デフォルトの名無しさん (ワッチョイ 8716-forR)
垢版 |
2017/11/24(金) 22:39:38.31ID:S6xecz6o0
バカか?
0827デフォルトの名無しさん (ワッチョイ c723-hcjg)
垢版 |
2017/11/24(金) 22:41:49.16ID:7dGX3zxS0
下の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;
}
0829デフォルトの名無しさん (ササクッテロル Spfb-GVqX)
垢版 |
2017/11/24(金) 22:49:06.66ID:tzXAZjO3p
つーかガックシって大学回線のワッチョイか
まさに低脳猿そのものだな
大学から2chとかどこの馬鹿大学の馬鹿ガキだよ
0830デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/24(金) 23:14:31.39ID:P/o0ISHr0
ウゼエ、ササクッテロ
0831デフォルトの名無しさん (ササクッテロル Spfb-GVqX)
垢版 |
2017/11/24(金) 23:20:37.11ID:tzXAZjO3p
ワッチョイの下4桁が変わってねぇぞ大学から2chの低脳猿ガキ
0833デフォルトの名無しさん (ワッチョイ 7fe8-HoHO)
垢版 |
2017/11/24(金) 23:54:06.99ID:2BrQd4/c0
datagridviewで下から2つ目だけ変更する方法教えて
1 あああ
4 いいい
8 ううう
9 えええ
2 おおお

上から探索して行特定してCell位置指定して編集するしかない?
0836デフォルトの名無しさん (ワッチョイ 7fe8-HoHO)
垢版 |
2017/11/25(土) 00:08:11.36ID:6waUtYEo0
>>834
えーおもろ
DataSouce使うと
プロパティ名がそのまま項目名になるのか
0837デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 00:10:38.42ID:pvPgs+4u0
eɪsíŋkrənəs
エイシンクロナス
0844デフォルトの名無しさん (ワッチョイ 8719-forR)
垢版 |
2017/11/25(土) 12:39:27.40ID:8Imfk/az0
>>841
???
0847デフォルトの名無しさん (ワッチョイ 8716-forR)
垢版 |
2017/11/25(土) 17:12:39.27ID:JSTnYDsg0
>>841
上のやつってTask<Task>が返ってくるの?
0849デフォルトの名無しさん (ワッチョイ 8716-forR)
垢版 |
2017/11/25(土) 17:20:24.36ID:JSTnYDsg0
x 変える o 変わる
ササクッテロも煽りカスなのでNG推奨
0850デフォルトの名無しさん (アウアウエー Sa1f-h039)
垢版 |
2017/11/25(土) 17:35:24.80ID:KnGPLM4Ka
何度も同じこと言って申し訳ないけど、だからワッチョイだのIDだのって嫌いなんだよね。

こういう他人にネチネチ粘着する馬鹿を喜ばせるだけのことで、
本来の目的であったはずの荒らしに対する抑止力どころか、かえって逆効果にしかならない

しかしさあ、いつも思うんだけど「誰かに粘着してやろう」とか思う奴って
どういう思考回路してるのかね。

俺には粘着する側の負い目を語るに落ちてるようにしか見えないけど、
テメエを客観視する能力ってものがないのかねw
0852デフォルトの名無しさん (ブーイモ MM4b-LtnT)
垢版 |
2017/11/25(土) 17:47:24.32ID:4eIXfHS3M
>>850
しかしさあ、いつも思うんだけど、毎回この「いつも思うんだけど、〜、かねw」パターンのレスを繰り返す奴ってどういう思考回路してるのかね。
俺には認知症か記憶障害にしか見えないけど、
テメエを客観視する能力ってものがないのかねw
0853デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 17:57:34.25ID:pvPgs+4u0
大丈夫かこのスレ?w
0860デフォルトの名無しさん (ワッチョイ 5fe0-V3vG)
垢版 |
2017/11/25(土) 20:47:38.24ID:UxolN1FL0
(´・ω・`)linqってマジックみたいにむちゃくちゃすごいってほんとなの?
C# っておぼえるのむずかしいの?
0861デフォルトの名無しさん (ブーイモ MM4b-LtnT)
垢版 |
2017/11/25(土) 20:58:40.30ID:oOkyLeSsM
>>860
C#はメジャーな言語の中では特別難しいわけではないがどっちかというと難しめの部類
もともと他言語の経験者向けに作られた言語なので、他の言語の経験があればわりとすんなり入れる
反面、プログラミング自体の初心者には「なんでそんなことをするのか」と感じる部分が多く馴染みにくいと思われる
C#に限ったことじゃないが、プログラミング自体が初めてなら最初は誰でも血を吐き地獄を見て自分の無能さに絶望するもんだ
0863デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 21:18:11.07ID:pvPgs+4u0
>>860
linqじゃなくてもjavascriptでも同じこと出来る
0864デフォルトの名無しさん (ワッチョイ 5fe0-V3vG)
垢版 |
2017/11/25(土) 21:20:36.41ID:UxolN1FL0
(´・ω・`)そうなんやー
0866デフォルトの名無しさん (ワッチョイ 47b3-Ej9D)
垢版 |
2017/11/25(土) 22:13:03.23ID:P4DLYtAR0
コンソールアプリケーションから学んでけば、そんなでも無いと思うけどな
いきなりGUIじゃ訳分からなくなるのも当然っつーか

「今は分からないだろうけど、取り合えずおまじないと思って書いといて」
的なお約束なんて、Cでもあるもんだし
0871デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 22:56:21.40ID:pvPgs+4u0
リテラルで省略できるから
0873デフォルトの名無しさん (ワッチョイ 8716-gKf3)
垢版 |
2017/11/25(土) 23:03:29.13ID:8TvkEmrh0
クッソおもろい見本回答を見せてくれ
0875デフォルトの名無しさん (ワッチョイ 8702-gKf3)
垢版 |
2017/11/25(土) 23:13:26.66ID:mL7zXSYF0
アホにもわかるように説明してくれ
0877デフォルトの名無しさん (ワッチョイ 8702-gKf3)
垢版 |
2017/11/25(土) 23:17:09.05ID:mL7zXSYF0
>>87のレスがダメな理由をアホにもわかるように説明してくれ
0878デフォルトの名無しさん (ワッチョイ 0775-gKf3)
垢版 |
2017/11/25(土) 23:17:56.98ID:pvPgs+4u0
>>870のレスがダメな理由をアホにもわかるように説明してくれ
0880デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 23:22:51.70ID:pvPgs+4u0
nullableじゃない他の言語があるってことじゃね?知らんけど。
0882デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 23:29:51.79ID:pvPgs+4u0
>>881すまん安価ミスってたわ
>>869のレスがダメな理由な。
0883デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/25(土) 23:30:52.77ID:pvPgs+4u0
872 デフォルトの名無しさん (ワッチョイ 5fb3-CDhT)[sage] 2017/11/25(土) 23:01:32.05 ID:+Jz8ZPqE0

>>869
そう言うつまんない返し要らんし


0884デフォルトの名無しさん (ワッチョイ ff9c-fZw1)
垢版 |
2017/11/25(土) 23:58:41.99ID:A9/gx1Z/0
流れをぶった切って申しわけないが
container.Resolve<IEventAggregator>().PublishOnUIThread(new MaxProgressMessage(FileList.Count));
が長すぎて幻滅してるんだ、短かくする方法ない?
0885デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/26(日) 00:01:18.75ID:esrARD9/0
無いだろ。
分解するくらいしか
0894デフォルトの名無しさん (ブーイモ MM7f-+V5r)
垢版 |
2017/11/26(日) 10:40:50.07ID:2r+x+WFfM
横からだけどnewする意味が分からなかった
無駄に見えた

AAA aaa = new AAA();

それとAAAが二回書かないといけないのも無駄に見えた
今はvarがあるからいいけど

c++だと AAA aaa;でオブジェクトができる
0903デフォルトの名無しさん (ワッチョイ 8702-forR)
垢版 |
2017/11/26(日) 12:27:12.72ID:xDPLX0UM0
ゴミスレ
0905デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/26(日) 19:53:03.03ID:esrARD9/0
今更だけどスレタイのふらっとって♭とかかてんだな
今気づいたわ。考えた奴センスあるな
0906デフォルトの名無しさん (ワッチョイ 5f94-0Qzv)
垢版 |
2017/11/27(月) 05:07:40.67ID:zYU8hzi70
「C#」の失敗は
↑この名前そのもの。
名前に記号を含んだことでネット検索などでの調査が非常にしずらい。
現にこのスレのタイトルは検索で辿りつけるようにシャープを3種類(#,♯,#)も使っている。
0910デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/27(月) 07:57:54.24ID:9arhdycY0
普通に検索できるけど。
https://i.imgur.com/JuJbkc6.png
0914デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/27(月) 11:56:36.72ID:YP5p2xtB6
名前の短さとユニーク性から言って他の言語の中で1番検索が手軽だろ
0916デフォルトの名無しさん (ワッチョイ 7fe8-HoHO)
垢版 |
2017/11/27(月) 15:04:54.85ID:Nt2T9amD0
Golang
0922デフォルトの名無しさん (ワッチョイ a703-egQi)
垢版 |
2017/11/27(月) 20:08:46.06ID:kbE8zzrJ0
英語圏だとc sharpとかやるのにお前らなんでシーシャープとか検索の工夫せんのや?
0928デフォルトの名無しさん (バッミングク MM3f-HEAl)
垢版 |
2017/11/28(火) 07:14:46.79ID:SLs8Sy3DM
C#でもDIしてみたいと思ったのですが、使うのは絶対にインターフェースなのでしょうか
抽象クラスを使ってる例を見ないので、ひょっとしたら抽象クラスは使わないのかと感じています
0930デフォルトの名無しさん (ブーイモ MM7f-LtnT)
垢版 |
2017/11/28(火) 08:44:27.50ID:tn7hDAAkM
>>928
インターフェース継承(必ずしもC#のinterfaceではなく、使う側からの見え方を継承するという意味ね)に抽象クラスを使うのは今時はあまり好まれない
規模の大きな開発だと、使われる側の前に使う側のクラスが先に実装されてしまうこともよくあるし、
いちいち個別に判断するより少々冗長になったとしても全部interfaceの方が分かりやすいし後で融通利くだろという考え方をすることが多い
抽象クラスを使って実装を共通化したい場合は、interfaceを抽象クラスが継承してそれを更に継承すればいい
0938デフォルトの名無しさん (ワッチョイ 27e3-RHkz)
垢版 |
2017/11/28(火) 10:14:53.34ID:7U+HR4FY0
そもそも不特定多数が突然触る環境って開発じゃないよな
ちゃんと設計してから組むのが当然であって
どんな場面を想定してるのか全くわからない
インターフェースを統一しようがどうだろうが必要なデータを必要なだけしか渡さないでほしい
0941デフォルトの名無しさん (ワッチョイ 27e3-RHkz)
垢版 |
2017/11/28(火) 10:20:37.75ID:7U+HR4FY0
標準ライブラリぐらい共有されてるソースでしか使わないほうがいいんじゃない?
コミュニケーションコストが大きくない?
ドキュメントもそれなりに書かないとどこの誰向けのインターフェースなのかわかりにくい
お客様に使わせる前提?
サンプルソース用意した方が良さそうだし
0942デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/28(火) 10:29:54.52ID:c9nafor26
抽象クラスだと一個しか共通機能付けれないじゃん。
0947デフォルトの名無しさん (アウアウエー Sa1f-h039)
垢版 |
2017/11/28(火) 12:13:04.45ID:AHd0O/Rna
どうせならstaticおじさんパロって「しっくりこないんです」って言ってほしかった。
まあ、どっちにしろ面白くないよ悪いけど。

2chだからって無理して道化を演じなくてもいいんだよ。
20年前30年前ならわかるけど、まさか2017年にもなってネットの掲示板に書き込むことが
君にとって非日常なのか?w
0951デフォルトの名無しさん (ワッチョイ 27e3-RHkz)
垢版 |
2017/11/28(火) 13:24:48.88ID:7U+HR4FY0
>>949
インターフェースのメリットを説明できないからそういうレスするんだよね
なにも作れないから言語の機能だけ覚えて身を固めたんでしょ?
説明をさせるとメッキが剥がれちゃうんだよね?
0952デフォルトの名無しさん (ワッチョイ 27e3-RHkz)
垢版 |
2017/11/28(火) 13:42:38.72ID:7U+HR4FY0
相手も想定してないのにインターフェースなんて意味ないって
誰に提供したいインターフェースなの?
ただ趣味で作ってるゴミコードなんでしょ?

あ、usingがメリットとか言ってたっけ?
アレのどこがメリットなんだよ
使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん
しかも明示的に実行されてるのかどうなのか見えなくなってるし
0953デフォルトの名無しさん (ブーイモ MMeb-z/UA)
垢版 |
2017/11/28(火) 13:48:33.09ID:bfhutU2GM
>>952
> あ、usingがメリットとか言ってたっけ?
> アレのどこがメリットなんだよ
> 使うたびに実装できてるか中身確認しねーと解放できてるかもわかんねーじゃん
> しかも明示的に実行されてるのかどうなのか見えなくなってるし

詳しく
0956デフォルトの名無しさん (ワッチョイ 8702-forR)
垢版 |
2017/11/28(火) 14:25:39.80ID:xJKXjbc10
>>954
インターフェースのデメリットを説明できないからそういうレスするんだよね
なにも作れないから言語の機能だけ覚えて身を固めたんでしょ?
説明をさせるとメッキが剥がれちゃうんだよね?
0962デフォルトの名無しさん (ワッチョイ 8702-forR)
垢版 |
2017/11/28(火) 16:23:31.62ID:1xNDji3d0
クラスの継承だと一個しか継承できないじゃん。
機能が被ってるけど親子関係にはないクラス作りたかったらそれぞれに同じ機能実装しないとダメじゃないの?どうやるの?
0964デフォルトの名無しさん (ワッチョイ 874b-gKf3)
垢版 |
2017/11/28(火) 17:35:52.85ID:SapPVZy10
それぞれで実装しないといけないのはどっちでも同じだけどインターフェースがないと親子関係にないクラスに同じ機能があることを明示できない。
0967デフォルトの名無しさん (ワッチョイ 874b-gKf3)
垢版 |
2017/11/28(火) 19:05:52.27ID:MQt2+v8o0
>>965
どういうケースもクソもないだろ。
インターフェースってそういうもんだろ?
インターフェース使えば親子関係にないクラスでも同じ機能のメンバに同じ書き方でアクセスできるようにできるぞ。
0968デフォルトの名無しさん (ワッチョイ 874b-forR)
垢版 |
2017/11/28(火) 19:08:08.25ID:MQt2+v8o0
>>966
みんなが使うライブラリならインターフェース使ってもいいけど同じチーム内でしか使わないならそんなのいらないらしい
0969デフォルトの名無しさん (ワッチョイ 27e3-RHkz)
垢版 |
2017/11/28(火) 19:09:54.51ID:7U+HR4FY0
>>966
企業が全体に提供するものは有りだと思ってる
インターフェースを提供する側と使用する側が明確じゃん
ドキュメントも割りとしっかり書かれるだろうし
サンプルソースもあれば
テストもしっかりされてる

でも人売り派遣プロジェクトではコミュニケーションコストが上がるだけなので無駄
10人以内のプロジェクトでは無駄ぐらいに受け取ってくれていい
0971デフォルトの名無しさん (ワッチョイ 874b-gKf3)
垢版 |
2017/11/28(火) 19:30:18.03ID:MQt2+v8o0
要するにインターフェースいるか要らんかは条件次第なのにインターフェース自体要らん(と言ってるように聞こえるようなこと)を言い出したそいつが諸悪の根源ってこと。
0977デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/28(火) 20:08:25.12ID:A5IfF+7K6
>>973
メリットはクラスになにかしらの共通の機能を次々と簡単に付加できること
そしてその機能を持ってるクラスのオブジェクトをまとめて処理可能
0979デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/28(火) 20:15:05.35ID:A5IfF+7K6
どっちでもいい
例えばINotifyナンチャラとか付ければ簡単に新しい機能を付加できるしその機能があることをプログラムが知ることができる
0982デフォルトの名無しさん (ガックシ 068f-forR)
垢版 |
2017/11/28(火) 20:42:42.92ID:A5IfF+7K6
>>980
別だとしてもその実現の過程でインターフェースは必要になる
機能をペタペタ付加したいなら基底クラスの継承だけで共通化するより簡単になる
0989デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/28(火) 22:29:51.83ID:g1MyZtTV0
クソスレ
0996デフォルトの名無しさん (ワッチョイ 0775-forR)
垢版 |
2017/11/29(水) 09:33:48.08ID:bodUKsOx0

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´
      ○
       O
         ,r"´⌒`゙`ヽ
       / ,   -‐- !、
      / {,}f  -‐- ,,,__、)  と思うゴリラであった
    /   /  .r'~"''‐--、)
  ,r''"´⌒ヽ{   ヽ (・)ハ(・)}、
 /      \  (⊂`-'つ)i-、
          `}. (__,,ノヽ_ノ,ノ  \
           l   `-" ,ノ    ヽ
           } 、、___,j''      l
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 21日 13時間 55分 47秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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