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


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

C#, C♯, C#相談室 Part88



1 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 16:14:05.15 ID:I42JqLkf.net]
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part87 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1427558696/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

2 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 09:05:59.64 ID:fLVu21Zo.net]
質問しようと思ったけどボコボコにされそうだからしない事にした

3 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 11:30:04.61 ID:46Fm2wcC.net]
そんな……
やさしいおじさんが聞いてあげるから言ってみな?

4 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 11:39:51.33 ID:N2oZlVgp.net]
なんだ おまえ ホモか

5 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 16:15:48.72 ID:xa5HdSSx.net]
結局セキュリティソフト君はその後どうしたのかね?

6 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 17:26:44.71 ID:lXSfNNdx.net]
セキュリティソフトの作成方法を聞き出して
その情報を元にウイルスでも作ろうと思ってたんじゃないの

7 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 17:39:28.63 ID:l9VGeSW8.net]
>>6
そんな頭があれば既に作ってるだろうw

8 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 19:23:11.46 ID:kjrWspdc.net]
>>6
その匂いがプンプンするね
今日日セキュリティソフトを自作したところでそんな怪しげなもの誰一人使わない
犯罪目的のクズ野

9 名前:Yだろ []
[ここ壊れてます]

10 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 19:36:43.53 ID:vtqRL+nm.net]
>>8
2ch脳全開だなw



11 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 20:19:40.20 ID:B0K0vZKc.net]
そんなスキルあるやついないだろうしねぇ
でも祐ちゃんの例もあるし今居る住民もいつダークサイドに堕ちるか分からんよw

12 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 20:31:57.38 ID:N2oZlVgp.net]
おまえらの場合「立つ鳥、跡を濁さず」とか言って
社内インフラを綺麗にしていくんだろ
そうはいかない

13 名前:デフォルトの名無しさん [2015/07/29(水) 10:43:41.78 ID:Sn/ML9/s.net]
最近になって開発環境を総グレードアップして
いよいよTaskやasync/awaitを使い始めたんだけど、信じられないくらい難解だね
ぱっと見スマートに見えるコードでも、finallyとかcatchとか使うと、実行順序が滅茶苦茶になるし、バグコードが分かりにくい
ストアアプリなんかはThread廃棄で、これだけを使えとかされているけど、こんなもの生き残るんだろうか・・・
少し心配になってきた

今どの程度の人たちが使っているんだろうか・・・使っている人います?
利用者が少ないようだと、そのうちコケるんじゃないかと思うので使用を躊躇う

14 名前:デフォルトの名無しさん [2015/07/29(水) 10:47:04.71 ID:ARLADCs4.net]
新しいことに対応できない老人はずっとThreadのままでいいんじゃね

15 名前:デフォルトの名無しさん [2015/07/29(水) 10:50:05.68 ID:Sn/ML9/s.net]
www.slideshare.net/ufcpp/an-other-world-awaits-you
いくら効率が悪いといっても、こんなにしてしまうくらいならシンプルにlock式にした方が良い気がするんだよな・・・
何時までこの強引なシングルスレッドモデルを使う気なんだろうか

16 名前:デフォルトの名無しさん [2015/07/29(水) 10:53:42.82 ID:Sn/ML9/s.net]
>>13
新しくて使えるものならOK
だけど、コードにバグがあるのかないのかはっきりしないコードが容易に生産されてしまう仕組みと
それを実現しているシステムが難解で一度バグったら解決困難に陥るところが気に入らない

17 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 11:08:36.50 ID:KiB1GMXB.net]
気に入らないなら使うなよ
馬鹿じゃねえの
頼まれてもいないくせに図々しく使った挙げ句ウダウダうるせえんだよ生ゴミが
スタバのミルクスチーマーに頭突っ込んで死ね

18 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 11:12:05.54 ID:/xHve5to.net]
まあ複雑な裏側を隠蔽した副作用で変な落とし穴作ってる側面はある

そういうや以前ストアアプリで生Thread使えないんで困ったような記憶があるなあ。
あれ何に困ったんだっけ

19 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 11:21:13.95 ID:/xHve5to.net]
スレッドをAbortする手段がないから、まれにデッドロックするバグがあるライブラリを
使えなくて困ったんだな確か...

20 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 11:23:56.70 ID:5YdTwoj1.net]
まれにデッドロックするバグのあるライブラリなんか、
Abort有る無しに関わらず使いたくないな。



21 名前:デフォルトの名無しさん [2015/07/29(水) 14:35:01.41 ID:Sn/ML9/s.net]
こいつを完全理解しようと思うならSynchronizationContextの自前実装で試してみるくらいはしないと無理だな・・・ふぅ
なんでこんな変態的な事しようなんて考えたんだろMSの中の人は・・・
www.kanazawa-net.ne.jp/~pmansato/parallel/parallel_synccontext.htm

22 名前:デフォルトの名無しさん [2015/07/29(水) 14:36:16.21 ID:Sn/ML9/s.net]
まだ、C++のテンプレート変態メタプログラミングの方が可愛げがある
やり過ぎだ・・・

23 名前:デフォルトの名無しさん [2015/07/29(水) 14:58:15.30 ID:UDgaLD/w.net]
やり過ぎの基準ってどこだろう。
ラムダだって初級者にはやり過ぎだろう。

24 名前:デフォルトの名無しさん [2015/07/29(水) 15:09:34.16 ID:Sn/ML9/s.net]
知るべき内容が、際限なく発散しなければ、多少奇抜でも初心者は驚くだけでそのうち慣れるだろう
そうでないのは良くない

Task/asyncは際限なく発散している、質が良くない
あとドキュメント少なすぎ

25 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 15:51:42.49 ID:i8OV3HLL.net]
質が良くないとは思わんけど、便利だけどドキュメント少なすぎなのはまあそうかも

26 名前:デフォルトの名無しさん [2015/07/29(水) 16:00:51.85 ID:Sn/ML9/s.net]
本当はね、言語の組み込み機能位なら、一ページで説明できる程度でなきゃ駄目だ
大量のドキュメントなしに全貌が理解できないなんてのは最低です
提供される要素は巨大ライブラリじゃないんだから・・・

27 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 17:41:02.30 ID:RzPhPosx.net]
asyncの例外はもうちょっと何とかして欲しい
だからと言ってpromiseもどきに退行する気もないが

28 名前:デフォルトの名無しさん [2015/07/29(水) 18:09:37.81 ID:Sn/ML9/s.net]
だんだん問題が見えてきた。用心しなきゃならないのは、awaitをlockで囲んでしまわないことと
async void のケースで、完了を待たないという事をしっかりと理解しておく事だな
待たないから、awaitを使って書かれたコードより先にそれを囲っているfinallyを実行してしまう
前者にしても後者にしても、サブルーチンやイベント呼び出しに含まれていたりするケースはバグが潜在しやすいね
こりゃ、初心者に啓蒙活動するもの大変だ
後でアンチパターン集作らないと・・・どっかサイト作っている人いないかな、作るのメンドイ

29 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 18:15:27.82 ID:kqrCR8QI.net]
なんかレベル低くない?

30 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 18:22:32.72 ID:ARLADCs4.net]
低レベルな話題は初心者用スレでどうぞ

ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1436344868/



31 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 18:27:14.32 ID:aeHXtAal.net]
初心者に啓蒙…

32 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 18:31:26.26 ID:7PHxXKam.net]
勤勉な無能だな。
今日中にID:Sn/ML9/sを銃殺しておくように。

33 名前:デフォルトの名無しさん [2015/07/29(水) 18:32:40.51 ID:v5HDQPvF.net]
Task使えばいいじゃない

34 名前:デフォルトの名無しさん [2015/07/29(水) 18:44:23.60 ID:Sn/ML9/s.net]
>>28-32
お前らに何一つ理解できているとは思えないけどなw

35 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 19:02:27.32 ID:eAAheHcV.net]
気は済んだ?
じゃ、飛び込もうか
電車がきたよ

36 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 19:28:29.68 ID:ozMfiNSe.net]
>>27
バカ

37 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 21:50:33.64 ID:G+YolpHZ.net]
将来的にマイグレーションするんじゃねえのって考えると恐い
別の言語に移植できるのかこんなの

38 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 21:59:45.14 ID:A0PWsVoV.net]
非同期なんて見えないgoto文だらけみたいなもの

39 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 22:22:48.27 ID:F3xhAPP9.net]
ちなみにJavaScriptにはasyncが入ったよ
なんだかんだC#のやり方は正しい

40 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 22:30:49.56 ID:ubdcnWrb.net]
C#の機能を取り込もうと周りが真似ていくはずだから移植は難しくはない筈



41 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 22:59:35.19 ID:JV2gkNFI.net]
C++でも次期改定C++17の主要機能の一つとして挙げられている

42 名前:デフォルトの名無しさん mailto:sage [2015/07/29(水) 23:13:48.97 ID:eAAheHcV.net]
Pythonも3.5でasync/await入る
try~catchの融通の利かなさまでおんなじw

43 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 01:34:31.84 ID:1osdJ7bT.net]
C#知らないけど、凄い詳細な仕様での例外の問題を話しているのかと思って、
わざわざC#のasyncの仕様読んだ

ただの非同期処理を知らない初心者がブーたれてただけだった…

44 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 01:36:30.16 ID:1osdJ7bT.net]
これがC++のTMPより複雑とか、Boostすら触ったこと無いとしか

45 名前:デフォルトの名無しさん [2015/07/30(木) 06:07:53.43 ID:TTNL8OnS.net]
>>42-43
そんな知識で反応するとか酷過ぎるw
Boostはかなりきれいに整備されてるだろ
難しくはあるが複雑ではない
そして、あんまり落とし穴のような問題は無い

46 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 06:40:30.06 ID:1osdJ7bT.net]
>>44
なんでそんな使った事もないのバレバレなレスが出来るんだwwwww
spiritとか黒魔術の塊なのに
最近は浅い知識で知ったかぶりするのが流行ってるのか?

47 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 06:47:38.85 ID:1osdJ7bT.net]
つか別スレッドの例外を、開始スレッドのブロックで拾えないとか、
平均的Javaプログラマすらわかるような、当たり前すぎてビビる話されてドヤられても困るわ

48 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 06:50:57.70 ID:JffQwXQ6.net]
asyncやTaskがきれいかどうかはともかく、boost以下はないw

49 名前:デフォルトの名無しさん [2015/07/30(木) 06:52:34.22 ID:TTNL8OnS.net]
>>45
黒魔術と難解性と複雑さの違いは理解し解こうなw
ついでに言うと知っているし、かつて使いまくってたし
今は開発全部C#に移って、だいぶご無沙汰だけどね

#あれは、構文解析機として独立したライブラリで、各種テンプレートの中でも他所への影響が少ない簡潔なライブラリだよ

50 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 07:13:49.61 ID:1osdJ7bT.net]
全然簡潔じゃねえよ糞ワロタwww
中身Phoenixそのままだぞww

最悪そのままスレッド内で例外処理すりゃいいだけの話と、
書き損じたら読めないエラー出す上に、
使う側にも魔術要求するバッドノウハウの塊を一緒にすんなw



51 名前:デフォルトの名無しさん [2015/07/30(木) 07:16:43.41 ID:TTNL8OnS.net]
>>49
使ってみたけど難しすぎて全然分からなかったと言えよw
簡潔かどうか把握できるところまで辿り着けませんでしたと

52 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 07:31:38.69 ID:1osdJ7bT.net]
>>50
アホか使ってるから言ってんだよw
そんな中身のないレスしかできない時点で、
使ってもいないのがよくわかるw

53 名前:デフォルトの名無しさん [2015/07/30(木) 07:37:48.65 ID:TTNL8OnS.net]
ちなみに俺だったら、テンプレートライブラリ群の中ではスマートポインタ類を挙げるよ
async/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている

spiritのように完璧な基礎を基盤に順次積み上げているようなライブラリを挙げたりはしない

54 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 07:47:59.99 ID:qgoNGP4Y.net]
こんな時間から真っ赤で大丈夫か

55 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 07:56:59.31 ID:1osdJ7bT.net]
>>52
>async/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている
んー?ちょっと理解できないので、ぜひ説明してみてくれ

ちなみにspiritは中身phoenixで、
普通にboost::mplも使ってるので基礎全然ではない
資産の積み重ねであると認めている時点で簡潔でもない

56 名前:デフォルトの名無しさん [2015/07/30(木) 08:05:57.29 ID:TTNL8OnS.net]
>>54
内容物を封じ込めきれない場合、くるんで隠しちゃダメなんだよ
バグだらけになる、スマートポインタが流行ったときに散々議論された話
C++の場合、それ以上に生ポインタがやばいので、チーム全体のスキルを上げてだましだまし使うという選択肢も考えられるが
C#は初心者でも使う言語だからな C++ のようにメンバー全員エキスパートとか期待できない、このあたりもヤバイ
おまえ説明しろとか言っているだけで自分で考える気もなければ、調べる気もなさそうなのでこのあたりまでな

spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
そのあたりを理解していけば多少は分かってくるかと

57 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:11:05.97 ID:HdXuYlDO.net]
誰か相手してやれよ。こんなのがC++erだと思われると悲しいな。

58 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:13:51.40 ID:L13dholr.net]
嫌なら使うな
最初から別言語でやれ

59 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:22:49.93 ID:1osdJ7bT.net]
>>55
スキル問題の何が質的に同じなんだよ
頼むから少しはasync/awaitとスマートポインタの比較をしてくれ

>spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
>そのあたりを理解していけば多少は分かってくるかと
これもぜひ説明してほしいねw
TMPが関数型言語みたいなもんって話から証明は飛躍させすぎじゃね?w

60 名前:デフォルトの名無しさん [2015/07/30(木) 08:28:21.77 ID:TTNL8OnS.net]
>>58
これで分からないなら、スマートポインタの問題についての知識すらなさそうなので、論外という事にさせてくださいなw



61 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:34:06.14 ID:1osdJ7bT.net]
>>59
本当ただ否定するためだけの言い訳ばっかりだな
お前は中身についてまともに議論できないのに、複雑だの何だの言ってたのか?

62 名前:デフォルトの名無しさん [2015/07/30(木) 08:37:28.13 ID:TTNL8OnS.net]
>>60
その言葉そっくりそのままお返しですw
議論できるだけの基礎知識あるなら普通に返すよ、喧嘩腰にもしない

63 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:38:22.31 ID:1osdJ7bT.net]
そのレスって元から非同期処理そのものが複雑になる要因な時点で、
async/await関係ないじゃん
何を問題視しているのかわからないね
そんなに嫌いならPromiseでも使ってろと

64 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:40:07.48 ID:1osdJ7bT.net]
>>61
複雑さを語る割に中身は語らず、例にもスマポとかその程度で
それでいて万人に通じないTMPが簡単と言っちゃう
意味不明すぎるわ

65 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:40:31.54 ID:JffQwXQ6.net]
splitなんか昔からある技術を再実装してるだけじゃん
何も新しいことはない
C系言語をスタックフレームの実行モデルから脱却させるという無謀な試みと一緒にするなよe

66 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:48:52.83 ID:1osdJ7bT.net]
>>64
async/awaitって言う糖衣構文が難しいと言う割に
TMPが簡単とか言ってるから首をかしげてるだけだよ
その上、問題を非同期処理の複雑さにすり替えてて性質が悪い

67 名前:デフォルトの名無しさん [2015/07/30(木) 08:50:33.32 ID:TTNL8OnS.net]
>>63
初心者がC++を初めて最初に驚愕するライブラリだけに、一番最初にこんなもの挙げると程度が知れるんですよ
次はもう少し賢そうに振る舞おうねw

68 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:54:43.00 ID:G7yjDdda.net]
>>53
全然大丈夫ではなさそうだ
双極性障害(躁病)であろう

69 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 08:56:33.54 ID:1osdJ7bT.net]
>>66
いくらレッテル貼ろうがboostは複雑だよ
もちろん読めなくはないが、話している内容との差がありすぎる
というかお前さん結局、async/awaitの中身に言及しなかったな

70 名前:デフォルトの名無しさん [2015/07/30(木) 09:14:46.97 ID:TTNL8OnS.net]
async/awaitは、書き方、呼び出し方次第で見た目の実行順序と実際の実行順序が変わって危険
これに対してどうすべきかという話

スマートポインタの場合は、見た目解放されるべきポインタが何時までも残存する事があるよね
見た目と実際が予想どおりにならない時、中身が隠ぺいされていたらお手上げ
また、見た目に分からない以上、ちょっとしたことでバグは潜在してしまう
初心者が触る時に至っては、問題すら認識できなくなる

C++の場合は、まぁincludeファイルでも観ればエキスパートなら対処可能だろう
C#の場合は言語レベル隠ぺいだからちょっと大変だねILでもみればなんとかなるが、これやれるのはごく一部かな
そして、ILが見れても、その挙動を知るには、ほとんどドキュメントのない内部用ライブラリの挙動を知る必要がある
よほどの実力がないと、問題を起こした時の対処は困難極めるだろう

内容物を隠すのなら、ガベージコレクタくらい確りしたものである必要がある
参照カウンタのスマートポインタには心配が残るが、ガベージコレクタを心配してコードする人はいないだろう



71 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 09:37:38.62 ID:9H67jH/Q.net]
最後の2行ってC++er流のジョークのつもりなの?

72 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 09:53:27.70 ID:Bcr2sdZI.net]
>>69
>async/awaitは、書き方、呼び出し方次第で見た目の実行順序と実際の実行順序が変わって危険
意味が分からない。これはasync/awaitに限った話なのか
非同期処理ってそういうもんじゃないのか

73 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 09:55:56.44 ID:L13dholr.net]
非同期処理が理解できてない馬鹿だからな
真面目に相手しなくていいよ

74 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 10:00:59.23 ID:Z0rCKaW0.net]
>>70
これ以上煽るな

75 名前:デフォルトの名無しさん [2015/07/30(木) 10:07:13.89 ID:TTNL8OnS.net]
>>71
async/awaitでなければ、意識する必要はないかもね、完全に意識下に置かれるから
とりあえず色々ライブラリを移行しまくっていて、食らいまくりなのはこれ、finallyの中身が最後であってほしいがそうはならない
問題点はライブラリの event が Task を戻り値としないために管理外にすっぼ抜けてしまう
導出したライブラリで頻発する
殆どのケースでは問題なく見た目通りの順序だから、普段は安心しきってしまってバグ混入と
finallyにはセマフォなどの制御があったりするから、処理が衝突したりする、しかしエラーはない
普段は正常に動いているふりをするので問題に気づくのにも結構かかった
他にもいろいろあるよ

try
{
1番
await 3番
4番
}
finally
{
2番
}

76 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 11:02:42.02 ID:AGRRcWLu.net]
try{}finallyにこだわるねw

77 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 11:09:17.38 ID:AGRRcWLu.net]
TPLでも同じやん?

try{
 Task.Factory.StartNew( ... ).ContinueWith( ..., TaskScheduler.FromCurrentSynchronizationContext() );
}
finally{
 ...
}

78 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 11:47:18.26 ID:HdXuYlDO.net]
https://i-msdn.sec.s-msft.com/ja-jp/library/hh191443.NavigationTrace%28v=vs.120%29.png?cs-save-lang=1&cs-lang=csharp
この図でも見て落ち着け

79 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 19:27:24.30 ID:FRlaAlkY.net]
プログラマって馬鹿なのか?
複雑で使いにくい言語やライブラリは必然的に利用者が少ない
つまり普及度で比べれば自ずとどちらが洗練された良いものかが客観的にわかる
君たちの感想や妄想で比較するのはナンセンスなのにダラダラとくだらない議論を続けるなよ

さてboost::spiritとasync awaitはどちらがより普及している良い開発ツールなのか?
もう答えは見えたね

80 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 19:49:24. ]
[ここ壊れてます]



81 名前:54 ID:AGRRcWLu.net mailto: つまらん釣りはよせ []
[ここ壊れてます]

82 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 21:09:44.72 ID:1osdJ7bT.net]
メタプロも何のその、スマートポインタをドヤ顔で語り、
他人を無知を許さない歴戦のC++er
しかしそんな歴戦の戦士ですら、shared_ptrをgcの一種とは思わなかった…

83 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 21:27:38.15 ID:DC3tS+uj.net]
議論なんでどこでやってんの?
小学生が夏休みの自由研究発表してるだけだろ
早いね。もうできたんだ

84 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 21:36:25.76 ID:YQW0UVty.net]
>>74
>finallyの中身が最後であってほしいがそうはならない

どんな場合にそうならない?

85 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 21:37:25.07 ID:YQW0UVty.net]
レスをよく見てなかった
82は忘れて

86 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 22:04:34.70 ID:YQW0UVty.net]
>>74
Visual Studio 2015のリリースノートにはawaitのfinally周りが改良された
と書かれているけど直ってない?

87 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 22:11:47.51 ID:AGRRcWLu.net]
>>84
どう治るんだよハゲ

88 名前:デフォルトの名無しさん [2015/07/30(木) 22:38:17.31 ID:l4sc3Y5p.net]
>>85
これでしょ。

https://www.visualstudio.com/ja-jp/news/vs2015-vs.aspx
> Await が catch ブロックと finally ブロックでも機能するようになりました。このため、一部の非常に巧妙な回避策を使用する必要がなくなりました。

89 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 22:41:31.61 ID:AGRRcWLu.net]
>>74のダボはfinallyブロックが非同期部分の終了時に実行されるべきだって言ってるんだろ?
治るもクソもないだろハゲが

90 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 23:14:50.63 ID:S/Rfe7uQ.net]
>>74の内容の妥当性はさておいて
日本語も読めない>>87は哀れだな



91 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 01:13:31.81 ID:gTceL3gJ.net]
いえ
>finallyの中身が最後であってほしいがそうはならない
って言ってますねモロに

92 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 08:19:22.46 ID:ueomFH8Y.net]
会話すらまともに成り立ってないwww
C#erってこんな

93 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 08:22:11.89 ID:HYWsCY4P.net]
ガキは一日中耐久ラジオ体操してろ

94 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 09:31:14.46 ID:09Ldny0J.net]
夏だなぁ

95 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 09:35:02.77 ID:a7ClvwIj.net]
シーシャーパーってなんか涼しそうな響き

96 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 10:50:37.05 ID:IdVy18vn.net]
クジラ守ってそう

97 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 14:37:14.32 ID:gQtzllmk.net]
いいえ、C#estです

98 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 21:56:52.32 ID:5JIfYwes.net]
シーシャニストのがカッコいい

99 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 22:32:23.44 ID:D+nD3a7O.net]
ペニス
ペニサー
ペニセスト

100 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 22:48:45.97 ID:9Dpcu8YK.net]
ガキは宿題済ませて早く寝ろ馬鹿



101 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:04:31.22 ID:gTceL3gJ.net]
finallyさんC++スレでも暴れてたのね
だいぶアレな人だね

102 名前:デフォルトの名無しさん [2015/07/31(金) 23:23:49.25 ID:gPjpb1D1.net]
finallyさんは、ちょっと冷静になって
自分が何を言っているのか
考えた方が良い。

103 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 02:05:01.82 ID:Y3XWk9yX.net]
>>90
言語としても今一番微妙なポジションにあるからね。
このまま行くと消滅路線。

104 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 02:23:11.88 ID:T8vYSDDC.net]
夏休みの自由研究で、C#でアプリを作ろうと思っています。
本を読んで勉強したのですが、よくわからないです。
どうしたらアプリを作れますか?

105 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 02:31:45.31 ID:QSZH+PJp.net]
ボタンを押すと Hello WORLD と表示される愉快なサンプルプログラム載ってないか?
それがアプリだ

106 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 02:39:02.21 ID:T8vYSDDC.net]
>>103
できればゲームを作りたいです・・・。そんなに凝ったものじゃなくていいんですが。
まず何から始めたらいいんでしょうか?

107 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 02:53:06.53 ID:QSZH+PJp.net]
>>104
まずはテトリスからだな
「C#  テトリス」でググレ
いろいろでてくる

108 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 03:58:15.72 ID:T8vYSDDC.net]
>>105
dixq.net/forum/viewtopic.php?t=14298&p=113977
のソースコードを動かしてみたら、エラーが113個出ました。
50分でテトリス作ってみたとかあるんですが、本当にそんなことができるんですか?
8月中にできないとやばいんですが・・・

109 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 04:18:39.98 ID:kwRHUfwj.net]
ジャンケンマンの方がいいんじゃないの

110 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 08:20:21.83 ID:yECmM48c.net]
ゲーム載ってる本買って、まずパクる
キャラ変えたり、音変えたり、ルール変えたり、好きにすれ



111 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 13:27:36.22 ID:R9VQSBfm.net]
>>106
むいてない
2度とプログラムなんかやるな

112 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 13:53:48.80 ID:UUE723C3.net]
>>106
動的なゲームではなく、まずはFormでも使ってウィンドウにhello worldと表示するだけのプログラムを作ってから質問してくれ

113 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 14:25:14.32 ID:aojbSuUF.net]
まいこんべーしっくまがじんという本を買ってくるんだ
たくさんゲームのプログラムが載ってるゾ

114 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 18:00:25.27 ID:QVboZV4V.net]
GCの性質と値オブジェクトって相性最悪な気がするんだけど
stringはどうやってパフォーマンスを担保してるの?

115 名前: ◆QZaw55cn4c mailto:sage [2015/08/01(土) 19:26:52.48 ID:KBiDhOrm.net]
>>112
immutable

116 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 19:44:47.02 ID:4FytA4pZ.net]
値型はスタックに確保されるし
Stringは値型じゃないし
何がなにやら

117 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 19:46:39.35 ID:UepidV+b.net]
stringは特別な存在、とだけ憶えとけば大丈夫

118 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 20:38:03.25 ID:xLNzW59X.net]
>>113
immutableはCoWでもむしろパフォーマンス悪いだろ

119 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:14:12.34 ID:aojbSuUF.net]
同じ文字列を使う分には速いゾ

120 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:49:12.00 ID:QVboZV4V.net]
>>113-114
意味不明

>>115-117
stringは特別に最適化されたGC処理されるって事?



121 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:58:38.39 ID:kwRHUfwj.net]
元の質問が微妙に意味不明だから仕方ないのでは

122 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:21:35.36 ID:uppJpE2l.net]
Immutableはlockする必要がないオブジェクトという事だ
GCとは全く無関係ではないが、この場合焦点がボケてるね

123 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 06:31:34.45 ID:dgw1R64K.net]
>Immutableはlockする必要がないオブジェクトという事だ

Itaniumの.NETをまだ使ってる奴がいたらどうすんだよ
x86 CPUが強いメモリモデルだからって無茶すんなタコ

124 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:06:07.57 ID:WsWDxjYJ.net]
>>121
デザインパターン入門[マルチスレッド編]くらい読めよ・・・

125 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:17:15.75 ID:qgcm2xe/.net]
stringで文字列処理するとオブジェクト数がメチャ増えるからGCと相性が悪い
StringBuilderを使っても引数に渡す文字列は結局オブジェクトだからオブジェクト数の削減にはならない
CLRでは文字列とGCの相性は最悪と言える

126 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:25:36.10 ID:tdoSvti6.net]
>stringで文字列処理するとオブジェクト数がメチャ増えるからGCと相性が悪い

ぼく初心者、これの意味が分からない

127 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:25:39.75 ID:LFE7g0os.net]
世代別GCなので平気です

128 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:27:03.30 ID:LFE7g0os.net]
stringはメモリ以外のリソースを含んでいないのでGCと相性がいいです

129 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:44:13.40 ID:qgcm2xe/.net]
>>125
ちょっとしたビジネスロジックに含まれる文字列計算でもすぐに第一世代を圧迫するので平気ではありません

>>126
マネージメモリのみを使う他のクラスのオブジェクト同士で比較すると
オブジェクトの生成が大量発生する文字列はgcと相性が悪いです

130 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:47:30.80 ID:+O2Hc9iF.net]
はあ、で、だから何?
言いたいことが言い終わったなら世間からGCされて死ねよ
俺がお前の家に行ってFinalizer実行してやろうか



131 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 12:56:45.82 ID:LFE7g0os.net]
第一世代が圧迫されて、GCが発動して直ちに解放されたら、それでいいじゃないですか
言っている意味が分かりません

132 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 13:06:24.68 ID:wlM1NnFc.net]
文字列計算

↑これの意味からして分からんのだが

133 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 13:10:24.61 ID:qgcm2xe/.net]
>>129
残念ながら第二世代へ昇格してしまうオブジェクトがあるので直ちに解放されるという認識は甘すぎます

134 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 13:15:42.32 ID:LFE7g0os.net]
彼は、おかしなことを言っていると言うことが分からないんですよ
文字列で溢れかえるのは、文字列をたくさん作ったからであって、
そのプログラムの仕様なんですが、彼にはそれが分からないんですね。
GCの無い言語でもdeleteがたくさん発生するわけで、同じことなんです。
GCの有る無しは関係ないということが分からないんです

135 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 13:54:15.30 ID:HOry/lAS.net]
お前らは暇つぶしの相手をさせられてるだけだな

136 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:09:04.38 ID:qgcm2xe/.net]
>>132
Cであればメモリを即時解放できます
スタックに文字列を格納したり
ヒープの再利用も容易いです
あなたの理解は素人レベルですよ

137 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:25:14.82 ID:LFE7g0os.net]
Cのfreeの処理がどれだけ重い処理なのか知らないのですか?
即時開放=同期処理というだけですが、それがどうかしたんですか?
論理アドレス空間が断片化するのは無視ですか?

138 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:30:15.00 ID:qgcm2xe/.net]
>>135
ここまでとは…
Cなら標準のメモリアロケーションに頼る必要はありません
カスタムアロケータで確保した文字列にも既存の文字列用資産を活用できます
しかしC#ではマネージ文字列でなければ便利なライブラリが使えないのです
文字列とCLRひいてはGCの相性はやはり最悪なのでしたとさ

139 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:41:33.06 ID:+O2Hc9iF.net]
黙れ
殺すぞ

140 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:43:39.46 ID:LFE7g0os.net]
彼の言っている事は意味不明なんですよ。
文字列がGCに向いていないなら、他のすべてのリソースはGCは向いていない



141 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:50:20.59 ID:qgcm2xe/.net]
>>138
理解が足りていないのですね
文字列は他のクラスよりはるかに多くのインスタンスを必要とされるものです
ゆえに文字列を通常のGCに当てはめて処理するのは愚かであると言えます
文字列は文字列に最適化された別のメモリ管理システムを使って管理すべきなのです

142 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:50:35.31 ID:LFE7g0os.net]
GCが嫌いなら初めからそう書けばよい。
文字列のようなGCの得意分野を持ち出して、向いていない、とか言い出すから分からなくなる。

143 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 16:12:28.48 ID:+B7/KlLQ.net]
いや、別に得意分野じゃないと思うけど…
immutableならなおさら、操作の度に細かいインスタンス出てくるので、
ヒープメモリの管理に割く処理なんて無い方が良い
C++ならスタック内だけで消費されるのも本当

144 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 16:36:46.05 ID:+O2Hc9iF.net]
うるせえ
お前も殺すか

145 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 16:44:47.75 ID:JzmP3MFk.net]
どうしてこんなくだらない話をいつまでも続けられるのか。
暇なのか?馬鹿丸出しだな。

146 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 16:45:41.27 ID:MUxSxVtD.net]
つ 夏休み

147 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 17:26:37.18 ID:4jhYOwvv.net]
うるせーな、メモリ管理したければC++使え
ここは何のスレか言ってみろ
C#はGC使うんだよ

148 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 17:39:16.04 ID:SLv/zRdd.net]
QZに釣られてやがる

149 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:14:35.59 ID:/ORiOewr.net]
ラムダ式、LINQ、Taskを普通に使えるスキルのあるC#開発者人口は日本にどのくらいいると思いますか?

うちの会社の連中、そんなもん使わなくてもコーディングできると言って聞きません。
外部社員でラムダ式が使える奴も見たことない。
これが普通なんですかね?

150 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:16:16.70 ID:SLv/zRdd.net]
そのC#のラムダ式って不動点コンビネータが構成できない似非じゃなかったっけ.
そんなラムダ式なんか要らない



151 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:23:38.38 ID:GEMDX31J.net]
責任取るのが嫌だから導入しねーだけだろ
事なかれ

152 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:35:48.73 ID:hYBXycnP.net]
>>147
全体の5%でも居れば良い方じゃね?

とりあえず、うちの社内の人間でラムダ式やらLINQが使えない奴は総じてソースが糞だよ
というかプログラムの学習意欲が全くないから新しい技術を取り込もうという気すらない

153 名前:デフォルトの名無しさん [2015/08/02(日) 18:37:32.45 ID:mqZtRy/B.net]
>>150
周りに合わせろ雑魚が。

154 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:43:32.27 ID:SLv/zRdd.net]
新しい仕様がなんでもいいわけじゃない
ラムダ式はラムダ式であることの意味がない?なもの

155 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:43:44.25 ID:UnTn4u7/.net]
>>147
それが普通なのかしらんが
おれの周りもそう
今ので動くから新しいことは覚えない
プログラマーってこんな集まりだったんだって思っている
趣味でプログラムやってるのが俺だけ

156 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:44:50.65 ID:hYBXycnP.net]
>>151
10年以上前の技術で止まったままの奴らに合わせる気はないわ

157 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 19:42:53.76 ID:qgcm2xe/.net]
プログラム勉強する時間があったら遊んだ方が有意義に決まってるだろ

158 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 19:52:54.86 ID:WqOvzvBs.net]
お前は死んだ方が有意義だけどな

159 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:13:52.63 ID:qgcm2xe/.net]
>>156
でも遊んじゃうんだなぁ〜
めんどくさい事は外注か新人に丸投げしてな

160 名前:デフォルトの名無しさん [2015/08/02(日) 20:24:43.63 ID:Ofq9w7gw.net]
>>99
C++はもう五年以上やってないし、そっちへは行ってないよ
spiritの人みたいなのならともかく、今となっては現在も技術維持している人に混ざって応えられるだけのレスを返す自信は無いし
また、C++を使った開発予定ももうないので
見つけたのなら、それはキミの仲間だよw



161 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:28:28.25 ID:0wmkVz0F.net]
何があったか知らんけど、相手に変なあだ名を付けて呼んでる奴がいたら
8割方そいつが論争に負けた方だw

精神勝利法って奴だな

162 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:42:15.23 ID:jaEEYgaD.net]
ソフトウェア技術の進歩は早いから
20歳頃に勉強した技術にいつまでも固執していると、使い物にならなくなって
よく言う、プログラマー35歳定年説ってのに引っ掛かっちゃうよ

163 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:05:04.87 ID:OoqJwaHz.net]
>>153
覚えずにやるからとても非効率
そういう輩には旧VBがびったりだわ

164 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:06:42.06 ID:ZVKO9GMz.net]
C#のLINQやらラムダ式やら、世に出てから何年経ってると思ってんだ
って話だよな
なんでこんなに普及率が低いのかと
継承だらけのコード書く奴が偉いと思ったら大間違いだ

165 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:16:31.19 ID:qgcm2xe/.net]
そういうのは趣味だけにしておけよカス

166 名前:デフォルトの名無しさん [2015/08/02(日) 21:18:34.51 ID:Ofq9w7gw.net]
新機能が流行らない理由はMicrosoftに落ち着きがないからだろうな
Windows8とか余計なことし過ぎなんだよ
あれでは雨後の筍のようにバズワードに飛びついて刹那の利益を得るイナゴ開発者しか集まらない
細かいバージョンアップは従来の客層には興味のない話だろうし
そして何度もバージョンアップするならある程度まとめて移行する事を考えるだろうし
そのうち、もうちょっと待ってからが延々待ちに変わってしまうよね

167 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:21:44.75 ID:OaNtdkYp.net]
javaのswingの継承の階層は凄すぎる

168 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:32:05.14 ID:+O2Hc9iF.net]
>>163
お前の存在も冗談なら良かったな

169 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:36:00.70 ID:+x5c8m5K.net]
>>160
おれロト7当たったので自主隠居しました

170 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:37:05.83 ID:+B7/KlLQ.net]
>>164
過去レスで無思慮にasync批判してた人が
そんな事言っても説得力なさ杉



171 名前:デフォルトの名無しさん [2015/08/02(日) 21:39:58.97 ID:Ofq9w7gw.net]
>>168
無思慮なのはお前だけだろw
だいぶ調べてみたが、多くのブログでも問題点について色々懸念しつつ使うというのが常套手段のようだしな

172 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:46:09.22 ID:0wmkVz0F.net]
WPFは流行らなくて本当によかったw

173 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:49:46.15 ID:+B7/KlLQ.net]
>>169
あんな単純な機構に何の懸念があるの?
ちゃんとデコンパイルしたコード見たの?

174 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 21:49:56.58 ID:9q07iZqZ.net]
ひどい、俺がんばったのに・・・・挫折したけど

175 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:19:13.17 ID:HOry/lAS.net]
>>169←これtry{}finallyの人?

176 名前:デフォルトの名無しさん [2015/08/02(日) 22:21:35.57 ID:Ofq9w7gw.net]
WPFはそのうちATLみたいな微妙な物になってしまいそうな予感はしなくもない ^^;

177 名前:デフォルトの名無しさん [2015/08/02(日) 22:25:58.33 ID:wrwHaPDN.net]
HTMLでローカルアプリの画面が作れたら
凄く興味あるけど、ニッチなXMLとか
嵌ったら抜け出すの大変そうで関わりたくない。

178 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:28:09.68 ID:Ufblihje.net]
HTAが泣いてるぞ

179 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 01:51:07.90 ID:pNSXFoy6.net]
リフレクションってもう使う意味ないですよね?
dynamic型を使う方がいいですよね?

180 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 12:38:55.67 ID:R9pQU16a.net]
>>162
C#のラムダ式はYコンビネータを記述できない紛い物

無名デリゲートで使うだけならまだしも、
>>147 のようにC#erの実力や進取スタンス判定に使うなど
プログラミングの基本がわかっていない馬鹿としかいいようがない
害になるから消えてほしい



181 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:31:25.78 ID:CtQaDoTD.net]
>>178
ラムダ式を理解できない老害こそ消えるべき♪

182 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 15:01:00.11 ID:gHG/w8Da.net]
不動点コンビネータだのYコンビネータだの
言ってみたかったんだよね

183 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 18:16:27.74 ID:LdMIlPMJ.net]
不動点コンビネータが記述できないものはラムダでない
という持論が世界普遍的に正しいものと信じて盲信する
キチガイのタワゴトです

184 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 18:42:16.07 ID:scYGV4Wn.net]
たわごとなどききたくない

185 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 19:32:53.72 ID:4R/NRCjC.net]
Microsoftは不要な技術を切り捨てただけ
コンビネータ君もまた不要な人材なので社会から切り捨てられる運命なんだね

186 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 20:35:34.82 ID:QrF7rs+g.net]
不動点コンビネータが記述できないことがどれだけ実務の支障になるんだ?
煽りじゃなく具体例を教えてくれや

187 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 21:05:47.80 ID:2JpaSVHC.net]
Zコンビネータなら書けるし
書けてもいいことないけど

188 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 21:59:21.98 ID:fkEOVG2I.net]
Yコンビネータ使うような案件はF#に任せればいいだけだ
全部C#にするのがまず間違っとる

189 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 22:20:26.90 ID:jNbM75sK.net]
動きゃいいんだよ

190 名前:デフォルトの名無しさん [2015/08/03(月) 22:20:38.41 ID:VRwLh7Nw.net]
Yコンピネータが無いと書けないコードや利点があるとすれば
それは、ラムダ式を引数にしている関数が再帰をしたい場合とかだろう
(x) => x == 0 ? 1 : x*thisfunc(x)
みたいな感じで、自身の関数名をキーワードとして書ければ良い気がする、直接的で分かりやすい
Yコンピネータがあれば無くてもできるというがコードが汚い
あと、名前空間を汚さずに済むケースが増えるなどかな
汚れの少ない名前空間ではインテリセンスがうまく機能してくれるから、重要といえば重要
ただ、これも名前空間をもっと綺麗に整理できるような機能があってくれた方がいいな
関数内クラスとか欲しい



191 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 22:24:33.54 ID:fkEOVG2I.net]
いや、Zは書けるんでしょ?

192 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 22:25:11.33 ID:7E1soqtP.net]
finally君は何時になったらC#卒業するの?

193 名前:デフォルトの名無しさん [2015/08/03(月) 22:29:55.11 ID:VRwLh7Nw.net]
dynamic 使って書くかねw

194 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 22:38:49.23 ID:fkEOVG2I.net]
よく見たらコン"ピ"ネータ
何故知ったかぶりするのか

195 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 22:38:55.27 ID:vbPvRk2A.net]
「ラムダ式」などと誇大にいわず,無名デリゲートでお茶を濁しておればよかったんだが

196 名前:デフォルトの名無しさん [2015/08/03(月) 22:44:36.51 ID:VRwLh7Nw.net]
>>193
ラムダ式はLINQで式ツリーを作ったもんだから必要になったから別途用意したんじゃないかと
無名デリゲートではコンパイルしてSQL文を吐き出すといった操作はできないから

197 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 03:36:34.18 ID:Ru0/ho15.net]
本当ただの簡易AST変換だな

198 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 12:27:43.87 ID:m+fooKhS.net]
わしのラムダは108式まであるぞ

199 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 13:57:48.78 ID:bMUTQ2fC.net]
>>193
まぁこれでこそC#って感じだけどな
もちろん悪い意味で

200 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 16:48:14.90 ID:wPc1LIE6.net]
ヒント :夏休み



201 名前:デフォルトの名無しさん [2015/08/04(火) 17:04:57.64 ID:NUOEqkl8.net]
仕事ができなくて溜まったストレスぶちまけてるおっさんだろw
学生が暴れているようには見えんわ

202 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 17:34:46.86 ID:aAgYc1Dv.net]
質問があります。

これまでC#でCSVデータをシリアル化して外部ファイルに出力する
機能を実装していました。この「

203 名前:Vリアル化したファイル」というのは
WEB開発言語PHPでシリアル化したファイルと互換性はありますか?


例えば、PHPでシリアル化したデータをWEBサーバ上に配置し
クライアントツール(C#)からそのシリアル化したデータを
ローカルにダウンロードし、そして逆シリアル化して復元
といった運用は出来のでしょうか?
[]
[ここ壊れてます]

204 名前:デフォルトの名無しさん [2015/08/04(火) 17:49:57.34 ID:NUOEqkl8.net]
C#にCSV用の標準ライブラリってあったっけ?
自前で実装したなら、分かるのは実装した本人だけかと
ちなみに自分はexcelに仕様を合わせたライブラリを作っている

205 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 18:09:56.36 ID:0uDnfCnt.net]
>>201
そういう問題じゃないと思うけどw

206 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 18:14:08.39 ID:wPc1LIE6.net]
「CSVデータをシリアル化して外部ファイルに出力」したらテキストのCSVファイルになるんじゃなくて?

207 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 18:47:05.52 ID:rfwH7+bZ.net]
シリアル化って言いたかっただけじゃないの?

208 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 18:49:56.95 ID:N21FScZA.net]
CSVはそれ自体が既にシリアル化されています

209 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:07:37.25 ID:JacjvlNa.net]
>>200
CSVファイルと言うのは通常テキストファイルの一種なので
それを使う事を普通はシリアル化/逆シリアル化とは呼びません

CSVファイルは細かい仕様がいろいろあるので
CSVというだけでは互換性があるかどうかは判断できません

210 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:15:23.79 ID:qaA+gaVg.net]
PowerShell なら、import-csv, export-csv,
-encoding で、UTF-8, Shift-JIS のエンコードも指定できる

Excelのファイル形式では、
6 CSV
22 Mac CSV
23 Windows CSV
24 MSDOS CSV

"a,b","a b"
こういうように、文字列の中に、
カンマや空白が入っていると、
ややこしいので、タブ区切り(TSV)を使う



211 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:19:05.97 ID:r/hdf4e8.net]
タブ使いたいときはどうすんだよ低能

212 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:26:03.23 ID:aAgYc1Dv.net]
>>206
そうなんですね。ありがとうございます。

ようは、せっせと作ったあるデータを悪い事するヤツに
ぱくられるのが嫌でシリアル化しようと思っていた次第です。

もっともぱくれる人はそもそもぱくったりしないで自分でそういった用途のツールは
作れるので被害数は少ないのかな〜なんて悩んでます。

213 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:29:44.57 ID:rfwH7+bZ.net]
暗号化と間違えてる?

214 名前:デフォルトの名無しさん [2015/08/04(火) 19:33:30.97 ID:NUOEqkl8.net]
>>209
それシリアル化と違うw

215 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:43:04.44 ID:4wCZUsr6.net]
さすが、PHPer

216 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 19:50:47.06 ID:2RIpmI50.net]
PHPerとVBerは低脳、みんな分かっていることじゃないか

217 名前:デフォルトの名無しさん [2015/08/04(火) 19:52:41.23 ID:NUOEqkl8.net]
揚げ足取りと煽りしかできない低能の例 >>212-213

218 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:15:51.50 ID:si5ERY1h.net]
>>200のシリアル化が暗号化の事言っているなら出来るでしょ

219 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:21:13.38 ID:D63J00pB.net]
C#もVBも変わらんやろ

220 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:23:11.10 ID:DSzfOyI8.net]
根本的な頭の差だよな



221 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:30:05.37 ID:aAgYc1Dv.net]
これで保存したらシリアル化してる事になるよね?
C#で保存したファイルと同じデータをWEBサーバ側(PHP)で作る事は出来ますか?

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, Instance);

222 名前:デフォルトの名無しさん [2015/08/04(火) 20:34:50.51 ID:VO4nX6cY.net]
もうXMLでシリアライズ()しとけよ
誰でも見れるけどな!

223 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:37:30.69 ID:tHoFWEHK.net]
PHP側でBinaryFormatter実装すれば

暗号化が目的ならパスワードZIP使うのが無難

224 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:42:06.66 ID:aAgYc1Dv.net]
>>219
じゃー、いみねーだろ


>>220
解読ぱすわーどをreflectorとかでのぞかれちゃいますよね?

225 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:47:55.07 ID:DSzfOyI8.net]
BinaryFormatterがOKなら暗号化いらねーだろw

226 名前:デフォルトの名無しさん [2015/08/04(火) 20:47:56.74 ID:NUOEqkl8.net]
既にCSVの出力があるなら、それに独自の暗号化で対応するのが良い気がする
単純な暗号化でも謎のフォーマットであれば解読する気になるのは難しいから
それよりシリアライズという言葉に拘っても仕方ないでしょ

227 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 20:52:14.90 ID:DSzfOyI8.net]
reflector使われる前提で謎のアルゴリズムも糞もあるのか?

228 名前:デフォルトの名無しさん [2015/08/04(火) 21:03:17.96 ID:NUOEqkl8.net]
>>224
お前らがそうやって煽るから目的見失って意固地になってんのが問題なんで

229 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:03:56.06 ID:tHoFWEHK.net]
クライアントに置くプログラムだったら何しても無駄

230 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:06:55.71 ID:DSzfOyI8.net]
reflectorでパスワードが見えなければいいなら
データをwebからダウンロードする時にパスワードを一緒に発行したらいい



231 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:11:56.51 ID:aAgYc1Dv.net]
>>223
サンキュー!そうします。

>>224
黙れ糞

>>227
通信を監視されたらパスワードばれるよね?

232 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:14:00.50 ID:DSzfOyI8.net]
パスワードがどうやってデータに含まれてるか、お前が漏らさなきゃ大丈夫だよ
小便垂れ小僧

233 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:16:18.14 ID:HOSQCMMN.net]
SSL通信を監視してパスワード抜いて暗号化のされ方を調べて復号化するのに比べたら
Reflectorでコード読んで同じ方法で戻すなんて赤子の手をひねるようなもの

234 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:19:21.40 ID:m7aLZgrl.net]
いまどきSSL通信なんてどうやってやるんだよ
SSLは10年以上前に廃れただろ

235 名前:デフォルトの名無しさん [2015/08/04(火) 21:21:56.64 ID:NUOEqkl8.net]
売り言葉に買い言葉になっているだけで、当初の投稿内容を見る限りそこまでの暗号化が必要な何かには見えない件w

236 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:25:30.10 ID:HOSQCMMN.net]
>>231
今時HTTPSを全く使わずに生活してるとかどこの原始人だよw

237 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:34:50.08 ID:XZl3Vdz7.net]
TLS言いたいだけだろ、当人はw

238 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:42:30.48 ID:GsFgeSUy.net]
なんか悪いほうに悪いほうに行ってるな
スレの質的に

239 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:47:08.67 ID:wPc1LIE6.net]
いやこんなんもんやで

240 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:54:10.88 ID:8AFF5O0U.net]
>>201
> C#にCSV用の標準ライブラリってあったっけ?
.NETFramework だけど Microsoft.VisualBasic.FileIO.TextFieldParser クラスが定番みたいだな



241 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:57:51.71 ID:si5ERY1h.net]
>>232
>>209みたらパスワードZIPが最適解の様に思えるわ

242 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 22:00:16.11 ID:QCZq3/o/.net]
ユニコード文字もマトモに扱えないZIPが最適とな

243 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 22:01:37.91 ID:GsFgeSUy.net]
>>238
なんで「最適解」って言ったし?
「最適」じゃなくて

244 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 22:48:49.48 ID:a+hgGQs8.net]
>>240
それは一つ前の自分のレス読んだ上で言っているのか?

245 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 00:46:50.12 ID:Nv7QXLgv.net]
>>229
お前と違って皆スキルたけーんだよ。じじぃ

246 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 00:48:53.88 ID:w1UWuDWC.net]
>>232
オメーが引き受けたんだからオメーがきっちり回答しろボケ

247 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 01:13:56.73 ID:jL5pDRik.net]
初心者ですが
このスレ全部読めばアプリ1本つくれますか?

248 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 01:17:03.57 ID:bdT2SiZU.net]
>>244
ハローワールドなら作れるんじゃね?

249 名前:デフォルトの名無しさん [2015/08/05(水) 06:48:51.18 ID:12Hajjty.net]
>>243
本人もう方向性決めてるんだから、この話はもう終わってるんだよ
能無しは黙るという事を覚えろ

250 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 07:13:55.18 ID:w1UWuDWC.net]
>>246
いちいちしょうもない話題で慣れ合いするわ
初心者質問引き受けてかき回すわ
お前こそ能無しなんだから黙っとけよ



251 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 07:17:40.22 ID:tQ69mcSf.net]
じゃあハローワールドの書き方教えてください

252 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 07:29:23.76 ID:e4gAPQI9.net]
いやです

253 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 09:02:51.39 ID:4qiJRodC.net]
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\>echo ハローワールド
ハローワールド

C:\>

254 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 09:37:48.34 ID:nxXw/daG.net]
>>246
お前はスレ分けてる理由理解しとけよチンカス

255 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 09:52:29.59 ID:dcbhMYr4.net]
jbbs.shitaraba.net/netgame/14889/
C#おしえてくださ

256 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 15:33:24.08 ID:bdT2SiZU.net]
2Dゲームの当たり判定で透過pngを読み込んで幅*高さのbool配列を作る。
透明部分をfalseにして残りはtrue。
これで当たり判定をしたいんだけど重いかな?

257 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 16:04:06.01 ID:IqH75krm.net]
最初矩形で判定してあたってたら詳細チェックかな?
まあ労力の割に報われない気もする

258 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 16:40:58.05 ID:bdT2SiZU.net]
>>254
その方法いいですね。流石に最初からしてたらマズイか。
式が乗ってるサイトとかないですかね?

259 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:05:58.09 ID:IqH75krm.net]
まいかいググるからサイトはわからん、、AABBでググるとかどうかなあ

260 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:23:40.78 ID:mF9W7r6V.net]
そもそもピクセルごとに厳密にヒットテストする必要があるのか疑問だけど、
BitBltを使ったら思いっきり高速化できそうな気が



261 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:35:05.62 ID:/gxT3Aye.net]
ヒットテスト??

262 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:37:58.35 ID:spC4qo2X.net]
距離で判定だろ
矩形判定したら大抵は直感的じゃないのと条件分岐回数が増える

263 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:46:05.43 ID:bdT2SiZU.net]
短形を回転させたのは短形じゃ無理だよな。
当たり判定ってどれが一番速いの?

264 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:50:23.38 ID:A44YML9F.net]
中心点からの距離

265 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 20:51:18.27 ID:pM9rsz35.net]
た....矩形w

266 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:15:47.26 ID:7hSDQEcX.net]
クソワロタ

267 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:22:56.01 ID:e4gAPQI9.net]
あー>>260。ちょっと職員室に来なさい。

268 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:24:13.47 ID:/SddKZ7Q.net]
260のソースコードは短形で統一されているのかな
ちょっと気になるから見てみたいわ

269 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:28:51.37 ID:HSrSK7kE.net]
>>237
固定長も扱える優れものかと思ったら、ホントに文字数だからバイト数で指定できるようにしてほしいの

270 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:30:58.55 ID:/lT/VJHo.net]
画像は矩形なんだから、最終的にピクセル単位で判定するんなら矩形でしょ
円使ったら単純な実装だと矩形に比べて無駄にピクセル単位の判定の頻度が増えるから
全ピクセルが収まるような最小の円を求めるとかしなきゃいけなくて無駄に面倒
まあ普通は複数の円の組み合わせで十分じゃないかな
回転や拡大縮小も特別な考慮がいらないし速いしベクトル計算で統一できてソース綺麗になるし



271 名前:デフォルトの名無しさん [2015/08/05(水) 21:31:34.62 ID:12Hajjty.net]
ゲームとか作らんし使ったこともないけど System.Numerics.Vectors にマルチメディア拡張命令を直接生成できる構造体があるという話をふと思い出した
サクッとググッてみたら、ビットごとの and or もってるから
これを使えば 128bit まとめてテストできるんじゃないかな
これでたいぶ早くなるかと

#すでに上がっているBitBltの方がもっと早そうなので、オマケ程度に

272 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:40:49.37 ID:/lT/VJHo.net]
>>268
最適化は小手先の細工の前にアルゴリズムを工夫するんだよ。
例えば画像を小さな領域に分割しておけば、全部透明な領域は判定しなくていいだろ?
C++&SSE&インラインアセンブラで書き直したりするより遥かに速くなる。

273 名前:デフォルトの名無しさん [2015/08/05(水) 21:44:27.09 ID:12Hajjty.net]
>>269
俺凄いってそこまでアピールしないと生きていけないのかよ、この屑w

#見ての通りオマケ程度にみてくれという話なんだが

274 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:44:45.24 ID:pM9rsz35.net]
>>269
どっちかって言うとビット演算を使う方が王道で、小さな領域に分割云々の方が余程小手先の話に聞こえるけど。

275 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:47:10.94 ID:nxXw/daG.net]
いちいち#でオフコメ気取ってるのは何なの?
死ねよクソ/.er

276 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:51:13.43 ID:y9IIWzjN.net]
2Dの当たり判定なら、モートン順序が有名
marupeke296.com/COL_2D_No8_QuadTree.html

277 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 21:56:08.41 ID:/lT/VJHo.net]
>>271
それはリニアサーチが王道でクイックソートは小手先だと言ってるようなもの

278 名前:274 mailto:sage [2015/08/05(水) 21:58:24.93 ID:/lT/VJHo.net]
訂正
クイックソートじゃなくてバイナリサーチの間違い

279 名前:デフォルトの名無しさん [2015/08/05(水) 22:02:40.30 ID:12Hajjty.net]
うぜぇ無能だな
自分、この手の分野まったくのド素人だが、それでも同じアルゴリズムネタなら >>273 の話の方がハイクオリティーな話だなと分かるし、>>274 無能って分かるんだけどw
>>273 参考になりました、機会があったら採用したい

280 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:03:52.92 ID:e4gAPQI9.net]
クソども
仲良くしろよ?



281 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:06:53.46 ID:/lT/VJHo.net]
>>273はまさに領域分割であって、
ビット演算がどうのというのは大した問題じゃないんだが
本当に何もわかってないんだな

282 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:10:51.37 ID:e4gAPQI9.net]
ゲーム以外で当たり判定が必要になる局面ってあるのかな

もっとUIがインタラクティブ()になったら多用されるのかな

283 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:12:25.26 ID:w1UWuDWC.net]
しかも>>273のアルゴリズムって当たり判定の常套手段だしな

284 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:14:01.89 ID:/lT/VJHo.net]
>>279
シミュレーション  まあそのまんまだが
もっと身近な例だとマウスでボタンをクリックするのも当たり判定だよ

285 名前:デフォルトの名無しさん [2015/08/05(水) 22:16:34.25 ID:12Hajjty.net]
モートン順序は高次統計データの範囲限定に使えそうな気がした、次元の呪い除けになりそう
これを三次元に拡張するなら、xyxy... と並べる所を xyzxyz... と並べればいいかななど、一工夫すれば行ける?
高次元でも以下同様な感じで
あとで応用考えたい

286 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:19:00.22 ID:pM9rsz35.net]
面倒くさいんで全部は読んでないが、>>273は当たり判定のアルゴリズムじゃなくて
当たり判定をしなくていいオブジェクトをふるいにかけるアルゴリズムじゃないのか?

287 名前:デフォルトの名無しさん [2015/08/05(水) 22:19:49.62 ID:12Hajjty.net]
>当たり判定をしなくていいオブジェクトをふるいにかけるアルゴリズムじゃないのか?
無能には分からないのさw 無能だから

288 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:21:24.58 ID:ezlo0CHQ.net]
>>283
そうよ
正確に言うといろいろあるふるいのひとつにすぎん

289 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:23:16.73 ID:pM9rsz35.net]
>>285
だったら少なくとも質問者の役にはあんまり立たないね

290 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:29:15.39 ID:w1UWuDWC.net]
>>282
いちいち自己愛高めな奴だなあ
確かに3次元衝突判定にも使うが
多変量解析で木分割してったら次数上がるほど指数関数的に増えるだろ
自分で考えるなんて無駄な事するより学習に時間割いとけよ



291 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:29:35.82 ID:e4gAPQI9.net]
>>281
まあカーソルのホットピクセルとかの1ピクセルの当たり判定は除外しようよ []
[ここ壊れてます]

293 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:32:44.74 ID:y9IIWzjN.net]
当たり判定アルゴリズム≒いらない物をふるいにかけるアルゴリズム
なぜならあたり判定そのものの速度はそれ以上改善の余地がないので
無駄な計算を省く方向で考える

294 名前:デフォルトの名無しさん [2015/08/05(水) 22:37:05.34 ID:12Hajjty.net]
>>287
新しいネタあれば使ってみる
やってみて使えそうだったら使うし、使えなさそうなら捨てる、それだけだよ
見た感じシンブルなアルゴリズムに見えるから、これに割く時間的コストは少々で済みそうだし
ほんと、噛みつかないと気が済まない人だねw

295 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:37:53.90 ID:HSrSK7kE.net]
なんか早いね。シーシャープ流行ってる?

296 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:41:52.30 ID:w1UWuDWC.net]
>>290
解析で探索領域を限定する時に、
データも見ずに事前の分割方法で木分割なんてしないだろ?
それをわかってて言ってるとは思えないから突っ込んでるわけ

297 名前:デフォルトの名無しさん [2015/08/05(水) 22:43:17.03 ID:12Hajjty.net]
>>292
そんなもんとりあえずぶちかましてみて、問題があったらその時考えりゃいいんだよw
めんどくせー奴だな

298 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:45:08.73 ID:y9IIWzjN.net]
>>291
単に誰にでも分かりやすい話題が出ただけでそ

最近、2chへの書き込み量はめっぽう減りましたね
しかし、誰にでも答えられる簡単な餌が投入されると、
直ちにたくさんのレスが帰ってきますので、たくさんの人がWatchしているもよう
たくさんの人が見ているのに、書き込みが少なくて流れにくいということは、
広告やスパムの餌食にあいやすいということでしょうか

299 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:50:15.10 ID:4qiJRodC.net]
僕ときれいなお姉さんとの当たり判定を教えてください

300 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:51:58.37 ID:w1UWuDWC.net]
>>293
だから基礎からやれってば



301 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:52:12.04 ID:HSrSK7kE.net]
>>295
まず駅にゆきます

302 名前:デフォルトの名無しさん [2015/08/05(水) 22:57:02.95 ID:12Hajjty.net]
>>296
多分この分野でもお前よりだいぶ自分の方が詳しいと思うので(笑)

#時間は有限、無駄には出来ない。すぐできるものはすぐやれ!、これが俺流

303 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 22:59:18.61 ID:p4ECD10b.net]
なら死ねよ今すぐに

304 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:00:36.23 ID:BSV0tPUM.net]
話を無駄に長引かせたお前ほど無駄な存在はいないな

305 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:01:26.69 ID:3yG9sQVS.net]
#は半コテでも目指してるのか

306 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:01:51.67 ID:nxXw/daG.net]
おし、締まったな
ついでにカッコ良く自害してくれや

307 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:03:11.89 ID:PXH9N0kW.net]
小学生か中学生か知的障碍者の書いた様なレスばっかだなw

308 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:03:15.88 ID:zxDgQD7q.net]
目障りなら#をNGしてくださいってことでしょ

309 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:04:10.44 ID:/SddKZ7Q.net]
C#スレで#をNGにするのか

310 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:06:51.80 ID:0I3R2SM7.net]
正規表現NGができるなら^#でいいのかな



311 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:07:33.69 ID:bdT2SiZU.net]
今まで短形って思ってた・・・矩形なのね。

312 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:08:11.96 ID:/lT/VJHo.net]
>>286
領域に分割してピクセル単位の判定をするとして、
一方が完全透明→はずれ
両方が完全不透明→あたり
一方がグレーでもう片方が完全透明でない→該当領域を分割してそれぞれ再度判定
と繰り返していけばピクセル単位の判定ができるはずだから、
ツリーの更新や探索で似たような方法が使えないかな

313 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:14:34.62 ID:y9IIWzjN.net]
>>308
それでうまくいくんかね
普通は
親領域で判定してハズレ→完全にハズレ
親領域で判定してアタリの可能性有り→子領域で再判定
だと思うんだが

314 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:19:25.78 ID:/lT/VJHo.net]
>>309
それをピクセル単位の判定に適用すれば>>308になると思うんだけど、違ってる?
透明とか不透明とかグレーとかいうのは領域内の透明度の平均値と考えてほしい

315 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:24:17.12 ID:w1UWuDWC.net]
>>298
何の高次元を言ってるのかしらんけど
少なくとも文書間距離なんかの近傍探索じゃ使い物にならないよ
そこまでいうなら突き進めばいい、そして戻ってくるな

316 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:25:22.08 ID:y9IIWzjN.net]
なるほど

317 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 23:38:24.81 ID:HSrSK7kE.net]
次に服を脱ぎ…なんか荒れてんなあ

318 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 01:19:21.09 ID:QYfkW8HM.net]
finally野郎以降が酷い
エナジードレイン10回食らってもこうはならんわ

319 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 01:26:49.79 ID:WAl/fNJ8.net]
そりゃ、初登場の最初の洗礼が >>16 だからな

320 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 01:55:10.84 ID:rwLMabch.net]
C#相談室(質問に答えるとは言ってない)



321 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 04:44:04.83 ID:Op1qw5HR.net]
美容師カオリのダイエット日記

kaori-diet.sblo.jp/

322 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 09:10:55.30 ID:DlVmD4pB.net]
結局AABBは採用しないんか

323 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 11:26:40.44 ID:kBFzylAm.net]
>>315
わろたw
厳しく適切な>>16であったことが今わかる

324 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:22:19.09 ID:kl/392J0.net]
C#でこれまで hage_list.txt を test.ex

325 名前:e から読み込んで
その内容を画面に表示するプログラムを作っていました。

しかし、
hage_list.txt は普通にメモ帳で開けば見えてしまいます。
そこで test.exe に hage_list.txt を統合する方法が無いか
探していますがいまいち分かりません。


リソースファイルとか何かで昔exeにガッチャンコした事が
あるのですが忘れてしまいました
どなたか方法をご教示くいださい。
[]
[ここ壊れてます]

326 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:32:44.41 ID:MITLwi1y.net]
リソースファイルでggr

327 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:34:44.53 ID:Zc/oKMcW.net]
リソースエディタで開けば普通に見えるけどね

328 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:46:00.45 ID:DlVmD4pB.net]
埋め込みと暗号化は別に考えないとな
併用は可能

329 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:50:57.18 ID:h5fzoUK9.net]
暗号化するんならリソースとして組み込まなくてもいいんじゃねと思ってしまう

330 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:52:36.14 ID:WJS3pxUO.net]
なんでリソースなんだ??
データを内部に持つか外部に持つかは内容で決まるものだぞ?

見られたら恥ずかしい程度なら文字列のBASE64表現が簡単でオススメ



331 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:57:51.83 ID:U/Ws3l7N.net]
ユーザーに容易に触らせるか触らせないかの違いもあるだろう

332 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 20:58:09.44 ID:WJS3pxUO.net]
>>323-324
昔暗号化やろうとしたけど単体アプリで安全な鍵管理できなくてショックを受けた

333 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 09:10:01.50 ID:6Ol1nxYi.net]
Cの20年前のコーディングルールをC#に適用するのは頼むからやめてくれ
const変数は大文字で書けとか、条件式は左に値を書けとか
コードレビューでの指摘はそんなんばっか。まじで頭痛い

334 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 09:47:11.85 ID:vg93TV/0.net]
てめえの職場の話はマ板でやれ

335 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 11:08:14.50 ID:Yq0yocgf.net]
静的コードチェックツールぐらい使いなよ

336 名前:デフォルトの名無しさん [2015/08/07(金) 11:43:48.15 ID:3jkMWAMO.net]
>>330
ふつーの会社は中で何するか分からないソフトは使わないよ。
君がテキトーだということはよく分かった。

337 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 11:46:14.75 ID:nibSxy0k.net]
何にもされねーよ
ツール通したらコードが書き換わるとでも思っているのか

338 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 12:27:17.42 ID:Ge1vGbPu.net]
書き換えなくても外部に送信するかもしれない

とかなんとか言って欲しいのか
C#関係ないから失せろカス
京浜東北線の電線で感電して死ね

339 名前:デフォルトの名無しさん [2015/08/07(金) 13:15:27.67 ID:AXM43nM4.net]
>>320
ソリューションエクスプローラのプロジェクトのプロパティーを開くと、そこにリソースの項目があるので、そのファイルを追加すればいいよ
リソースへのアクセスの仕方は Properties.Resources.TextFile1 みたいな感じでできる

#否定と罵倒しかしない奴は死ねばいいと思うんだ

340 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 13:21:07.74 ID:R/QQtRSb.net]
>>334
お前まだ生きてたの?
死ねって言ったろ
家どこ?
手伝うから



341 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 13:27:59.28 ID:EOKzEcHq.net]
楽しいか?お前の生き方

342 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 15:15:47.58 ID:HWJu9s4e.net]
>>334
ありがとうございます!暴言ばかり吐く>>335みたいなマゴットとは違いますね。

343 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 18:11:32.21 ID:5F35ZKAl.net]
マゴットに失礼

344 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 19:20:01.12 ID:Wf7UnCAa.net]
>>331
コンパイラも自社開発か
そりゃスゲー

345 名前:デフォルトの名無しさん [2015/08/07(金) 19:35:13.24 ID:7Fy+2m0Y.net]
安倍は許した
live.fc2.com/79752690/

346 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 20:00:32.25 ID:Yq0yocgf.net]
>>331
あ、うん、どこだってそうだよね(汗

347 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 20:07:26.86 ID:dQ9fwwsL.net]
>>331がインテルの社員で自社のコンパイラを使ってる可能性もびれそん

348 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 20:38:07.94 ID:TSMSNX7R.net]
>>342
インテルをふつーの会社とはあまり言わないけどな

349 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:19:01.22 ID:TzkIo9sF.net]
const変数は大文字で描いた方がなんとなくまわりから浮くから
あぁconst変数なんだなぁと分かる気がするからそうしてる

350 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 23:17:33.17 ID:/BWZNXKg.net]
>>344
気持ちは分からんでもないけど、constかどうかをプログラマが意識する必要性は
ないんだけどね。

ところでconst変数てw



351 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 00:18:32.35 ID:qUvMcN+h.net]
C#ならconstはPascalかな…

Int32.MaxValueだし

352 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 00:39:43.01 ID:Ijf29GRs.net]
そやね
constだけなじみのルールを適用するのはどうかと思う
const大文字を見ると常常思ってた

353 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:04:23.34 ID:z+a/XH7F.net]
>>346
MSDNのプログラム例でもそうだね
public const int BufferSize = 1024;

354 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:22:42.61 ID:cerAE1Gg.net]
規約は従うためにあるもの
例え規約に小文字で書けとあってもそれに従え
嫌なら辞めろ

355 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:39:05.83 ID:2mT64iaQ.net]
.netのソースみたら大文字const結構あるね
private static readonlyも大文字がある

356 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:27:18.92 ID:ja+NNaTJ.net]
どういう事?
定数を大文字で書いたらダメなの?
C言語では大文字で書いてたからC#にもそのルール引き継いでるんだけどマズい?

357 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:00:56.43 ID:xp2orv6h.net]
>>351
https://msdn.microsoft.com/ja-jp/library/ms229043(v=vs.110).aspx

358 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:08:07.80 ID:2mT64iaQ.net]
何回も既出な話題だけど
規約、好み、MSのガイドライン とあって

規約があるなら従うほかないよね?
規約がなければ常識の範囲で好きにしろよ
あんまりMSのガイドラインから外れると他の人が読みにくくなるかもね
他人が絶対読まないんなら(略

359 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:20:44.45 ID:cYx2D4V+.net]
>>349
どの規約がいいかどうかの話だろ
規約を守りましょうとかの小学校レベルの話ではないよ

360 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:25:11.96 ID:qm4uwrZi.net]
規約は当然守られなければならない。
だが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
354みたいなものバカのことな



361 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:30:42.48 ID:xp2orv6h.net]
>>352はクラスライブラリ向けのガイドライン、つまり
互いにお約束の通じないチーム同士の間でも従うべき最低限のルール
チーム内部なら好きにすればいいという考え方もあるが、
一般的には.NET開発における絶対的なルールと考えるべき
実際VSの上位エディションだと問答無用で警告出るし

362 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:45:41.17 ID:cYx2D4V+.net]
>>355
> だが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
自己紹介? w
いきなり関係ないことで騒ぐのは授業が理解できない小学生によくある行動

363 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:52:39.89 ID:rDuvbo6u.net]
アスペのレスはやたらと「べき」を多用するよな
最低限()、絶対的()

364 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:41:18.59 ID:Mi72fTNR.net]
javaから入ったからconst大文字で書いてた。
あとNetBeansなら
if(true){
}
だけどVSだと
if(true)
{
}
になって戸惑った。

365 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:44:10.32 ID:gs2aQZWx.net]
細かく設定変えられるけど

366 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:52:45.16 ID:Fe3rcXOX.net]
コーディング規約守らせるテクニックとかないの
ラクダケースじゃなかったらビルドエラー出すとか

367 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 11:20:02.19 ID:uyIUSJEf.net]
const int NUM X
const int Num O

こういう事か?

368 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:20:01.30 ID:ja+NNaTJ.net]
マジかよ全部書き直しじゃねーかクソが

369 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:53:13.30 ID:QwAfSdLt.net]
今時、全置換機能くらいテキストエディタでもあるじゃろ
モダンなIDEならリファクタリング機能とか言うのかのう…

370 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:04:02.19 ID:Mi72fTNR.net]
>>363
VSなら変数名変更したら下に矢印出てくるだろ



371 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:08:52.14 ID:ja+NNaTJ.net]
>>365
使った事ないんだけどこれって信用できるの?

372 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:12:34.10 ID:Mi72fTNR.net]
>>366
メモ帳の置換えと違ってその変数のみが置き換えられる。
例えばフィールドのxとローカルのxがあったとしてフィールドのxをxxにしたらローカルは書き換えられない。

373 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:15:11.18 ID:cYx2D4V+.net]
>>366
やってみて差分とって確認してみれば?

374 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:24:41.94 ID:ja+NNaTJ.net]
>>367
ありがとう使ってみる

375 名前:デフォルトの名無しさん [2015/08/08(土) 16:08:26.01 ID:8yeleZKw.net]
>>366
dynamicとプリプロセッサ使っていないなら、ほぼ信用できる感じ
使ってあっても変更したい対象には無関係という事は多いのでかなり使える

マイクロソフトが標準的に使っている規約から外れた規約を社内ルールで使っている場合
全員を説得して回ってマイクロソフト標準に合わせたほうがいいだろうね
IDEがバージョンアップする毎に面倒が増えるから、規約がコスト増の原因になる
規約の目的は面倒事やコストを減らす為なので

376 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 16:12:24.30 ID:h9o0NTln.net]
リネーム使ったことないプログラマってガチでいるのかw
大げさでなく信じられないw

377 名前:デフォルトの名無しさん [2015/08/08(土) 16:19:06.87 ID:8yeleZKw.net]
>>371
他言語から来た人は知らない人もいるのでは?
ウエブ系の人にこれを見せたら、おったまげた人も結構いたよ

378 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 16:26:59.15 ID:z+a/XH7F.net]
かなりお世話になっているけど、リファクタリングって名前で俺かんけーねえしって人居るのかね

リファクタリング (C#)
https://msdn.microsoft.com/ja-jp/library/719exd8s.aspx

379 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 16:45:24.01 ID:x+KPzjiu.net]
リファクタリング便利よね。
nameof演算子が最初からあれば良かったのに。

380 名前:デフォルトの名無しさん [2015/08/08(土) 17:20:04.30 ID:8yeleZKw.net]
>>374
あとジェネリックスも最初から欲しかったかな
一旦object型に変換されると、そこですべてが切れてしまうので
ジェネリックスができてから typedef が後から実装できない仕組みだったのも痛かった
当時のtypedef嫌悪は大失敗だったね



381 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:43:22.51 ID:AWBqCflR.net]
今日も偉い低レベルな話に花を咲かせてんな
9月までこの調子なの?
ちょっと絶望するな

382 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:29:59.35 ID:bub58w7+.net]
ひ、ひぇぇ
高レベルな376様がいらっしゃたぞー

これから高レベルな話してくださるから
傾聴せよー傾聴せよー

383 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:08:49.81 ID:GOE31OJa.net]
リファクタリングの名前変更はASP.NET MVCには使えないから糞

384 名前:デフォルトの名無しさん [2015/08/08(土) 19:41:42.79 ID:6EY1XTBT.net]
2015になって名前変更が全然別物になってるよね
前の方が良かった

385 名前:デフォルトの名無しさん [2015/08/08(土) 20:37:26.94 ID:8yeleZKw.net]
376がオナニーできなくて悶えてるのかw

386 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 23:10:42.87 ID:Ijf29GRs.net]
意識高い人きてんね
こういう人は面白くないので人が寄ってこなくて
仲間だと思ってた連中の初詣とかに誘われなくてあれってなるんじゃね

387 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 23:23:23.15 ID:m5zrYZQl.net]
意識高いってのとはちょっと違うと思う

何か見下したい病?

388 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 23:52:44.97 ID:3Z/4sEUi.net]
そう言う人を皮肉って言ってるだけじゃ。

389 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:12:32.28 ID:7R1hSeQZ.net]
まあ、「意識高い」って言葉が使われる時、ほとんどの場合は「意識高い」って表現を使う側のルサンチマンなんだけどねw

390 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:31:14.85 ID:Bf9QBgBr.net]
お、c#スレ復活した



391 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 03:04:04.03 ID:lFKFU4FJ.net]
会社で相手にされなくて、寂しくて、こんな所にやってきてるんだよ
で、俺はできるんだから話を聞けぇってトコロなんだろうよ
多分リアルは自殺物レベルで悲惨なんだろうなw

392 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 09:55:43.54 ID:/6/RtruA.net]
友達も女も居ないけど猫が居るから寂しくないよ

393 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 20:02:02.17 ID:fUCYV9NU.net]
友達と女がいるとうれしさは猫の数倍だよ
知らないということは幸せかな

394 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 20:10:11.88 ID:/6/RtruA.net]
うるせぇ
なら猫を追加するだけ
幸せバイバインだ

395 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 21:09:12.82 ID:4N/Y7Sm0.net]
猫クラスを追加する事による負荷は問題ないのだろうか
友達の女クラスよりは軽いだろうけど

396 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 21:12:10.14 ID:SGsZr1tS.net]
かくしてIT土方の貴重な休日が無駄になっていくのである

おわり

397 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 22:57:53.03 ID:I/IAYU21.net]
別に友達いない=コミュ力なしってわけではないとは思うとか言ってみる。
いや、自分がそうなんだけどな。

398 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 23:31:19.08 ID:fUCYV9NU.net]
コミュ力 = 人と仲良くなる能力と思うとか言ってみる
仲良くなったら友達だろ

399 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:00:32.58 ID:XP2wx0li.net]
むしろ必ずしも仲が良くない人とでも意志疎通を行う能力なんだろうけどね本当は。

俺もそうだけど日本人って総じてこれが下手だから下らない飲み会とかやって
「みんな仲間」を演出してないと職場がうまく回らないんだよね

400 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:05:19.00 ID:tkIOp5x+.net]
コミュ力という言葉でくくれるほどコミュ力って狭い意味じゃないだろ
飲み会でウェーイもプレゼンも営業トークもコミュ力ないと出来ないが、これらが全部同じ能力とは思えない
自然言語的なコミュ力が高いやつもいれば、UMLみたいな言語のコミュ力が高いやつもいる
アーティスティックな表現力は抜群でも、喋るとバカっぽい人も居る

コミュ力は主にウェーイできる力の事であり、その意味でのコミュ力がないとコミュ障として、不当に扱われる事が多いってのは問題だよな



401 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:25:39.24 ID:eozgHhmi.net]
それは違うと思うな
ウェーイできる奴は全部に通ず
すなわち全部同じ能力
対人関係に柔軟さを持っている人間はコミュれる人でありウェーイでもある
ウェーイすらできないならすなわちこれ全てダメであり完全なるコミュ障

そして次に考えることは
コミュ力が不完全な状態でどう立ち回るかということ
コミュ力の不完全さをほかで補うことを考えること
多くの人間はこれを考えるべきなのに考えない

あるいはやはりウェーイ道を極めて修めるか

402 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 01:03:38.69 ID:PN28vv9M.net]
既にこの時点でコミュが成立してない気がするのは。。。

403 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 03:01:22.19 ID:WsIPX/2a.net]
初心者ですみません

上で定数をC言語のように全て大文字で書くのはまずいってありますが
それって↓の理由のためですか?
ryo021021.hatenablog.com/entry/2013/11/12/130603

unityがメインなんですが、プリプロセッサって全部大文字で書く事なんてあるんですか?

404 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 03:14:03.52 ID:PX+3VVfn.net]
>>398
>>352に書かれているわけだが読まずに質問とは
C#の初心者じゃなくて日本語の初心者ですかチョンですか?

405 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 04:25:04.74 ID:RHMENy6h.net]
書き込み見る端から攻撃しまくるキチガイには居なくなって欲しいですな

406 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 04:54:29.74 ID:e3IdXlk7.net]
リソースファイルとしてtest.exeに「hoge.dat(バイナリ化)」を
組み込みました。そしてリソースファイル名を「resource_hoge_1」と
名付けました。


リソースファイルの内容をC#から読み込む為にこの様に記述しました。

byte[] byte_data = Properties.Resources.resource_hoge_1;


ここまでは書けたのですが、 byte_data からどうすれば「hoge.dat」
をC#のプログラム中で復元する事が出来ます?



hoge.datはhoge.txt(中身は、"aiueo"だけです。)をバイナリ化したものです。

407 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:00:02.57 ID:RHMENy6h.net]
System.IO.MemoryStream あたりを使うのが一番てっとり早いかと

408 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:03:18.94 ID:e3IdXlk7.net]
>>402
早速ありがとうございます!
試してみます!

409 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:26:39.23 ID:e3IdXlk7.net]
>>402
出来ました。ありがとうございます!

410 名前:デフォルトの名無しさん mailto:age [2015/08/10(月) 07:21:22.75 ID:C7dCXIlE.net]
相手の承認欲求の満足と引き換えに情報もらう場で、
暗黙的な合意と正反対の行動しておいてコミュ力ってw

もちろん情報も出さずに煽ってるのは論外だけどさ、
そんなコミュ力()で主張続けてたら、人居なくなるよ?



411 名前:デフォルトの名無しさん [2015/08/11(火) 02:29:03.29 ID:t7UpLVsu.net]
継承してあるプロパティを封印とかしたいんですができないでしょうか?
当然、キャストすると矛盾が生じるので、似てるけど継承関係がない扱いをしたいのですが。

412 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 05:50:36.72 ID:USJNgyLH.net]
>>406
AからBを派生させるんじゃなくて、AとBの基底クラスとしてCを作ってからA,Bを派生させるほうが理にかなうと思うが

413 名前:デフォルトの名無しさん [2015/08/11(火) 08:18:55.99 ID:t7UpLVsu.net]
>>407
いわゆるテンプレートみたいなものなので、継承関係はありません

414 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:22:26.01 ID:RnBcDQFJ.net]
共通部分を別のクラスに括り出して移譲

415 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:29:28.39 ID:C3iuhTEx.net]
is aじゃなくてhas aにする

416 名前:デフォルトの名無しさん [2015/08/11(火) 12:54:53.39 ID:t7UpLVsu.net]
>>410
そうします。
でも、いちいちプロパティとかラップするのめんどいですよね。
なんとかなりませんか。

417 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 13:07:55.82 ID:MDlGrES8.net]
>>411
だから>>407が言ってるようにすればいい。
何を言ってるんだ。

418 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 13:47:10.32 ID:+IVNtZk/.net]
>>412
>>407に対して>>408みたいに返す応用力のなさじゃ
手取り足取り説明しないとw

419 名前:デフォルトの名無しさん [2015/08/11(火) 14:53:21.55 ID:t7UpLVsu.net]
>>412
キャストできたらまずいってーの、継承について勉強しろ

420 名前:デフォルトの名無しさん [2015/08/11(火) 14:57:28.66 ID:3SX2sjwF.net]
多態性を利用する気がないのならhas aでいいんじゃね?
用もないのに、なんでもかんでも継承するのは良くない
時々そういう人いるけど、コード読みにくくてしょうがない



421 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 15:12:00.25 ID:AH2YHVn8.net]
そして>>411に戻る

422 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 16:13:22.92 ID:g1gPnYXA.net]
>>414
兄弟同士はキャストなんかできない。
何を言ってるんだ。
こんな馬鹿に限って勉強しろとかほざくんだから笑える。

そもそも論を言えば、明らかに互換性があるのにあえてキャストできないようにする意味がそもそも分からない。

423 名前:デフォルトの名無しさん [2015/08/11(火) 16:22:07.65 ID:3SX2sjwF.net]
分からないのは >>417 が無能だからだよw

424 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 16:24:59.39 ID:2YkwfTs1.net]
と、ろくにコードも読めない無能が言ってますw

425 名前:デフォルトの名無しさん [2015/08/11(火) 16:52:11.16 ID:t7UpLVsu.net]
>>417
エンジンとコンポーネントで考えましょう。
基本的なことですよ。

426 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 17:31:46.86 ID:C3iuhTEx.net]
自分の言いたいことが理解されないからといって、すぐ相手を馬鹿よばわりしたらあかんよ。
馬鹿って言われたからっいって、すぐ無能とか煽ったらあかんよ。

427 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 18:29:29.41 ID:AWvgSxoB.net]
>>417
そもそも
>継承関係がない扱いをしたい
のだから、互換性が無いのかもしれんぞ

継承関係がないのに、継承してクラス定義する意味がわからんが

428 名前:デフォルトの名無しさん [2015/08/11(火) 19:06:04.27 ID:3SX2sjwF.net]
多態性使いたいなら、こういうケースでは素直にinterface使えば良いかと
本人見ての通り用は無いとしているみたいだし、それでいいと言われているのに食いつくのを見ていると
ふらっとスレのアレだな

>俺の考えをきけぇ、おまえらの事情なんかどうでもいいし、そんな事聞かれてもいないが俺の考えをきけぇ

て感じだね、例のアイツなんだろうが頭おかしい

429 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 19:36:37.74 ID:DdSX6XRN.net]
>>423
言っちゃ悪いけどあんたが一番頭おかしいように見えるよ。
例のアイツってもう典型的な2ch脳患者の症状じゃん。
って2ch脳の人に言っても無駄っていうか手遅れだろうけどさ。

430 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 20:44:37.23 ID:BYbKL/Wt.net]
もう少しハッピーな話をしろ
お前くらいのエリートなら8/7~8/18くらいは夏休みのはずだろ



431 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 20:47:38.90 ID:RhCa6Veg.net]
僕は7月18日から

432 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 20:51:01.02 ID:flESq3 ]
[ここ壊れてます]

433 名前:IS.net mailto: 投稿時間みると休んでんじゃないの?
何もすることないんでしょ
生きてて楽しいのかな?
あ、だからここで一日中他人を罵倒してるのか
[]
[ここ壊れてます]

434 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 21:55:13.91 ID:pRf5qE0j.net]
継承先でプロパティ封印してどんなメリットが…

435 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 23:34:01.58 ID:HeaM7jtr.net]
BCLでもNotSupportedExceptionを投げたりするのがあるけど、まあ仕方がないんだろうけど
あんまり美しくないよなああいうの。

436 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:18:44.84 ID:6ZXtaURL.net]
基底クラス作るとか、制限する意味ないとか
ここの人たちの話は良くわからないぞ…

前者は非現実的すぎるし、後者は公開用と実装で分けるとか結構ある話かと

面倒ってのがEclipse的な委譲の生成がないかって意味なら
Reshaper(有料)使うか、諦めて無心に手書きするといいよ

437 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:33:12.62 ID:6ZXtaURL.net]
あ、でもこの場合、1クラスの委譲のようだから、
制限インターフェース作って、欲しいクラスを継承+制限IFを実装、
そして制限IFにキャストして返すって手順でいいんでは?

438 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:40:22.65 ID:XD0FvRJl.net]
難しい事言うとまた質問者に勉強しろと言われちゃうよーん

439 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 03:14:27.59 ID:6lFy7xXj.net]
元の質問者はたぶん、型の弱い言語しか使ってないんだろ
ダイナミック使えば良いと思うんだ

440 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 03:14:47.82 ID:4GoNFhR4.net]
どんだけ俺の考えをきけぇ!!!!!なんだよ
寂しすぎだろw



441 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 07:59:58.15 ID:jWJqOcxH.net]
>>430
後者は公開用と実装で分ける

internalで十分じゃね?

442 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 08:09:14.50 ID:6ZXtaURL.net]
>>435
十分じゃないですよ
2者を分離できませんし、継承関係が欲しい訳じゃないですから

443 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 10:26:42.13 ID:yl8Mdqy/.net]
MVVMでダイアログとかポップアップメニューとか画面遷移ってどう扱うんだ?
VMにMessageBox.Showとか書きたくないよな

444 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 10:36:01.01 ID:JHO9AiGv.net]
>>437
画面遷移サービスみたいなのを用意してインスタンスをアプリケーション全体で共有
ただしシングルトンはやめろ
そういうサービスはVMからはインターフェースを通して扱うようにして、
VMには参照をプロパティやコンストラクタなどで渡す。DIを使ってもいい。
メッセージを使ってビュー経由でやる方法もあるがどこで何やってんのかわけわからなくなりやすいのでお勧めしない。

445 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 14:53:07.65 ID:ZQmwk96y.net]
>>437
prismにTriggerActionって仕組みがあって、ビヘイビアのようなクラスを定義すればメッセージボックスをVMから操作できます
メッセージボックスを開く程度をやるには可也面倒なんだけどね

446 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:47:02.81 ID:uEvY/8an.net]
List<T>.Sort()ってなんで安定じゃないんですかね
安定なの作っといてくれりゃいいのに

447 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:52:06.72 ID:r6k8TIQq.net]
>>440
LINQのOrderByは安定ソートだよ

448 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 21:42:16.81 ID:uEvY/8an.net]
>>441
なるほど……こんなん書いてみたけど、これってありですか?
それとも自前の安定なソートメソッドを書きますか?

public static void StableSort<T>( this IList<T> list )
{
 var temp = list.OrderBy( t => t ).ToList();  // 既定の比較でソート
 for( int i = 0; i < list.Count; i++ )
 {
  list[i] = temp[i];
 }
}

その前はこんなん書いてみたてたけどw
public static void StableSort<T>( this IList<T> list )
{
 var wrapper = list.Select( ( t, i ) => new KeyValuePair<int, T>( i, t ) ).ToList();
 wrapper.Sort( ( p1, p2 ) =>
 {
  var result = Comparer<T>.Default.Compare( p1.Value, p2.Value );
  if( result == 0 )
  {
  result = p1.Key.CompareTo( p2.Key );
  }
  return result;
 } );
 for( int i = 0; i < list.Count; i++ )
 {
  list[i] = wrapper[i].Value;
 }
}

449 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 01:10:47.58 ID:u9bN4Lw8.net]
>>442
ToListせずにforeachしたほうがいい

450 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 15:19:13.92 ID:Iycxx57M.net]
>>442
馬鹿な俺には何がしたいんかわからん
list.OrderBy( t => t ).ToList();
だけでええやん



451 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 15:21:03.68 ID:PBffULch.net]
破壊的ソートだろ

452 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 22:12:21.62 ID:2p3m0KlY.net]
>>444
ソートされた新しいインスタンスがほしい場合もあれば
元のインスタンスをソートしてほしいときもあるやん?

453 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 01:24:13.06 ID:xV4UISpz.net]
>>442
これってプリミティブ以外の型でちゃんとソートされるの?

454 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 02:26:49.44 ID:j4iBQT2t.net]
>ソートされた新しいインスタンスがほしい場合もあれば
>元のインスタンスをソートしてほしいときもあるやん?

list = temp;

455 名前:デフォルトの名無しさん [2015/08/15(土) 03:53:43.45 ID:QiO6I5ga.net]
>>446
var listOrg = new List<int>(new int[] { 10, 23, 13, 4 });
var listTmp = listOrg.OrderBy((t) => t).ToArray();
listOrg.Clear();
listOrg.AddRange(listTmp);

遅いけど少し短いかも

456 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 07:25:58.35 ID:/RqnGk0/.net]
>>447
TがIComparableを実装してないとソートできないけど、それは普通のSort()メソッドも同じじゃね?

>>448
インスタンスを置き換えて返すつもり?
元のリストの参照もってたらソートされないままだろが……

457 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:11:59.71 ID:z64TKpL6.net]
初心者です。インターフェースの実装として抽象クラスを定義するコードを見かけたのですが、あえてそうするメリットって何かありますか?自分としとはインターフェース不要じゃないかと思ったのですが。

458 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:19:08.64 ID:dPBreRmq.net]
Effective Java 18章 抽象クラスよりインタフェースを選ぶ

を読んで、骨格実装について学んでください
この項目はC#でも同じです

459 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:54:48.31 ID:gGc5tBdo.net]
出来る限り疎結合にするというのが大切だから外部との窓口をインターフェースにする。
それより内側の具体的な実装は、内部実装としての作りやすさからたまたま抽象クラスで行っているだけかと。

460 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 14:38:20.40 ID:OY/B/Wmp.net]
抽象クラスって使った事ないわ
使い道あるのかこれ



461 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:08:58.69 ID:2z51GaS1.net]
初心者なのでインターフェイスがあれば抽象クラスは別段いらないじゃないか
って正直いつも思ってます・・・
抽象クラスの使い方が分かってないからでしょうけど

462 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:14:23.51 ID:3TmrRaVz.net]
vsの簡単フォームツール?のコンボボックスでSelectedIndexが見つかりません。
どこにありますか?

463 名前:デフォルトの名無しさん [2015/08/15(土) 15:47:22.93 ID:HxCw3c0C.net]
>>455
インターフェースに雛形となる実装がついてるだけだよ。
インターフェースにテンプレートの実装持たせておければいいのに。

464 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:50:11.19 ID:2z51GaS1.net]
>>457
よく分からないのですが、そもそも仕様と実装を分離して疎結合するためのもの
だという認識なんですが、それに実装を持たせると分離の意味がなくなるんじゃないのかな
と不思議に思ってます

465 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:58:03.56 ID:XFeAKEd8.net]
仕様と実装を分離して疎結合するためのもの=インターフェイス
仕様の中で規定の実装が部分的に定まっているもの=抽象

466 名前:デフォルトの名無しさん [2015/08/15(土) 15: ]
[ここ壊れてます]

467 名前:59:17.62 ID:HxCw3c0C.net mailto: >>458
その通りです。
なので必要があれば抽象クラスとインターフェースをそれぞれ定義します。
抽象クラスはあくまで実装ですからね。

個人的には抽象クラスはいらないと思うが、実装を持たせられるのは挙動を保証できるし、やはり便利ということで使ってしまう。

拡張メソッドとかもあるけど、いちいちクラスとインターフェース作りたくねーし、インターフェースの定義の中でなんとかさせてくれという気持ち。
[]
[ここ壊れてます]

468 名前:デフォルトの名無しさん [2015/08/15(土) 16:04:26.73 ID:HxCw3c0C.net]
abstractにインターフェースつけると、インターフェースのデフォルト実装が適用されるとかよさそう

469 名前:456 mailto:sage [2015/08/15(土) 16:11:48.76 ID:3TmrRaVz.net]
編集不可コンボボックスだと初期値でTextプロパティが使えないのでindexで指定するように書いてあったのですができません・・・

470 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 16:50:16.42 ID:hcwFHcJB.net]
基底クラスが1つしか選べないのが抽象クラスと相性悪いと思う
インターフェースに基底の実装を用意してもインターフェースを2つ実装しようとしただけでダメになる



471 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:19:23.51 ID:2z51GaS1.net]
>>459-460
あーなるほど、なんとなく分かりました
共通した仕様だけでなく実装の一部までもが共通して決まっているなら
そこまで定義しても問題ないし保証できるというわけですね

ありがとうございました

472 名前:451 mailto:sage [2015/08/15(土) 17:57:59.98 ID:9FDdWcaw.net]
>>452
ありがとうございます。読んでみます。

個人的には、少し冗長で読みにくい印象があったのでした。勉強してみます。

473 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:58:54.53 ID:/RqnGk0/.net]
>>462
ふらっと行ったら?

474 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 20:49:36.11 ID:7Ge9P+Ci.net]
普通インターフェースを継承すると、全てのメソッドやプロバティーなどを実装しないといけないが
抽象クラスならば全て実装しなくて良くて、実際に使う派生クラスまでの何処かで実装すればいい

抽象クラスなのは派生クラスでインターフェースの一部機能を実装するからかもしれん

475 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 21:07:44.19 ID:3TmrRaVz.net]
>>466
分かりました

476 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:37:33.66 ID:nZvb2qTm.net]
TableLayoutPanelで20行準備してサイズを5%にすると最後の行だけ大きくなるんだけど・・・

477 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 07:33:43.50 ID:KTnE4+Ew.net]
高さが行の数で割り切れないと最後で調整する仕様みたいだね

高さ%行数==行数-1 のとき最後の行が最大になる模様w

478 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 10:57:45.12 ID:RAwbDv5U.net]
TableLayoutPanelみたいなものが必要ならWPF使えよ
WinForms使うなら古臭いWinFormsの流儀から外れてはいけない

479 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 11:34:00.62 ID:/53UNtSq.net]
何だよそのクソ仕様。全体で少しずつ調整しろよ・・・

480 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 11:38:02.93 ID:/53UNtSq.net]
本当だ。割り切れるサイズにしたら直ったw



481 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 14:13:40.06 ID:D7LX3aiM.net]
WPFは使いたくないよな、何が嫌かっていうとそのうち廃れそうな空気が充満している所

482 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:51:23.84 ID:eAn+98gr.net]
WinFormsも時代に取り残される一方でしょ
未来があるのはASP.NET MVCだけだよ
デスクトップアプリがいいならMSもVS Code作るのに使ってるelectronがいいんじゃないかな

483 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:57:53.02 ID:Fj/4E2oI.net]
Win32APIお勧め

484 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:58:11.51 ID:/53UNtSq.net]
javaでGUI作るとかwって言われたからc#始めたのにc#もこれかよ…

485 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:16:36.52 ID:eXSE2CJH.net]
そもそもGuiなどというものは流行り廃りが激しく再利用性も低い
使い捨てして乗り継いで行くイメージで作るべきもの
この前提があるからみんな口を揃えてレイヤーを分けろって言うんだね

486 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:19:11.16 ID:eAn+98gr.net]
デスクトップアプリという分野自体がもう終わったからね
Web面白いよ?
俺もそうだったが、食わず嫌いしてたら後悔する

487 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:27:51.07 ID:w34N0MAp.net]
特定のブラウザ専用ならwebもGUIの道具の一つとしてありかなとも思うが、
各ブラウザの違いやバグ対策みたいなGUIの本質とかけ離れたところにばかり
時間を取られる非生産的な仕事ってイメージしかないね。

仕事でやりたいとは思わないなあ。ストレス大盛りって感じ。

488 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 19:35:09.97 ID:w9n3OemN.net]
最近のmsはインターフェースより
抽象クラスを推奨してるってなんかの本で
読んだんだけど・・・

489 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 19:45:34.88 ID:RAwbDv5U.net]
んなことはない
インターフェース大好きMSが書くソースコードは今も昔もどの言語でもインターフェースまみれ
インターフェースが問題になるのはインターフェースを定義する側と実装する側の距離が離れているとき
MSは内部では本当にインターフェース使いまくってる
MSが一番最近作った新言語のTypeScriptだってインターフェースが基本

490 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:37:51.82 ID:FJuxg1JS.net]
みんなHTA使おうよ



491 名前:デフォルトの名無しさん [2015/08/17(月) 22:43:25.40 ID:Wyfczv4M.net]
シングルトンの作り方で、sataticクラスにしてstaticイニシャライザでstaticな変数に作るのと、
通常のクラスでコンストラクタでstaticな変数に自分をnewするのでは何か違いますか?

492 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:59:02.86 ID:+cUtloob.net]
そもそもstaticクラスはインスタンスを作れないのでは?

493 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 23:00:29.54 ID:VtDZ2XCv.net]
>>484
はい。
概念的に、そのシングルトンを持つ存在がシングルトンの実体と別なのか同一なのかという決定的な違いがあります。
形しか見ない低能には区別がつきませんが

494 名前:デフォルトの名無しさん [2015/08/17(月) 23:12:20.05 ID:q/emGwsq.net]
VS2015のC#でForm1からForm2上のTextboxを変更したいのですがどうすればいいのでしょう

detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1251572732
ここを参考に進めていったのですが、Form1でForm2のTextbox1.textを変更するよう記述したところ
(Form2Obj.textBox1.Text = "こんにちは";のように)
『'object' に 'Text' の定義が含まれておらず、型 'object' の最初の引数を受け付ける拡張メソッド 'Text' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。』
こんなエラーを返され、textbox1.に続く自動入力を見るになんだか読み取り専用になってるような気がします

まだ駆け出しなので何か根本間違えてしまったりしてますか?

495 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 23:18:08.90 ID:RAwbDv5U.net]
>>484
シングルトンはこうやって使うんだよ
class Hoge {
private Hoge(IHage hage) { this.hage = hage; }
public void method1() { hage.method2(); }
}
//Hogeクラスを使うとき
new Hoge(Hage.GetInstance()).method(); // IHageの実装を注入
こういう設計にすればIHageの実装をダミーに入れ替えてHogeを単体テストできる
こういうことを考慮せずにどこでもGetInstance呼んでるなら>>484の疑問の通り実質的な違いはない

496 名前:デフォルトの名無しさん [2015/08/18(火) 00:09:30.31 ID:pnM0xe2/.net]
>>1
デュエル・マスターズ的な非電源TCGの 《 オンラインTCGツクール系 》 ソフト(エディター)の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してある制作ソフト。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、バディ、ドレノ、フォースofウィル、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ディメンションゼロ、ライブオン、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみて。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディタ系ソフト群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど、発売済みゲームソフトの存在するケースはベンダーに研究させる。

TCGを再現するテストプレイ ⇒ 更に改良や修正。

機能制限した下位版を5万円以上で発売 + デュエリーグ用に改造した上位版でサーバー稼動=営業開始。

下位版の改造および商用利用には、別途で当社との契約が必要。

さ〜て、製作を受けてくれるベンダーが見つかるかな?ww(クス
hayabusa6.2ch.net/test/read.cgi/gameama/1438617407/l50

497 名前:デフォルトの名無しさん [2015/08/18(火) 04:24:03.38 ID:pRZZzM/P.net]
>>487
全体像が見えないのでなんともですが
とりあえずForm2に配置されているtextboxのプロパティーを開いて
Modifiersを private → public へ変更して、Form2クラス外からも見えるようにしてみる?とか

498 名前:デフォルトの名無しさん [2015/08/18(火) 04:38:39.80 ID:pRZZzM/P.net]
>>479
WEBは面白いけど、eコマース、SNS、ゲームといった仕事をしない人にとっては用のない世界でもあったりする
公開されない用途では、多様な環境への対応は意味のない単なる負担でしかないからね
面白いという理由だけで意味のないコスト発生させても仕方がないのだ
自分がそうだけど

499 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 05:50:02.90 ID:EGG1pcbp.net]
>>487
(Form2Obj.textBox1 as TextBox).Text = "こんにちは";

500 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 06:40:39.06 ID:ffkOBUQn.net]
>>492
エラーが分かりにくくなるだけだからnullチェックしないならasは使うな



501 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:44:01.93 ID:EGG1pcbp.net]
>>493
んな事知るかボケ

502 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:09:33.82 ID:JFS1mc9t.net]
>>487の回答者はよくもまあ長々と書くもんだなぁ
こんなしょーもないことにあれだけ付き合うって素晴らしい人、もしくはひどい暇人

だけどForm2Obj というフィールド変数の名前はどうよ

503 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:10:48.65 ID:JFS1mc9t.net]
>>492
型の問題じゃなくてスコープの問題だからその回答はマヌケ

504 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:21:27.56 ID:sLRvpB24.net]
夏休み今日までだから
明日からこの糞くだらない無駄話に参加できなくなって悲しいですわ

505 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:30:04.89 ID:O5wCO4NL.net]
>>496
スコープ?まじで?長すぎて全然読んでなかったよ

506 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:38:29.36 ID:GgDcmGMQ.net]
>>490
最終的にそれだろうけど
エラーメッセージが違うんだよなー

507 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:05:35.08 ID:JFS1mc9t.net]
>>498
あ、ごめん型の問題でもあったねw
おれは知恵袋の方しか見てなくて>>487のレス読んでなかったw

>>487
Textbox1の型はどうなってんのよ
うだうだ言っても始まらないからコード晒したら?

■コードを貼る場合はこちら
ideone.com/

508 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:29:08.18 ID:O5wCO4NL.net]
>>487
コード晒さないにしても一字一句正確に書いてよ

>Form1でForm2のTextbox1.text
>(Form2Obj.textBox1.Text = "こんにちは";のように)

TextBox1が先頭小文字になってるから、
Form2.cs
public object textBox1 { get; }
を想像したんだけど

509 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:31:26.11 ID:C75F2sdQ.net]
ゲッターやセッターの中でこういう事やるなって処理があれば教えて下さい

510 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:35:25.75 ID:O5wCO4NL.net]
(set書き忘れた)



511 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:37:41.70 ID:JFS1mc9t.net]
>>502
必要なことならなんでもやっていいのよ

512 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:04:42.64 ID:v9B/n+sr.net]
セッターの中でゲッターをあまり呼ばないことぐらいかな?
意図的にやる場合はいいけど、無意識に使っているとバグの元になる

513 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:35:34.34 ID:A08QTc66.net]
これをやっとくと便利だな というのはなるべく避ける
これをやっとかないのはどう考えてもアホやろ というのをしぶしぶ入れる
無駄に何回も呼ばれても困らないようにする

というかそもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計

514 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 12:17:05.48 ID:+z7OWFlW.net]
抽象的に言えばやるべきでないのは根拠がない教条主義だな
セッターやゲッターでやってはいけないことがあるんだって発

515 名前:zそのものがよく分からない。
むしろ>>502は何でこういう疑問を持ったんだろう。
[]
[ここ壊れてます]

516 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 13:43:22.03 ID:sLRvpB24.net]
ベストプラクティスベストプラクティスって糞カスがうるさいから

517 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 15:27:08.93 ID:5lg1jc8O.net]
>>506
> そもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計

こんなク○スレにもまともなやつはいたんだな
ちなみに俺もそれが理由でプロパティみたいなもんは存在からして不要だと思ってる
ゲッターセッターがむしろ書きにくく手間がかかる言語こそが本当に気の利いたOOPL

518 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 15:43:01.49 ID:+rFwHajx.net]
いや、オブジェクトなんぞ元々どぎたなくて美しさの欠片もない代物

519 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:11:49.85 ID:IEGJFkcT.net]
オブジェクト指向に美学を求めてもなぁ

520 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:19:58.26 ID:+rFwHajx.net]
しかし、オブジェクトに美しさを求めるって、どんだけオブジェクトの事をわかってないんだ?
という感じ、クラスやオブジェクトは元々どぎたないものを「隠す」というだけであって、
別に「美しくする」訳ではない(キリッ



521 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:55:22.43 ID:vgvX2pjS.net]
隠すのでも美しくするのでもないよw
っていうかオブジェクトって何だよw

OOの本質はクラスやインスタンスという一種の状態機械を
データや機能の収納箱として利用する、分類や整理の手法だと思う。

522 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 17:26:54.71 ID:IEGJFkcT.net]
OOの本質は、特にありません
モナド則のような厳しいしきたりもありません
本質的に守らなければならないルールは、
リソースリークに気をつけるぐらいでしょうか
みなさん自由にしましょう

523 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:17:06.72 ID:C+CrAcbu.net]
この場合、美しさはカンタンに定義できると思うけどなw
「美しさ=汚さの逆」であり
美しくする=汚くしない(ドヤッ

524 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:25:58.85 ID:JFS1mc9t.net]
ドヤッとかつけないで正々堂々とレスしようよ

525 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:31:45.16 ID:GgDcmGMQ.net]
やっぱりコピペ指向

526 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:08:36.73 ID:MvA+WoyG.net]
昔OOの本質はマルチプルインスタンスだって書いてる人もいたけど、
それはOOPを使えば簡単にそれが出来るというだけの話で、
オブジェクト指向の本質ではないと思う。

527 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:22:37.20 ID:TP6OV89s.net]
OOPの本質はモジュール化だよね
OOP以前にあったものの小さい版
プロセスとスレッドの関係に似てる

528 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:42:27.95 ID:IEGJFkcT.net]
何かに似ているとか、たとえ話とか、そういうのいらないんで

529 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:52:27.38 ID:JFS1mc9t.net]
OOPの本質とか夏休みの宿題のネタくらいにしかならないだろ
まじどうでもいい

530 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 02:06:12.07 ID:0nl1pVRH.net]
DataGridViewがマウスのチルトで横スクロールしないのが不便なので
色々試行錯誤したんですがあと一歩のところでうまくいきません。

派生クラス作ってWM_MOUSEHWHEELを拾って
HorizontalScrollBar.Value += 10;
と書いたんですが、バーは動くけど中身のデータ表示部が微動だにしないんです。
ここからさらにバーの動きに連動して中身のグリッドも左右に動かすには
どうしたらいいんでしょうか。



531 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:47:52.85 ID:/Qsn/PCA.net]
DataGridView知らないけど
設定後に更新とか再描画させてみた?
Javaだとそういう場合だいたい
コンポーネントに対してrepaint()を手動で呼ぶ

532 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 09:27:13.54 ID:9fa2/Guo.net]
俺も知らないけどHorizontalScrollingOffset使うって書いてあるよ

533 名前:522 mailto:sage [2015/08/20(木) 05:08:37.71 ID:IiHrtFdq.net]
>>523
>>524
ありがとうございます
HorizontalScrollingOffset += 10;
これで思い通りの動きになりました。

再描画系は
Refresh()
Update()
Invalidate()
を試してみましたがどれもダメでした。
HorizontalScrollBar.Valueはあくまでバーの位置を指定するだけで
グリッド部分には影響しないのかもしれません。

534 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 18:42:46.11 ID:YBnVLwK5.net]
zip/rar ファイルを扱うために SevenZipSharp.DLL を使用しています。
スレッド内で SevenZip.SevenZipExtractor を作成し、展開はできるのですが、
スレッド外で SevenZip.SevenZipExtractor を作成し、スレッド内で展開しようとすると
System.InvalidCastException の例外が出てしまいます。

ファイルのキャッシュ等をしたいのでスレッド外で SevenZip.SevenZipExtractor を
作成したいのですが、エラーにならずに展開できないでしょうか。

もしくは、それができる zip/rar 展開用(MemoryStreamに解凍できるもの)ライブラリ
があれば教えてください。

535 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 18:48:48.63 ID:NPCxxztI.net]
そもそもスレッド内外ってなんだ(哲学
UIスレッドの話なら非同期メソッドつかえ
Begin〜の奴

536 名前:526 mailto:sage [2015/08/21(金) 20:14:20.47 ID:YBnVLwK5.net]
すみません、こんな感じです。

private void ok_tt()
{
SevenZip.SevenZipExtractor szExt1 = new SevenZip.SevenZipExtractor("test.zip");
MemoryStream ms = new MemoryStream();
szExt1.ExtractFile(0, ms); // OK
}

private void OK()
{
Thread tt = new Thread(new ThreadStart(ok_tt));
tt.Start();
}

private SevenZip.SevenZipExtractor szExt2;

private void ng_tt()
{
MemoryStream ms = new MemoryStream();
szExt2.ExtractFile(0, ms); // Exception
}

private void NG()
{
szExt2 = new SevenZip.SevenZipExtractor("test.zip");
Thread tt = new Thread(new ThreadStart(ng_tt));
tt.Start();
}

NG() の形でやりたいのですが例外が発生してしまいます。

537 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:04:36.41 ID:n472Qw2U.net]
ネイティブDLLの仕様だろ
Cならそういうのはよくあること
SevenZipExtractorのコンストラクタはStreamを引数に取るオーバーロードもあるんだから、
Streamだけスレッド外で作っとくとかでファイルのキャッシュくらいどうとでもなるだろ

538 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:53:16.84 ID:+BYzVuol.net]
BeginExtractFile使えば例外は飛ばないけど
FileExtractionFinishedでMemoryStreamとれないから、どうにかしないといけない

private void ng_tt() {
 MemoryStream ms = new MemoryStream();
 szExt2.FileExtractionFinished += SzExt2_FileExtractionFinished;
 szExt2.BeginExtractFile(0, ms);
}

private void SzExt2_FileExtractionFinished(object sender, SevenZip.FileInfoEventArgs e) {
   //eからはMemoryStreamとれない
}

539 名前:526 mailto:sage [2015/08/21(金) 22:36:17.52 ID:YBnVLwK5.net]
>>529
FileStreamで組んでみましたが、SevenZipExtractorを閉じる時にストリームも一緒に閉じられてしまうようで、
毎回MemoryStreamにコピーしなければなりません。
そうすると遅延軽減のための処理が余計な時間をくってしまいそうです。

アドバイスありがとうございました。

>>530
ストリームがとれないと厳しいですね・・・

540 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:13:26.69 ID:+BYzVuol.net]
ArchiveFileInfoをキーにしてMemoryStreamをDictionaryにでも突っ込んどいて
FileExtractionFinishedのe.FileInfoでMemoryStreamを取り出すとかじゃだめなんかね
いや、まぁてきとーに思いついただけだから・・・



541 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:31:20.10 ID:YNgc8We+.net]
akabeko.me/blog/tag/%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F/page/2/
こちらのサイトで"MeteringStream というクラスは NAudioDemo のものを流用している。"と書いてあったのですがNAudioDemoをダウンロードしたのですがどのファイルを参照についかすればいいか分かりません。
どれを追加すればいいのでしょうか?

542 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:36:45.66 ID:Je5mj4J0.net]
>>533
ふらっとで叱られた子じゃん

351 名前:デフォルトの名無しさん[sage] 投稿日:2015/08/18(火) 19:50:36.75 ID:JFS1mc9t
NAudioでぐぐって懇切丁寧に説明してくれてるサイトが見つかるのにそれ見ないでグダグダ言ってたりしないよな?

543 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:39:42.47 ID:n472Qw2U.net]
>>533
そのレベルでの試行錯誤は時間の無駄だからちゃんと本読んで出直してきなさい

544 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:12:23.71 ID:/ddVcb/Z.net]
javadocのような物が乗ってるサイトはないのでしょうか?
サンプルソースばかりでクラスの継承関係やメソッド、引数、戻り値などが分からないので。
できれば日本語でお願いします。

545 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:15:34.86 ID:5hyMMp2f.net]
C#相談室(相談に答えるとは言ってない)

546 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:16:33.52 ID:u4KBIQ2T.net]
え、一体どこのサイトを見てんの?
MSDN見てる?

547 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:22:31.03 ID:6V9DEjWD.net]
どぼんでも見てんじゃねえの

548 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:41:51.73 ID:/ddVcb/Z.net]
ここ
akabeko.me/blog/2009/12/c-%E3%81%A7%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F-1/

549 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:54:00.36 ID:oxql1dUV.net]
なんだNAudio君か
ID変わったら分かるわけねえだろ

で、リファレンスは無いらしいよ
ましてやこんなマイナーライブラリで日本語でなんて夢のまた夢だね
諦めて畑でも耕してろよ田子作君

550 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 01:01:47.13 ID:KIpdc5GT.net]
>>541
これNAudio 本体のソースあるだろ・・・何が解らないのかマジで意味が判らない



551 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:19:12.99 ID:/ddVcb/Z.net]
色々調べたら.NETはHTMLではなくXMLでドキュメントを出力すると書いてあったのですが付属のXMLはどうやってみればいいのでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:22:26.90 ID:ixHtKeVz.net]
>>539
ドボンわかりやすくて好きなんだけど評判悪いの?

553 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:46:33.05 ID:FsGTTI8e.net]
大雑把だからねあのサイト

554 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:55:11.13 ID:3HC4qH6u.net]
>>543
sandcastle とかの話?

555 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:58:13.44 ID:sBJvd1d/.net]
>>543
XML無いんだろ?じゃあ見れないよ

556 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:07:06.30 ID:oDfmtetu.net]
>>544
どこの世界にも、自分は何もしないで他人の貢献にケチをつけるだけの卑しい馬鹿はいる。

557 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:49:23.39 ID:gTtGqll8.net]
>>544
わりと古い情報が残ってる

558 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:56:24.11 ID:/dRiP8l8.net]
そんなの一カ所だけじゃなくて複数箇所見て比較すれば済む話なんじゃ。。
多少問題があっても有効な情報も多数あるサイトならあった方が便利だと思うんだけど。

559 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:07:23.50 ID:/ddVcb/Z.net]
>>547
NAudio.XMLがついていましたがどのような形式で書いてあるのかが分かりません

560 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:15:56.97 ID:+n0G/6wG.net]
xml形式だよ



561 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:37:51.84 ID:KIpdc5GT.net]
>>549
1.1〜2.0の頃のネタばかりだから昔はお世話になったけど、今は検索でヒットしてもスルーしちゃうわ

562 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:51:26.44 ID:JpeLxAWc.net]
ドボンってIDisposableなオブジェクトでも基本usingしないというありえないコードばかりなので

563 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:00:11.86 ID:sBJvd1d/.net]
>>554
そりゃそのまま使っちゃだめだよ

564 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:09:11.16 ID:TF79Y1M/.net]
>>554
前も書いたけどあそこはそこまで酷いコードはない。

565 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:18:17.85 ID:TF79Y1M/.net]
っていうか、ちゃんと記事読んだことがあれば、あそこの管理人がそんな馬鹿じゃないことぐらいは
分かると思うんだけど。

2chって何かを貶めることで自分が一人前だと錯覚したがってるとしか思えない馬鹿多いけど痛々しいよ。

566 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:25:43.07 ID:zOssAmca.net]
>>544

>>536 に対して >>538 で、そういったリファレンスならMSDNだろ的な指摘して
>>539 はサンプル的なサイト見てんじゃないかと言っただけだろうと思う。
ドボンが悪いとかは書いてない。

567 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:27:46.34 ID:yRr1oZWk.net]
msdn.microsoft.comのAPIリファレンスとリフレクタ(今はILSpy)だけで
すべてやりくりしてきた俺、ドボンを知らず低見の見物

568 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:34:01.47 ID:/al9OGnB.net]
>>557
後半
あるあるある

569 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 20:23:16.96 ID:JpeLxAWc.net]
>>557
いや、当人がどんな人物であったかとは関係なく、
あのコードを垂れ流しているというのは犯罪に近いよ。
分かってる人にはいいけど、初心者にはあまりいい影響を与えない。

何かを公開して流布している責任というものがある

570 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 20:41:11.99 ID:9JN1kuOn.net]
言論の自由があるので仕方ない



571 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:22:44.29 ID:/dRiP8l8.net]
そもそもネットの記事を鵜呑みにするヤツの方に問題があるんでわ。

572 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:28:50.69 ID:Z73ESiAy.net]
>>561
わかる
でもそれは仕方ない
「にわかな奴ほど語りたがる」の法則は今だ根強い

糞かどうかの判断がつかないから顔面に糞つけて糞頬張りながら糞うpするんだよ

573 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:35:41.70 ID:3HC4qH6u.net]
>>561
具体的にどれよ
url 教えてくれ

574 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 22:46:49.90 ID:FpzfkEmP.net]
>>559
.NETのソースならよく読むけど、逆コンパイルするほど気になるソフトってなんかある?

575 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 01:33:58.42 ID:kX8AQ+CF.net]
>>561
犯罪的なコードって何でしょう?

576 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 03:28:16.91 ID:AQ6+ZwTX.net]
>>554
あそこはVB.NETがメインで、Usingが使えるようになる前からのコードがあるからだよ
Disposeしろって注意書きは時々みかけるし、そもそもあそこ初心者のためのサイトじゃないと思うが

577 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:55:36.67 ID:BEYfXVp0.net]
Dispose厨のレベルの低さに泣ける
何でもかんでも明示的に破棄するのはアホのやる事だぞ
マネージドって言葉の意味少しは考えろよ

578 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:11:07.80 ID:U8H/JFYc.net]
Dispose厨ってのは
MSDNも読まずにマネージドリソースの解放にDisposeを使っちゃう
アホなクラス設計者のことですよね?

579 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:15:15.60 ID:QlQ/u5s/.net]
人を非難する前にマネージドリソースとは何か明確に定義せよ

580 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:15:48.70 ID:CLEYS0FF.net]
>>569
どゆこと?

>>570
>マネージドリソースの解放に
それはGCがやるもんだが



581 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:49:28.77 ID:BEYfXVp0.net]
クリティカルなリソースはusingを使うべきだ
パフォーマンス問題になるならusingを使っても良い
しかしそれ以外ではusingを使うな
CLRに全てを委ねてプログラマをリソース管理の責務から解き放つのだ

582 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:05:44.69 ID:9aqT3FI6.net]
メモリ以外のリソースはすべて・・・・

583 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:17:42.22 ID:CLEYS0FF.net]
>>573
全く分からん

584 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:15:02.38 ID:JQjk+2hP.net]
マネージドリソース
それは(ライブラリの中のコード含めて)ネイティブを使わずに記述できるもの
ファイルやTCPソケットはこれに該当しない
クリティカルとか言ってる馬鹿は放置

585 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:20:50.40 ID:9aqT3FI6.net]
メインメモリ以外のリソースはすべてアンマネージドだ

586 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:22:15.46 ID:prCrabVF.net]
usingを使えるってことはIDisposableなわけで、つまりそのオブジェクトがアンマネージドオブジェクトを含んでいたりラップしているのが普通だ
IDisposableをやたら使うなならともかく、usingを使うなってのは意味がわからんな

587 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:33:23.13 ID:/F5UpcuB.net]
ファイルやTCPがマネージドとか言い切ってる奴大丈夫かよ

588 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:36:39.19 ID:bbkyb+Wi.net]
8月以降このスレで大丈夫そうな書き込みは見てませんよ
ここまで無脳と馬鹿のコラボばっか

589 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:43:35.74 ID:zGFxmPuI.net]
ちょっと上にあった「ニワカほど語る」法則が炸裂してんだろ。
確かにDisposeだのマネージドだのニワカくせー話題だわ。

590 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:33:29.02 ID:JLY6V2Uz.net]
無脳なのは573と579と581ぐらいじゃないか



591 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:44:14.12 ID:1KB/gLgO.net]
ファイルみたいな共有リソース掴んでない限りGCされるまでメモリを消費するだけだし、Disposeする必要のない場面もあったりする
呼んで損はないから、明らか不要なとき以外は呼ぶが吉だけどね

WPF版のドボンみたいなサイトがほしい

592 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:54:39.63 ID:Rmxdvxky.net]
>Disposeする必要のない場面もあったりする

へー、どんな場合だよ
ただしawaitのTask以外で

593 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:58:35.35 ID:cYtxjCYh.net]
WPF(笑)

存在そのものが意味不明なフレームワークは隔離スレで大人しくしてなよ
お呼びじゃないから

594 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:04:54.83 ID:UzzkwRGD.net]
>>584
GDI+関係はかなりあるよ。
Win9x時代はOSの制約上確実に呼ぶ必要があったが今は必ずしも必要ないもの

595 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:19:52.74 ID:bbkyb+Wi.net]
頭がとろけたような具体性のかけらもない会話

596 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:24:59.06 ID:hc4Y2Ev5.net]
無脳だと認めたら終わってしまうくらい他に何かが無いのに、これ以外にできることが無い奴なんだろうな
暴れすぎやで
> 573,579,581

597 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:28:44.31 ID:MIhiF6BJ.net]
リソースクラスにはDisposeパターンを適切に実装する
実際にDisposeする時期はCLRに任せて人間は管理しない
これ.NETの世界じゃ基本中の基本だよ
管理不要でパフォーマンスへの影響もないリソースを工数かけて人間の手で管理したがる
救いようのない馬鹿としか言いようがない

598 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:37:04.51 ID:CLEYS0FF.net]
はぁ??

599 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:43:43.11 ID:MIhiF6BJ.net]
>>590
やれやれ
論理的な反論ならまだ救いようがあるが、
無学が原因で理解が及ばない、ってだけでケチを付けるなよ
それもう敗北宣言に等しいぞ

600 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:48:20.40 ID:0gT6iToJ.net]
>>586
kwsk
StringFormatとかIDisposableだから律儀にusingしてるけど



601 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:50:34.03 ID:0gT6iToJ.net]
起動してすぐ終了するようなツールしか作らないならファイナライザ任せでもいいかもね

602 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:54:13.26 ID:hc4Y2Ev5.net]
リソースの意味が微妙な感じの流れだから、それは置いとくとして
ファイルなどを取り扱う場合はちゃんとDisposeしないとファイルが開きっぱなしになって、他所からアクセス不能になって困る事がある
必ずクローズすれば良いが、例外などで予想外の進行をした場合に備えて using で確実なDisposeをしておいた方が良いだろう
面倒だがDisposeがあるなら必ずDisposeするべきでしょう

C++などの場合と比べてファイナライザ(デストラクタ)の実行順序が当てにならないので、あてになる順序をきちんと作る必要がある場合も利用されるでしょうから

603 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:57:04.83 ID:bbkyb+Wi.net]
あの、ふらっとでやってくれる?
そういうの

604 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:01:14.22 ID:hrfhzpqC.net]
ニワカなやつほど(略

605 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:04:40.51 ID:MIhiF6BJ.net]
>>594
当然
適切な終了処理が必要なものは、そう書く必要がある
しかし、そういった処理が不要で、CLRに任せておけば良いように作られたリソースクラスでは必要がない
むしろ不必要な記述でコードを汚染するだけなので、書いてはいけない
すでに自動化されているものは、機械に任せるのが正解なのである

606 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:04:49.28 ID:hc4Y2Ev5.net]
595,596
煽りたいだけなら、今すぐネット切って死んでしまえば良い

607 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:09:32.22 ID:hc4Y2Ev5.net]
>>597
Disposeを書くという事は、今後そのライブラリを作った人が
そのように使う必要があるよう変更するかもしれないという余地が残っているのです
みんなで作業するときトラブルなどが発生しないように取り決めた事ですから、可能な限り従う事がよろしいでしょう

608 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:13:39.60 ID:bbkyb+Wi.net]
煽りたくないけど低レベル過ぎて邪魔だよ
どっから湧いてるの?

609 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:17:14.27 ID:idej2sB9.net]
>>600
お前も煽ってるだけで何も貢献してないけどな

610 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:17:59.99 ID:GkEjDFKz.net]
俺のDisposable講義は始まったばかりだぜ
聞きたくない奴は帰りな



611 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:21:04.69 ID:GkEjDFKz.net]
MSDNやそこらのブログに散々書いてあるようなことしか言わないぜ
耳タコだと思うが勘弁な
俺は喋りたいんだ
昨日今日知ったばかりなんでな
だから聞いてくれ

612 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:23:20.43 ID:MIhiF6BJ.net]
>>599
そんな糞みたいな仕様変更をする破壊工作員は処刑が必要
ぶっちゃけコード直してる場合じゃない
最初のバージョンから、Disposeが必須であると、明記されているなら使うべきだし
明記されてい無いなら、Disposeを必須にするような変更は行ってはならない
馬鹿でもわかる話だが知らなかった?

613 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:27:38.13 ID:NRN2Fhep.net]
お前の頭から修正しとけよ
もうリカバリ不能かも知れんがな

614 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:34:31.35 ID:MIhiF6BJ.net]
ふぅ〜
まいったね
反論すらできないところまで追い詰めちゃったか
論理的な、とまでは言わないから、せめて安い暴言じゃなくて反論を頼むよ

615 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:36:25.70 ID:UiYX5d8M.net]
そもそもリソースクラスって何だよ

616 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:36:31.29 ID:nxY8tWuM.net]
ちょっとこのスレDisposeしてくる

617 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:41:24.76 ID:bbkyb+Wi.net]
Disposeの実装が糞で駄目なパターンだな

618 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:41:34.58 ID:UiYX5d8M.net]
それに呼ばないのが基本中の基本としつつもIDisposableの代表例

619 名前:であるFileStreamを例外にするってどういう事だよ
長々と書いているが結局呼ばなくていい場合があると言いたいだけか?
[]
[ここ壊れてます]

620 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:44:40.15 ID:JbH8lT1Q.net]
MSDN確認してその通りにやればいいだけでは?

> 基本クラスが IDisposable を実装する場合は、オブジェクトは基本クラスの Dispose メソッドも呼び出す必要があります。
> Dispose のメソッドを明示的に呼び出す必要があるため Dispose のメソッドを呼び出してオブジェクトのコンシューマーがに失敗したため、
> アンマネージ リソースが解放されないこと危険性が常にあります。 これを回避するには、次の 2 とおりの方法があります。
> ・System.Runtime.InteropServices.SafeHandle から派生されるオブジェクトのマネージ リソースをラップしてください。
> ・Dispose が呼び出されないときにリソースを解放するようにファイナライザーを実装してください。
> StreamWriter などのアンマネージ リソースにアクセスするオブジェクトを使用するときは、using ステートメントでインスタンスを作成することをお勧めします。
> using ステートメントは、使用しているコードが完了すると、ストリームを自動的に閉じ、オブジェクトの Dispose を呼び出します。
> https://msdn.microsoft.com/ja-jp/library/system.idisposable.dispose(v=vs.110).aspx



621 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:50:22.66 ID:53h6zSH3.net]
CLR再起動

622 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:50:45.39 ID:hc4Y2Ev5.net]
>>604
それでは共同作業になりませんね、そこまで自我を通したいなら自分一人で作業するしかないでしょう
取り決めは大事

623 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:53:42.93 ID:MIhiF6BJ.net]
>>613
共同作業を円滑にするために、常にDispose必須、とかいうオレオレルールを排除しなければならない
理由はもう説明したな

624 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:59:05.24 ID:53h6zSH3.net]
今度は共同作業のマナー論ですか
君らはまず場を弁えることを学ぶのが先決では…

625 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:02:58.05 ID:8rh7GHk2.net]
>>592
Font, Brush, Penなんかは自分で作った物(システムリソースじゃない)であっても
今のWindowsではいちいちDisposeしなくてもまず何の問題もない。

そうは言っても習慣で書いちゃうけどね。

626 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:09:30.05 ID:2AMvri3n.net]
>>616
そうなんだ

でも呼ばないと高コストなファイナライザでの解放になっちゃうしね

627 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:24:52.17 ID:qzhEyH2V.net]
今unityでゲームを作っているのですが、累計の記録ってどう書けばいいのでしょうか?
今まで対象のオブジェクトが何回タップされたか記録したいです。
playerprefsを使えばできますか?

628 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:25:54.56 ID:idej2sB9.net]
unityスレで質問しなよ

629 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:36:46.47 ID:hc4Y2Ev5.net]
Disposeがどうしても嫌なら、勝手に俺ルールを作り出さず素直にファイナライザに書けばいいんだよ
そういうルールで作ろうという事になっているんだから
それで問題なければそれで上手くいく、そうでないものは決められた極力ルールに従う事

そうしてファイナライザのみにすると具合が悪い話が必ず出てくると気付くはず
例えば、ファイルオブジェクトのように、ロック握っている奴とか
例えば、アンマネージ側の参照カウンタがカウントダウンされなくて予想外のメモリーリークしたとか
例えば、C++のつもりでデストラクトの順序を考えていたら予定外の順序でファイナライザが起動してクラッシュしたとか

630 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:44:15.23 ID:0gT6iToJ.net]
>>616
システムリソースじゃないってほんとかい? GDIオブジェクトとしてタスクマネージャに表示されるんじゃないの?
でも大概描画=なんども呼ばれるシナリオだから
そのたびに破棄しておいたほうがメモリ的にも安心じゃね?



631 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:45:43.68 ID:MIhiF6BJ.net]
>>620
何回言えばいいのかな
呼び出しが必要な必要と使用に明記する
明記されない以上は明記しなくても問題ないように実装する
それが社会のルールだ
呼ばないとダメになる場合があるのにそれを仕様に明記しないでDisposeが呼ばれるオレオレルール(出典不明)を前提に作るな
クズが死ね

632 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:53:17.04 ID:JbH8lT1Q.net]
>>616
今更ながらPenがDisposeを実装していると知った。(もちろんDisposeしたことはない)
何でこれまで気づかなかったのかと探せば、
PenのサンプルコードではDisposeしているが、DrawLinesのではしていないからだ。
> https://msdn.microsoft.com/ja-jp/library/system.drawing.pen.dispose(v=vs.110).aspx
> https://msdn.microsoft.com/ja-jp/library/7ewkcdb3(v=vs.110).aspx
なお、これまで特に問題を感じたことはなかった。

>>617
Finalize自体はDisposeと大して変わらないよね?
GC自体のコストと、メモリ撹拌の問題はあるにしても。
Disposeした方がもちろんお行儀がいいとして。

てか、gcnew って delete しなくていいためのものじゃなかったんかー!
ファイルはクローズしてるけど、他は全部放置してたわw
(なおVC++使い)

633 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:58:35.53 ID:nxY8tWuM.net]
このスレを読んだら初心者の私もウルトラスーパーハイパーミラクルアルティメットDispose名人になれました!

634 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:01:04.88 ID:MIhiF6BJ.net]
>>623
deleteしなくても良いであってるよ
自動化したのに手作業が必要なんて馬鹿みたいだろ

635 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:08:50.19 ID:9aqT3FI6.net]
でも、ファイナライザは論理アドレスが圧迫されてGCが発動しないと呼ばれないよ
メモリとシステムリソースは別物だから、
開放のトリガーを論理アドレスの枯渇に頼るのは良くない作法なのでは

636 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:09:16.04 ID:hc4Y2Ev5.net]
初心者の頃 Disposeし忘れて、ライブラリの書き直しが大変な事になったのでは GetEnumerator() で取ってきたIEnumerableのDisposeのし忘れかな
ファイルオブシェクトをこっそり握っていて、ファイルがロックされたままだったのを
色々システムを結合した後に気づいて、泣きそうになった
C++から移行した後、嵌ったのは
class A
{
 ~A() {}
}
class B
{
 A a;
 ~B() {}
}

var tmp = new B();
こういったケースかな、C++であれば必ず a のデストラクタが後だが C# だとどちらが先になるか分からなくなる
C++と違いデストラクタではメンバは迂闊に触れないという事実を思い知らされた

637 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:18:42.77 ID:hc4Y2Ev5.net]
おっと、GetEnumerator() で取って来れるのは IEnumerable ではなくて IEnumerator でした
Disposeがリソースと関係なく必要になるケースはC++と違いデストラクタがまともに使えないという事情から来ることも多々あります

638 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:20:23.58 ID:ZkLCFLWu.net]
まだやってやがる
死ねよマジで
それともあれか、手伝って欲しいのか?
殺してやるから住所教えろや

639 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:26:42.76 ID:0gT6iToJ.net]
>>629
おまえの住所先に書けやバカヤロウ

640 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:27:29.87 ID:bbkyb+Wi.net]
見なかったことにしてやるからさっさと執行してくれや



641 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:31:02.28 ID:MIhiF6BJ.net]
おうかかってこいやチキン野郎

642 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:50:07.75 ID:JbH8lT1Q.net]
>>625
コンセプトとしてはその通りだけど、ID:hc4Y2Ev5が言っているのもまた然りだと思うよ。

本来は、全部GCに任せた上で、理由がある場合のみ手動でDisposeという仕様を目指しているのだと思う。
現実的にはこれはほぼ完成しており、通常の範囲で問題になることはない。(少なくとも俺は命中していない)
ただ、MSDNで
> 基本クラスが IDisposable を実装する場合は、オブジェクトは基本クラスの Dispose メソッドも呼び出す必要があります。(611)
と言っている以上、Finalizerだけでは駄目なケースがあって、それに命中する可能性も残っているのだと思う。
とはいえ、普通に実装すればFinalizeはまずDisposeをコールするだろうから、
問題が発生

643 名前:キるとしたらタイミングだけのはずだけど。

確認してみたけど、C#のデストラクタは起動を予約してGCから起動するという仕様のように見える。
> http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_011/csharp_abc03.html
確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
だから>>627-628の言うことはあっている。620の3つのケースもあり得ると思う。
理由は指摘の通り、C#ではデストラクタの起動順/タイミングが規定できないからだね。
[]
[ここ壊れてます]

644 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:50:20.22 ID:1KB/gLgO.net]
>>584
特定の方法でインスタンス作った時にだけ意味があるというのは割りとある
例えば、FormをShowした時とかは自動でDisposeされるから不要

645 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:31:38.21 ID:hc4Y2Ev5.net]
>確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
ファイルオブジェクト的な物を使う側ではなく作る側で、実際にいろいろやってみて面倒な事になってるなと思ったのは
フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね
アンマネージの場合はこの辺は実にすっきり記述できるんですが、マネージでは厄介です

初心者の時
~Class() { Dispose(); }
なんて事をあまり深く考えずにやってました、そして謎の異常終了を発生させてましたね
Disposeが呼び出されずにデストラクタが呼び出されたら、できることはもはや安全停止だけです
まともな終了処理は最早できません

646 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:35:34.12 ID:OpHxID+X.net]
C++のノリでデストラクターを間違った使い方して
GCの洗礼を受けたのはわかった

647 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:37:58.50 ID:aJXfAZiV.net]
もうskypeで議論して最終的に友情をめばえさせたら?
C#である必要もないし

648 名前: ◆QZaw55cn4c mailto:sage [2015/08/23(日) 21:38:38.49 ID:GHcBJPT0.net]
C++ でも delete this は普通やらない‥

649 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:40:51.66 ID:hc4Y2Ev5.net]
デストラクタ的な機能が欲しければC#ではDisposeしか手段が無いんです
ファイナライザは使えません、その処理はシステムに任せることはできないのです
それが分かっていないと安易にDispose不要という考えが出てしまいます

650 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:03:58.87 ID:pgaNpm//.net]
はいはいちごいねー

死ね



651 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:09:13.04 ID:oScCmTRi.net]
おい待てよ
Dispose不要派は
1.ファイナライザーでやればいいんだぜ
だけじゃなくて
2.解放など軟弱もののやること だってボクの環境で問題になったことないんだもん
の方が多数派だろ

652 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:11:48.27 ID:rrCWAeC5.net]
>>641
うるせえ喋んなカス死ね

653 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:13:14.66 ID:nxY8tWuM.net]
ここまで全部俺の自演

654 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:16:59.42 ID:1KB/gLgO.net]
>>633
IDisposableを実装している場合は、明らかに不要な場合以外は使い終わった後にすぐDisposeすべき
PenもBrushも中にGDIのハンドルを抱えてるわけで、アンマネージドのシステムリソースやメモリを必要以上に使ってしまう
ファイナライザは残っていると仕様上開放が先延ばしになって長時間メモリを占拠するから、想定よりコストは高い

>てか、gcnew って delete しなくていいためのものじゃなかったんかー!
WindowsがすべてGCの管理上で動くようになればな。GC管理外のデータはプログラマが責任を持たざるをえない

655 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:21:09.75 ID:hc4Y2Ev5.net]
コストに関しては、昨今はシビアなノーパソでもない限りは自分はあんまり気にしなくなってたりしますw
ロジック的にDisposeが必要不可欠な物の方を意識したいところです

656 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:24:17.01 ID:prCrabVF.net]
そういやVS2015から、IDisposable選択して右クリック→クイックアクションで、
Disposeのひな形吐き出してくれるんだよな。便利になったものだわ

657 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:29:32.06 ID:MIhiF6BJ.net]
最初から何度も言ってるがこれが正解な

1. Disposeしないと機能的にアウト→Disposeする
2. 機能的に問題ないがボトルネックになる→Disposeを許す
3. 機能的に問題ないうえに負荷も軽微→自動化しろ手で書くな

クライアントは殆どが3なんだわ
Disposeなんか要らないんだよ
これが今日のまとめね

658 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:33:20.72 ID:hc4Y2Ev5.net]
3. 機能的に問題ないうえに負荷も軽微→元クラスのIDisposeを除去せよ
これが正解です

659 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:37:13.05 ID:YS/VElDC.net]
1日かけて成果物3行って舐めてるのか貴様ら

660 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:37:24.13 ID:JbH8lT1Q.net]
>>639
仰るとおり、C++→C#へのポーティングではC#のデストラクタには期待できないから、
いちいち手動で順番も考慮してDispose()しかなさそうだ。
ただこれはだいぶ手間だから、何らかの上手い解決策が既にありそうだけどね。

仕様から言って、C#ではデストラクタの起動順を期待するコーディングをしてはいけない。
ただ、
> フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね (635)
これはよく分からない。(これが発生する可能性がシステム的にあることは分かる)
とはいえ、C#って多重継承できないし、アンマネージドとマネージドを混ぜてぐちゃぐちゃにしたりすることがなければ、
これって無いよね?
(逆に言えば、マネージドコードだけならこういったことは発生しない、と思っている。
そして本来はアンマネージドを大量に使うことこそが問題。ポーティングならある程度致し方ないにしても。)



661 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:37:59.91 ID:hc4Y2Ev5.net]
ここにはゲーム等、ハイパフォーマンスが必要になる人もいるでしょう
その時Disposeしなくても問題ないと開発元に確認できた、Disposeしない方が高速である事が確認された
そして、それをする事でソフトの商品価値が向上する、この条件でDisposeしないを選択するのが正しいと思う
それ以外は必ずやらなければ駄目です

662 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:38:00.89 ID:HkRU0Alf.net]
機能的に問題ないがDispose使わないとボトルネックになるなんて
どんな状況だよ

663 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:38:38.88 ID:MIhiF6BJ.net]
>>649
行数にこだわるのは老害の証
現代のプログラマは中身を見ないと

664 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:39:55.83 ID:+kgkAxfw.net]
>>647-648
「だから何」レベルのまとめはQiitaにでも書いといて
あと死ね

665 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:41:15.09 ID:prCrabVF.net]
なんかしらんが、このレベルの話題が一番盛り上がるよな
上でも下でもこうはならん

666 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:42:20.89 ID:bbkyb+Wi.net]
毛の壁を笑えんよこれは

667 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:45:56.71 ID:hc4Y2Ev5.net]
>>650
マークスイープでは順序を決めることができないんですよ
循環した参照がある場合どこから削除すべきかという判断材料がなくなる、ならば最初から順番は無視という判断なのだと思います
実際ガベコレ毎に順序は出鱈目です、気を付けてください
C++の場合、例えば循環参照があったらメモリーリークですが、プログラマのレベル高いから平気だよねってコンセプトではない訳です

それにしてもC++の芋ずる式デストラクタは気持ちいいです・・・

668 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:53:59.24 ID:MIhiF6BJ.net]
>>650
マネージドだけでも普通に発生する
バッファが回収可能になるのと所有者インスタンスがFRQにぶち込まれるタイミングはほぼ同時
どっちが先に処理されるかは誰にもわからない

669 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:58:36.70 ID:MIhiF6BJ.net]
というのは嘘だ

670 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:59:24.15 ID:rRq+bYgY.net]
>>659
そうかい
では死ね



671 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:01:02.88 ID:MIhiF6BJ.net]
>>660
しゃぶれよ

672 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:02:56.73 ID:5fcokCbE.net]
バカには難しかったかな
クラスAのオブジェクトaはクラスBのオブジェクトbを参照しているとする
A a = new A();
a = null;
ここでaとbが同時に解放対象になって、aとbの解放順序が非決定的

673 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:04:45.05 ID:9aqT3FI6.net]
何でそんなサンプルコードが必要だと思ったの?

674 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:06:20.29 ID:JbH8lT1Q.net]
>>657
見た目はマークスイープだけど、中身は参照カウント方式だったはず。(だからそれなりに順を追ってGCされる)
というのを中の人が書いたドキュメントがあったはずだが、検索しても今はでてこない。
ブクマによると多分以下なのだが、アーカイブになっていてどれなのか分かりませんorz

Microsoft .NET Framework の自動メモリ管理 Part I
msdn.microsoft.com/ja-jp/library/bb985010.aspx

675 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:07:02.82 ID:hc4Y2Ev5.net]
C++の人は、ここをミスしやすいと思うし、見ている印象結構C++からやってきた人多そうだから
悪くないサンプルだと思うのですが・・・

676 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:10:23.32 ID:MIhiF6BJ.net]
>>662
と思うじゃん?

677 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:08:47.57 ID:genYk8wg.net]
さてまとめるか。
「不必要にDisposeを量産するバカが多いため
usingを怠る悪習が蔓延した」

678 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:31:00.45 ID:e5Jihg5N.net]
IDisposeを持つオブジェクトを握るオブジェクトはIDisposeを持つしかない
不用意でなくても普通に増えるしかないよ
IDisposeを持つ物は Stream や Task があるがどれも基本的なクラスばかりで避けては通れない

679 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:35:53.34 ID:4CFfNfbx.net]
>>662
さすがにそのケースでのリークはないよね?

Array等の中身として参照を持っているだけなら、
そもそもデストラクタがどちらから呼ばれても問題ない。

継承関係なら自動でやってくれるはず。
自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、
デストラクタがいつ呼ばれるかは問題ではない。
(自作クラスの一つのデストラクタだけで済むように構成する。
ただしリソース解放が必要ならDisposeを実装しないとタイミングが読めない。)

菱形継承で先に基底クラスが解放されたりするのは問題になるけど、C#にこれはない。

だから問題になるのは、一度しか呼ばれないアンマネージド側で
マネージドのデストラクタが呼び出し済みなのを期待している時で、多分これだけだよね?
マネージド側は放置しててもなんだかんだでいつかはGCされるはず。
それが嫌ならDisposeしろって事で。
だから、アンマネージドを先に全部解放するようにすれば、問題は発生しないと見た。

680 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:36:24.75 ID:4CFfNfbx.net]
なお、MSDNのデストラクターにまんま書いてある。
> デストラクターがいつ呼び出されるかはガベージ コレクターによって決定されるため、プログラマは制御できません。
> 一般に C# では、ガベージ コレクションを使用しない言語で開発する場合ほど、メモリ管理を必要としません。
> .NET Framework のガベージ コレクターが、オブジェクトに対するメモリの割り当てと解放を暗黙的に管理します。
> ただし、ウィンドウ、ファイル、ネットワーク接続などのアンマネージ リソースをアプリケーションでカプセル化するときは、
> デストラクターを使ってこれらのリソースを解放する必要があります。
> アプリケーションで貴重な外部リソースを使用している場合は、
> ガベージ コレクターがオブジェクトを解放する前にリソースを明示的に解放する手段を用意することをお勧めします。
> この処理を行うには、オブジェクトに対して必要なクリーンアップを実行する Dispose メソッドを IDisposable インターフェイスから実装します。
> これによって、アプリケーションのパフォーマンスを大幅に向上させることができます。
> このようにリソースを明示的に制御する場合でも、
> デストラクターは、Dispose メソッドの呼び出しが失敗したときにリソースをクリーンアップするための安全装置になります。
> https://msdn.microsoft.com/ja-jp/library/66x5fx1b.aspx



681 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:42:37.88 ID:e5Jihg5N.net]
C#の場合デストラクタでやっていいことは、static関数の呼び出しくらいだろうな
class型フィールドの内容に触ることはできない、触ってよいのは int や enum といった値のフィールドだけ
それ以外の操作をしたければDisposeを使うしかない
順序良く呼び出されたとしてもこれでは何もできない

682 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 00:51:10.64 ID:OjRQ25eS.net]
ID:4CFfNfbx
この人は何言ってるかわからなくて、頭くらくらしますよね
そもそも話が通じてないし

683 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 01:04:15.56 ID:e5Jihg5N.net]
C++からのポーティングが引き返せないところまで来ているのかもw
笑っちゃいけないか、ご愁傷様かな(ナムナム

684 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 07:38:39.63 ID:FEQDPFGC.net]
なんか、マネージド/アンマネージドコードとマネージド/アンマネージドリソースがごっちゃになってる人がいるように見えるのは気のせいだろうか。

685 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 07:41:36.51 ID:xNseMvgF.net]
蒸し返すなゴミクズ

686 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 09:19:55.49 ID:h+mHYijt.net]
まだ続けるの?

687 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 09:50:06.14 ID:xNseMvgF.net]
もうウンザリ

688 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 10:58:39.56 ID:/7MwCGkP.net]
嫌なら見るな

689 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 11:48:38.94 ID:Q0ZjIosN.net]
いや、低レベルな話がしたいならふらっと行けよ
だからテメエは無脳なんだ

690 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 12:27:15.22 ID:e5Jihg5N.net]
一番低レベルなヤツ -> 679



691 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 13:03:00.83 ID:kR1o4QUh.net]
ここが隔離スレだ

692 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 15:21:00.93 ID:/7MwCGkP.net]
なんでいつも単発IDなんですかね

693 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 15:48:52.90 ID:CmRZDEoS.net]
単発が嫌なら見るなよ

694 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 15:52:52.92 ID:mvfSohk+.net]
>>682
IDがきちんと出るようにするだけの技術力がないから…

695 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 20:40:58.44 ID:UIihvy++.net]
C#って内部実装変えただけでも依存するアセンブリビルドしなきゃなの?

696 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 20:45:58.83 ID:xp4qRvA3.net]
必要なし

697 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 21:02:14.07 ID:aDhIIP+g.net]
ザマリン標準化まだ時間かかりそうですか

698 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 21:25:54.27 ID:vU2SL/AS.net]
Xamarinは目先の金儲けしか頭にないから期待しても無駄

699 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 21:46:54.78 ID:8rH+FULH.net]
>自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、

これ正しいの?

700 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:31:14.60 ID:vU2SL/AS.net]
そのファイナライザ内だけで完結するんならそりゃそうだろ




701 名前:AとBが両方ともアンマネージリソースを抱えている
・AがBを参照している
・ネイティブライブラリの仕様でBはAより先に解放しなければならないと決まっている
こういう状況では当然単純にAとBのファイナライザに頼るわけにはいかない
Bにはファイナライザを実装しないでAのファイナライザ内でBのリソースを解放し、
その後にAのリソースを解放するといった工夫が必要になる
[]
[ここ壊れてます]

702 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:17:12.96 ID:4CFfNfbx.net]
>>674
すまん、その通りだ。C#ではアンマネージドコードは禁止とは知らなかった。
解放しているのはunsafeで生ポインタだけか。
インラインアセンブラが出来るというのを見た覚えがあるのだが、気のせいだったようだ。
デストラクタも継承/オーバーロード禁止だから、>>671の言うとおり、staticにしか使えない。

C++からポーティングするなら、
デストラクタ内のは全部Disposeに移動し、そこで手動で親を呼んでおけばいい気がする。
これだとクラス内だけで留まる。
リソース解放タイミングを規定したいのなら手動でDisposeを呼ぶか、usingだね。
ただ、呼ばなくてもセグフォにはならないはず。

MSDNには
> C++ 経験者が C# で開発する場合
> デストラクタ : C# は、アンマネージ リソースを確定的に解放する場合の構文が異なります。
> デストラクタ
> using ステートメント (C# リファレンス)
> https://msdn.microsoft.com/ja-jp/library/yyaad03b(v=VS.90).aspx
だけだから、推奨はusingのようだ。

マネージドコードだけしか使えないのなら、本質的なリークはどうやっても発生しないように思える。
一時的なリソース枯渇はあり得るけど、例えばGDIなら描画しまくるアプリ(ゲーム等)でなければあまり気にしなくてもいいのでは。

703 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:21:14.35 ID:agiYVVps.net]
>リークはどうやっても発生しないように思える

こういう馬鹿がプログラミングの真似事をするとロクなことがない

704 名前:デフォルトの名無しさん mailto:sag [2015/08/24(月) 23:23:09.51 ID:163KCsEM.net]
簡潔に一度だけ言うね
ID:4CFfNfbxはあと三年ROMってから
それからカキコしようね

705 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:26:49.44 ID:OjRQ25eS.net]
これさー
メモリ以外のリソース、たとえばウィンドウハンドルやGDIオブジェクトetcがさー
枯渇とまでいかなくても、使いすぎと感知したタイミングでGCが発動する仕組みが.Net側にあれば、
usingとか、ファイルなんかの特殊な事例以外では、要らなくなるのでは?
GC発動のトリガーがメモリだけに依存しているから、いろいろ心配になるわけで

706 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:27:45.15 ID:vU2SL/AS.net]
ファイナライザ内で別のオブジェクトにアクセスするのは基本的には問題ないぞ
その別のオブジェクトがファイナライザを持ってる場合には
既にファイナライザが呼び出されて無効になっている可能性があるからダメというだけ
ファイナライザを持ってるオブジェクトから参照で辿れるオブジェクトはどのみち全部一度復活して
GCを妨害してしまうから、アクセスすることが特にGCの妨げになるということもない
一番悪いのは「ファイナライザを実装すること」自体な

707 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:57:38.17 ID:e5Jihg5N.net]
ファイナライザに実装すべきなのは、安全装置だけだろう
例えばアンマネージドのハンドルを握っている場合
ハンドルはIntPtrだから、別のクラスに入れるといったことをせず直接フィールドに配置しているなら
アクセス可能だから、ここでリ参照カウンタをダウンすれば一応解放は可能
fopenみたいなものを相互運用している場合もハンドルとstatic関数をdllから呼び出せるなら
バッファのフラッシュは諦めるとしてもファイルを閉じることくらいはできる
いずれも最終手段レベルだね

708 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 00:04:34.64 ID:uHUYRmLo.net]
>>691
リーク問題については、あまり期待しないほうが良い
Excelの相互運用なんかをすると、当マイクロソフト製なのに結構厄介だし、洩れまくるし
自作でやってもなかなか糞な事になる

709 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 00:42:16.41 ID:FzRJlm7d.net]
すいません言い直します。

・C#では、正しく構成されたクラスを使用している限り、本質的なリークは発生しない。
(明示的にDisposeしなくてもいつか回収される《=Finalize時にDisposeが呼ばれる》)

じゃないかな?
もちろん.NET謹製のはリークしない。
自作クラスでアンマネージリソースを使う場合、MSDNによると、
・Disposeを実装し、SafeHandleでアンマネージリソースをラップする。←こっちがオススメ
・Finalizeを実装する。
のどちらかをやっておけばいいはず。
> https://msdn.microsoft.com/ja-jp/library/498928w2(v=vs.110).aspx

だからリークしてるのであれば、自作クラスの構成がまずいのだと思うのだが。
もちろんクラスの構成はC++流(デストラクタ)ではなくC#流(上記)にしないといけない。

710 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 00:50:30.42 ID:wg5Da8me.net]
ListAとListBの中身を1つずつ比較して、ListBの内1つがListAに無かったらそのオブジェクトを追加し
同じものがあれば追加しないと言う機能を作りたいのですが、foreachだと例外が出て、
for文だと無限ループになってしまいどうやっても上手く実装できませんでした。
一体どうすればListの中身を1つずつ比較して問題なく追加する事が出来るのか教えていただけないでしょうか



711 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 00:57:16.45 ID:bwlYR2I5.net]
問題が起こる、最小のコードをアップしなさい

712 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 01:11:01.00 ID:wg5Da8me.net]
色々書き換え続けて最終的にコンパイルすら通らなくなったんですが多分こんな感じです。
if (ListA.Count == 0) foreach (var li in ListA.a) ListB.Add(li);

else for(int i=0; i < ListB.Count; i++){
  for (int x = 0; x < ListA.Count; x++){
if (ListA.a[x] != ListB.a[i]) ListB.Add(ListA.a[x]);

}}

713 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 02:03:56.13 ID:bwlYR2I5.net]
for( a: A )
for( b: B )
{

714 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 02:07:01.06 ID:bwlYR2I5.net]
擬似コードですが、これでどうでしょう
for( a: A )
{
  bool found = false;
  for( b: B )
  {
    if( a == b ){ found = true; break; }
  }
  if( !found ){ B.push_back( a ); }
}

715 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 02:56:24.98 ID:wg5Da8me.net]
よく考えてみたら1つずつ比較してる最中、違った瞬間に追加するってコードになってました。
それで調べたら配列の中を比較するIndexofという機能をついさっき知って実装したところ、上手く動きました。

716 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 04:17:23.94 ID:ljTVrax0.net]
ListB = ListB.Union(ListA).ToList();

717 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 07:28:11.84 ID:uHUYRmLo.net]
>>698
shared_ptr weak_ptr の使い分けのように仕組みを意識して使わないと
システム任せだと無理があるんだよ、SafeHandleを使えば万事解決という訳にはいかない
そろそろ諦めなはれ、アンマネージと相互運用したければ覚悟決めるしかねーですw

718 名前:デフォルトの名無しさん [2015/08/25(火) 10:56:12.32 ID:y1FTBoUo.net]
アンマネージドとかどういう場面で使うんですか?
C言語とかの領域ですよね?
本見てもどういう場面で使うのか乗ってないんですが

719 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 11:03:08.95 ID:aUx99M6r.net]
アンセーフ?

720 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 11:33:21.01 ID:Wpti2W5K.net]
SafeHandleってサーバーで複数のドメインが1プロセスに同居するような特殊なシステムでない限り何の意味もないんだけどな
使いたがる連中のなかでそれを正しく理解してるのは少ない



721 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 11:43:43.66 ID:lyj94kL0.net]
まあ、C#は元々トロイからね、別に頑張って速くしたりするのは無駄だよね?(´・ω・`)

722 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 12:20:15.95 ID:ya7qPQ7D.net]
トロイ?ゆうちゃん?

723 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 12:57:13.30 ID:UmUy/CWK.net]
>>707
普段コンビニとか外食でメシを食ってるひとが
まな板と包丁買ってきて自分で魚をさばくような話

君はずっとグルメガイドを見てればいい

724 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 13:09:56.76 ID:uHUYRmLo.net]
Dispose不要なんて自分ルールを広めようとしてもそうはいかないから
早めにルールに従ってDisposeをキチット実行するよう修正しましょう
そうしないと後の修正で口から泡を吹く羽目になりますよって話ですw

725 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 13:33:31.83 ID:yb6n8Wdy.net]
死ね単芝

726 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:54:59.46 ID:evM6WMfUm]
>>710
要所要所をアンセーフにするとかngen使うとかすれば、かなり高速化出来る場合もある。
GCの問題があるから、本当に高速なリアルタイム処理は苦手だけど。

727 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 18:38:02.96 ID:cRNFEmJ6.net]
頭の中がVB6で止まっているのでしょう

728 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 18:40:19.98 ID:cRNFEmJ6.net]
VB6に対して失礼でした

729 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:16:04.98 ID:11iB37Vu.net]
>>698
FromHandleとか逆にハンドルを取得する系はIntPtrしか受け付けてくれないから、不要になった時にうまく解放しないといけないのが割と面倒
理解不足も含めて、メモリリークさせてるサンプルはよく見かける

あとは、メインフォームとか静的なイベントに参照にぎられてるとかもちゃんと意識しないと危険

730 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:00:39.66 ID:FzRJlm7d.net]
>>706,717
個人的にはDisposeを使う方がお行儀がいいのは認める。
ただ、C#の思想としては、「タイミングは規定できないが、解放はシステム側で保証するから、
面倒なことを考えずに具だけに集中しろ」ということなのだと思う。
だから、クラスをきっちり書けば出来そうな気もするし、それに向けて整備していっているはず。

とはいえ、俺はGUI(描画)に使っている程度で、そんなに本格的に使っていない。
だから命中していないだけで、言われているケースがありそうだというのはなんとなく感じる。



731 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:03:49.42 ID:bwlYR2I5.net]
>解放はシステム側で保証するから

メモリに関してだけはそのとおりですね

732 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:07:38.08 ID:FzRJlm7d.net]
>>707
アンセーフはこれ。見にくくなるが速くなる。
www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html

アンマネージドはVC++の機能で、SSEとかを使いたいときに使う。

733 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:13:15.62 ID:Y9IbSqw2.net]
>>720
バカはリソース解放の必要性が理解できないので説明するだけ無駄

734 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:17:53.09 ID:JrnVqkd7.net]
>アンマネージドはVC++の機能で、SSEとかを使いたいときに使う。

はぁ……
何言ってんのこいつ
C++から来てなんでも知ってるつもりのバカヤロウじゃん

735 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:41:07.48 ID:bwlYR2I5.net]
たぶん句読点の位置がおかしい
アンマネージドは、VC++でSEEとか使いたいときに、使う
が正解なのかしら
知らんが

736 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:41:34.05 ID:bwlYR2I5.net]
SEE → SSE
ごめんね

737 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:06:00.33 ID:Wpti2W5K.net]
>>721
これはアンマネージコードではなくアンセーフコード
アンセーフコードもマネージコードには違いない
ちなみにこのリンク先の例はunsafeだから速いのではなく、GetPixel/SetPixelのAPIがクソ遅いだけ
.NET2.0以降ならLockBitsがあるから一旦配列に丸ごとコピーして処理後に書き戻せばunsafeなんか使わなくても十分に速い

738 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:08:27.34 ID:rPHzO56e.net]
C++君って先月くらいからいるけど、いつ死ぬの?

739 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:29:15.56 ID:uHUYRmLo.net]
>>727 が死ねばいいんだよ、お前が一番屑だから
というかC++の上がり人はどう考えても一人じゃないだろ
見た感じ多くはゲーム系の人かな

740 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:35:33.69 ID:uHUYRmLo.net]
GetPixel/SetPixelが遅いというよりも、プロセス間通信が仕組み的に粒度が小さい処理に向いてないという感じかな



741 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:42:25.80 ID:87HoKT0r.net]
>>721
これはひでえな
LockBits使えば十分だろ

742 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:44:06.08 ID:IDnYKic2.net]
いつの時代の何を解説するためのサンプルかぐらい読めよ...

743 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 23:57:53.14 ID:FzRJlm7d.net]
これな。十分速いが、それでも倍違うけどね。
daisy64.blogspot.jp/2009/01/getpixel.html

マネージドコードの例は不要だと思って省略した。
実際は#pragma unmanagedと#pragma managedでソース上で関数単位で切り替える。

744 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 00:16:40.27 ID:LkVTB1JB.net]
>>732
お前は何を言っているのか
そのリンク先の例はunsafeも含めて全部れっきとしたマネージコードだ
C++/CLIの#pragma unmanaged (これは本当にネイティブコードになる)とは全く違う

745 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 00:22:51.89 ID:LkVTB1JB.net]
>>732
よく見たらこのサンプル意味不明だな
r, g, bの値を使ってないから、最適化で消えてると思われる
実質的にはunsafe全く関係なくてMarshalCopyの時間を測ってるだけだね

746 名前:731 mailto:sage [2015/08/26(水) 02:05:24.84 ID:N7Jdy9nG.net]
731内、
× マネージドコード
○ アンマネージドコード

最適化がかかって全部抜けるのならGetPixelのコードが最速になる。
そうなってないんだから、抜けてはいない。

747 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 02:09:45.86 ID:KP8nmGdk.net]
メソッド呼び出しが、最適化で勝手に削除されるわけねーだろ
何の副作用が有るか、わかりゃしないのに

748 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 02:13:08.08 ID:KP8nmGdk.net]
分かっていると思うけど、
逆に言えば、メソッド呼び出しが無いのなら、
無駄な計算は最適化で削除されうるってことだぞ

749 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 08:04:18.96 ID:0fCLXGvh.net]
相変わらずレベルの低い話

750 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 08:27:19.17 ID:pUWj3Ef8.net]
ああ、思い出した

レベル連呼クンって前にもいたよね



751 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 08:29:29.18 ID:gbsTgmpf.net]
VB6スレと同じ人達が話してるのかい

752 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 08:59:00.05 ID:DnnAf/8j.net]
VB6スレなんてあったっけ

753 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 09:15:42.60 ID:ElP7lUPJ.net]
C#精神病院 Part88

754 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 11:18:16.79 ID:dP9T8Aj9.net]
>>719
そこまで崇高な理想を持って開発されてるとは思えないが
タイミングがわからないおかげで使用中のハンドルが開放される可能性への対策も必要になるし
あと、マネージリソースだけじゃなくて、固定したGCHandleを持ってればGCのパフォーマンスへの影響もでかい

755 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 17:11:34.36 ID:qrjLQtVJ.net]
DataGridViewでユーザーが列幅を変更する場合列の境界をドラッグ
しますが、横スクロールバーが表示される程列数や個々の幅がある
場合に最後の列幅が変更できません。
どのようにマウスで変更するのでしょうか。

756 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:08:44.10 ID:N7Jdy9nG.net]
>>736,736
メソッドの部分は必ず実行され、その後の部分は最適化されているかも、ということで了解した。
LockBits/unsafeの比較は当てにならないね。
異常に速度差があるし、メソッド以外は全部抜けているかも。

757 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:16:21.46 ID:N7Jdy9nG.net]
>>743
> GCHandle 構造体
> [SecurityPermission(SecurityAction.Demand, UnmanagedCode=true)]
> https://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.gchandle(v=vs.110).aspx
なるほど、C#でもdllと接続するとUnmanagedCodeを意識しないと駄目なんだな。

> タイミングがわからないおかげで使用中のハンドルが開放される可能性への対策も必要になるし
GC.Collectで起動は出来るみたいだぞ。
GC.SuppressFinalizeというやばそうなものもあるが、GCを止めることは出来ないね。
上記GCHandle例のようにブロックスコープで囲える範囲なら、GC.KeepAliveの方が軽そうだ。
> https://msdn.microsoft.com/ja-jp/library/System.GC(v=vs.110).aspx

システムリソースと言っても所詮はメモリだし、
x64みたいにアドレス空間が広ければ、OSが動的確保すれば収まる話ではある。
だからいずれは気にしなくてよくなると思うよ。
(ただそのときでもDisposeしたほうがいいのは事実だが)

758 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:56:01.03 ID:LkVTB1JB.net]
>>746
ファイナライザでKeepAliveするのは意味がない
KeepAliveしたところで参照している他のオブジェクトのファイナライザが先に呼び出される可能性は防げないし、
ファイナライザの実行が終わる前にthisやその他参照しているオブジェクトがGCに回収されてしまうようなことは無いからね

759 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 21:39:21.41 ID:pUWj3Ef8.net]
>>746
もう来んなよ

760 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 08:03:55.06 ID:Sd5tuK/H.net]
お前が来るなよw



761 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 17:01:34.76 ID:H9Zj5Bn1.net]
internalなインターフェースでも、internalで実装出来ないのね。
なんでだろ。
明示的実装だとeventは自動実装してくれないのね。
ちょっと不便。

762 名前:デフォルトの名無しさん [2015/08/27(木) 18:33:33.61 ID:4ooez7+r.net]
以下のようなことをしたいのですが、
メソッド名が重複するため上手くいきません。
ある変数のスーパークラスを上書くようなことはできないのでしょうか?

public abstract class A{
public abstract MyClass instance {get;}
}
public abstract class B<T> : A where T ; MyClass{
public T MyClass instance {get;}
}

763 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 18:40:58.45 ID:3m4FcQPk.net]
>>751
全部捨てろ
そんなことをしようとせずに済んだ世界を想像し
可能ならば来た道を戻って設計しなおすといい

764 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 18:44:49.92 ID:CaKJnHAU.net]
>>752だけ読むと凄くカッコイイ

765 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 18:45:04.56 ID:0465F1pc.net]
つーかMyClassとわかってるならTにする意味ないでしょ

766 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 19:34:06.84 ID:M7ObSeqi.net]
何がしたいんだかよくわからん
MyClass はなんだかの形で定義?
class B<T> は、もはや修正してエラーもなくせない
メソッド名が重複するという問題にたどり着けんw

767 名前:デフォルトの名無しさん [2015/08/27(木) 21:05:28.92 ID:4ooez7+r.net]
TはMyClassの継承関係です。
AとかBじゃ分かりにくいですね。

public abstract class 田中{
public abstract 行動 instance {get;}
}
public abstract class 修行した田中<料理> : 田中 where T ; 行動 {
public 料理 instance {get;}
}

はじめからTつければいいじゃんとか思うかもしんないけど、
ジェネリックの共変性とかの問題があったりしてこんな実装になってます。

768 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:16:20.73 ID:dljCNrWS.net]
まず用語とやりたいことと質問を整理してくれる?
お前の示したコードにメソッドも変数もないし、空想上の文法を示して以下のようなこと、で伝わると思うの?

769 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:19:19.33 ID:crZaWZ5K.net]
いや…これはシンプルに無視案件だろ
こいつに関わってもなんの実りも無い

770 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:27:08.41 ID:hme97lr4.net]
>>756
public interface I田中{
行動 instance {get;}
}
public abstract class 修行した田中<料理> : I田中 where 料理 ; 行動 {
override 行動 I田中.instance { get { return this.instance; } }
public 料理 instance {get;}
}
何がしたいのかさっぱり分からんがこういうことか?



771 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:35:49.89 ID:lF/OrL4X.net]
山田かもしれん

772 名前:デフォルトの名無しさん [2015/08/27(木) 21:46:52.77 ID:4ooez7+r.net]
public abstract 行動 strategy {get;} を
public override 料理 strategy {get;} に上書きしたいです。

まとめるとこうです。
1.オブジェクトの行動を戦略ポリモーフィズムで実現したい
2.継承クラスから戦略をジェネリックに呼び出したい
3.基底クラスの戦略呼び出しは継承クラスの戦略を呼び出す(abstract)
4.ジェネリックの共変性(.net3.5を利用)の問題で3を基底<T>およびメンバTとするのは、
  その他のオブジェクトでキャストが膨大に発生するため、ジェネリックを持たない基底クラスを用意した 

773 名前:デフォルトの名無しさん [2015/08/27(木) 21:56:46.79 ID:4ooez7+r.net]
>>759
そういうことです!
たぶんできました!ありがとうございます

774 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:22:03.15 ID:pO3unHFi.net]
エスパー乙

775 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:39:03.06 ID:sO/8ZJev.net]
ようわからんから寝るわ
明日は定時にあがって彼女とデートだ

776 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:22:50.64 ID:DVJpBS2x.net]
ここ数年定時で上がった事無いや。
せめて残業30時間未満希望。

777 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 06:40:20.71 ID:Sz74PPpb.net]
とりあえず "料理 ; " の ';' は何だよって感じの所の修正をして欲しかったな
エラーが「メソッド名が重複」になるようなコードにしてから、問い合わせろよって感じ
わけわかんねーよw

778 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 06:55:57.02 ID:Sz74PPpb.net]
>>761
どうしてもそのようにしたければ、二段階に分けてやればいいんじゃねかな
インターフェイスが正解だが
public class 行動 { }
public abstract class A
{
 public abstract 行動 instance { get; }
}
public abstract class BBase<T> : A where T : 行動
{
 public override 行動 instance { get; }
}
public abstract class B<T> : BBase<T> where T : 行動
{
 public new T instance { get; }
}
public class 料理 : 行動 { }
public class 所望の利用方法 : B<料理>
{
}
リフレクション関係の.Net Frameworkのソースを読んでいたらこういうのに出会ったよ
以前のバージョンで公開してしまったが、互換性を維持しつつ改めて中身隠して継承したいという感じの部分で

779 名前:デフォルトの名無しさん [2015/08/28(金) 10:09:33.73 ID:bO0aCwDR.net]
>>767
それだと基底クラスにキャストされているときに呼ばれると基底のメソッドが呼ばれてしまうので今回の要件ではまずいです。

780 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 11:43:18.34 ID:Sz74PPpb.net]
>>768
基底クラスの変更はBBaseの方でやるの、二段階に分けるという事



781 名前:デフォルトの名無しさん [2015/08/28(金) 15:45:12.11 ID:O/DjZ5xn.net]
BBase<T>からその上位のBのinstanceを呼べないのでまずいです。

782 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 15:48:24.22 ID:Sz74PPpb.net]
なんでそこが問題やねんwww
まぁ、互換性がうんぬんとかクリティアルな問題がある訳じゃなさそうだし interface 版でいいと思う
それでやれば良かろう

783 名前:デフォルトの名無しさん [2015/08/28(金) 17:04:25.71 ID:bO0aCwDR.net]
>>771

784 名前:
そこがクリティカルだと何度も申し上げていますが。
解決したのでもういいです。
[]
[ここ壊れてます]

785 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 17:05:03.05 ID:ZmO5l3R/.net]
へーすごいじゃん

786 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:26:06.38 ID:jkdHSky5.net]
式木が全然わかんねぇ
動的に検索条件変えるのにつかいたいが

787 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:27:16.67 ID:GiTthi+A.net]
bbaseってのはババアのSE(システンエンジニア)のことですよね?

788 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:58:34.57 ID:Lygpatgh.net]
リソースの解放順序をコントロールするクラスを1回作ってしまえばDisposeの明示的呼び出しは完全に不要になるね

789 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:01:28.39 ID:LXLt4eax.net]
またDispose君か
フランスパン目に突き刺して死ね

790 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:05:55.57 ID:CjkSJ7ex.net]
>>774
アホなことは考えるな
普通にクエリビルダ使え



791 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:49:33.85 ID:Sz74PPpb.net]
>>776
いや、そこは普通にDispose使えよ、得体のしれないことするなw

792 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:55:43.87 ID:ls1PRuKg.net]
アンマネージドなリソースをIDisposableなオブジェクトでラップするのは基本だろ

え?
>756はそういうことを言いたいんじゃないの?

793 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:47.88 ID:8lfDGDPP.net]
Disposeを明示的に呼びだしている時点でおかしい

794 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:51.18 ID:cLOGe/lp.net]
>>776
意味がわからない
FormのDisposeはどうやったら不要になるの?

795 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:43:04.20 ID:Lygpatgh.net]
リソース全部にいちいちDispose呼ぶ派って最近C言語からC#に移ってきた人?

796 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:53:36.50 ID:IPCW/fdR.net]
using使ってもDisposeは呼びたくなる

797 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:55:20.42 ID:ls1PRuKg.net]
ツマンネ

798 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:19:38.38 ID:jMAaefta.net]
むしろc#やり込んで分かって来てからの方がIDispose使う頻度上がったけどな。
Disposeパターンちゃんと分かって無さそうだし、GC.SuppressFinalize()も使ったことないんだろうな。

799 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:21:47.32 ID:La0rg2tq.net]
Dispose漫談

800 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:36:10.25 ID:k07is2fO.net]
IDisposableを継承したオブジェクトを、
自分のクラスにコンポジションすると、
自分自身もIDisposableを実装する必要が出てきます
このように、どんどんと、IDisposableは伝染していきます
IDisposableの要らないクラスは、
メモリ以外のリソースを全く含まない、クラスだけです
終いには、IDisposableだらけになります
インテリジェントなクラスほど、IDisposableになります
これがGCの現実です



801 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:38:35.26 ID:ls1PRuKg.net]
それで?

802 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:41:22.64 ID:La0rg2tq.net]
へーすごいじゃん

803 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 11:45:01.96 ID:QWgZ6B7l.net]
荒れてる時に失礼します

2ヶ月くらいの初心者ですが
lab.tricorn.co.jp/toda/1088

ここにStateとStrategyの違いが書いてますが、構造上の違いは無いため
見分けるにはクラス名で見分けるしかないと書かれていますが、そうなのですか?

別にこの記事を批判してるわけじゃなく、私自身StateとStrategyの違いが
イマイチよく分からないだけです

804 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 15:37:43.17 ID:MYIvkVg2.net]
以下を実装しようと思っていますがフォーム外の
マウスの座標をどうすれば補足し、メインフォーム上にレンダリングすれば
良いかわかりません。どの様に実装すればよいでしょうか?

1.フォームを起動する。

2.[座標調査]ボタンをクリック

3.マウスをフォームの外に移動したら
「1.」の中央に配置されたラベルにX座標・Y座標を表示する。

805 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 15:43:14.58 ID:rdkBQaJ6.net]
Cursor.Positionでスクリーン座標でのマウスカーソル位置が取れる。
タイマで定期的に取るようにすればいいんじゃない?

806 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 16:16:36.49 ID:MYIvkVg2.net]
>>793
サンキュー

807 名前:デフォルトの名無しさん [2015/09/02(水) 21:43:47.52 ID:+Iu6xlmH.net]
Stateは離散的な状態によって、振る舞いを大きく変えるオブジェクトを実装するためのパターン
Strategyは動的に処理を切り替える為のパターンで、ぶっちゃけただの多態性の事だ
Strategyは基本的すぎてパターンと呼ぶほどのものではない
他の殆どのパターンでも漏れなくStrategyを使っている

808 名前:デフォルトの名無しさん [2015/09/02(水) 22:24:38.83 ID:2IVkMjjH.net]
stateなんてstrategyを外か内のどっちから差し替えるぐらいの違いしかないし、デザインパターンとか偉そうに呼ぶもんでもない。

むしろ、switchで済むもんをstateパターン!とかドヤ顔でやるやつを生み出すクソパターンのひとつだわな。

809 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:16:57.02 ID:OPX/Zhtw.net]
デザパタって、
○○パターンで行こう、みたいなときもあれば
書いたあとに、あれ?これ△△パターンだな……みたいなこともあるし

参考程度でいいんでないかい?

810 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:21:25.69 ID:ZlVQUP4Q.net]
デザパタってのは本読んで賢くなったと勘違いしたバカが
ことあるごとにパターン名連呼するだけのもの



811 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:22:34.56 ID:AIAHCYFs.net]
>>798
2ch脳全開だなw
よくそういう被害妄想を恥ずかしげもなく開陳できるよなw

812 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:32:33.81 ID:nxxrL6I9.net]
しかし、>>798の解釈のほうが少しだけ健全
デザパタを知ったように語る連中にくらべての話なw

813 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 09:12:04.06 ID:BI1c3JMp.net]
デザインパターンは共通言語みたいなもんだろ。

814 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 09:31:49.44 ID:j51sLT8G.net]
俺の周りのやつにはデザインパターンが通じない

815 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 10:45:14.16 ID:AQrjy02M.net]
>>798
デザパタってそういうもんじゃないの
〜パターンって言うだけでああ、あれねってなるから
いちいち詳細説明の手間(タイムコスト)が省ける

816 名前:デフォルトの名無しさん [2015/09/03(木) 12:50:32.25 ID:UAzBQfVm.net]
まず、手間(タイムコスト)とか言い直す無駄な手間かけるのやめろよ

817 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:54:06.21 ID:Z05hlE1P.net]
>>804
小学生か。
俺は802じゃないけど、そういうのは無駄でも言い直しでもない。
曖昧さを減らすためのテクニックだ。
ヴァカじゃないのか

818 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:00:22.16 ID:Mtr7VddV.net]
そこまでのもんかよw

819 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:02:50.82 ID:NQZSp0fr.net]
命令口調君って馬鹿だな

820 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:03:00.42 ID:bflO1psv.net]
(言い争いも無駄なのでは?)



821 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:18:47.27 ID:6M6obrOu.net]
>>804
クスッときたw
なぜなら俺も同じ感想を抱いていたからw

822 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:37:10.76 ID:dGS6eFW0.net]
>>796
逆だろ
むしろ、stateパターンで書けるもんをswitchとかドヤ顔でやるやつを生み出さないためのパターンのひとつ。

823 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:43:23.59 ID:eSbMz5iN.net]
stateはあまり使うべきではないパターンの一つだろ
オブジェクトに変化する状態を持たせるのはなるべく避け、どうしても必要なところはなるべく明示的に、ってのが今風

824 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 16:18:18.81 ID:Z05hlE1P.net]
まあどっちにしろ馬鹿の一つ覚えの乱用は良くないね。
ケースバイケースで判断するしかない

825 名前:デフォルトの名無しさん [2015/09/03(木) 20:51:50.87 ID:AjZjPQkB.net]
質問させてください。
フォームを透明にするとデスクトップが見えると思います。
さらにラベルを半透明にすればデスクトップが透けて見えると思います。

ですが、ラベルを半透明にしてもフォームの透過色になってしまいます。
これの解決策はないでしょうか。

826 名前:デフォルトの名無しさん [2015/09/03(木) 20:53:39.88 ID:50OgoD3Z.net]
ステートはゲームとパーサー以外に使い道はないね

827 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:26:51.16 ID:4OSMUinY.net]
>>814
お前の狭い井戸の中の話はチラシの裏にでも書いとけ

828 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:30:09.14 ID:Mtr7VddV.net]
>>813
ふらっと行け

829 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:36:44.84 ID:t0UOlUCH.net]
とかくカタログ化のメリットをうたわれるが
それは理想でしかない
デザパタの理解の時点で不備が残るから
パターン名を出して語り合ってもチグハグなまま
断片的な理解で語って延々すれ違うのが関の山

830 名前:デフォルトの名無しさん [2015/09/03(木) 21:37:48.99 ID:AjZjPQkB.net]
>>816
すみません、初心者なのですが、フラットとはなんでしょうか



831 名前:デフォルトの名無しさん [2015/09/03(木) 21:59:03.17 ID:AjZjPQkB.net]
>>818 >>816
フラットがなにか分かりました、聴いてきます、ありがとうございます

832 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:30:08.90 ID:oJAsYsjQ.net]
>>811
これどういうこと?
むしろifとかswitch推奨ってこと?

833 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:35:31.33 ID:4OSMUinY.net]
>>820
まともなソフト組んだことのない奴の戯れ言なのでスルーでいい

834 名前:デフォルトの名無しさん [2015/09/03(木) 22:59:38.02 ID:UAzBQfVm.net]
10個のケースで処理は単純と
2個のケースで処理が複雑の場合どちらもクラス化するとは限らないし、switchでも関数でもオブジェクトでも見通しがいいのを選べばいい。

なぜなら、テストがあれば容易に修正が可能だからだ。

835 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:07:40.59 ID:8yoLLFnu.net]
>>820
最近は関数型からの流れで、クラスはイミュターブルにするべきだという流派が勢いを増しつつある
その考えに従うなら、stateパターンだろうがifだろうが自分自身のstateを勝手に変更するようなクラスは好ましくなくて、
差し替えやすくするにしてもコンストラクタでStrategyを渡しなさい、となるわけ

それからStrategyに比べてStateはその親が持ってる内部情報に強く依存することが多いので、
差し替えのメリットはあまりなくてコードが読みにくくなるだけの場合が多かったりする

836 名前:デフォルトの名無しさん [2015/09/04(金) 01:05:37.68 ID:lzz57wGL.net]
スイッチけ消せ派の二割ぐらいがコードの見やすさ以外のメリットを挙げられない日本のアイテー産業界の実情

837 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 09:18:55.15 ID:nWrrDgsE.net]
>822
テストは製品の品質を担保するためのものだろ
修正の容易さとは関係ない

838 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:00:23.91 ID:UHAkjTxW.net]
>>825
マジで言ってんのか?

839 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:21:37.40 ID:jQreaVPT.net]
通りすがりの俺も>>826と同じセリフを吐きたい

840 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:24:18.11 ID:uljmVnmx.net]
>>825
リファクタリングは名著だから一回くらい目を通しておいたほうがいいぞ



841 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:26:25.43 ID:/OouKiwm.net]
まあ低レベルなジャパニーズドカタとって自動テストを継続的に維持するのは不可能だからね
後々の修正以前に、新規開発を最期までグリーンを維持しながら完遂することすら奇跡

842 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:28:22.50 ID:wAnp+SYa.net]
旧石器時代レベルのマだな

843 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:29:33.09 ID:wAnp+SYa.net]
テストを検収通すためのエビデンスとしか捉えてないっていうね

844 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:34:41.72 ID:AEZT9dHU.net]
テストはあくまで修正の確認だろ
テストがあれば結果が保証される=安全な修正の場が提供される=修正がしやすい場が提供される

けれど、修正元のコードが容易に修正しやすいものかとは別問題でしょ

何だか、根本的に履き違えているみたいだな、俺が

勉強し直してきます。
顔真っ赤なんです。分かってください。
場違いなんでこれで最後にします

845 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:37:38.28 ID:FwcsIAPo.net]
>>832
動いてるものを弄ることの恐ろしさを知らないだろ
修正なんて結果の保証ができるかが全てと言っても過言ではない

846 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:45:48.20 ID:AEZT9dHU.net]
>833
そういってるんだけど
噛みつき方がおかしい

847 名前:デフォルトの名無しさん [2015/09/05(土) 01:21:45.82 ID:+/wEUIWT.net]
テストケースが用意してあって、いくら修正しても結果が合わないコードとか遭遇してみたいわ

848 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 06:31:10.03 ID:Jq+GEKLJ.net]
>>803
タイムコスト削減どころか患者扱いされるパターンが一般的
peace.2ch.net/test/read.cgi/tech/1441012744/133-142

849 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 07:44:13.00 ID:FwcsIAPo.net]
>>834
修正作業≒影響範囲と結果の確認作業
ということだよ
ソースコードの修正そのものは大した問題ではない

850 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 10:07:42.28 ID:McuB2/kQ.net]
>>832
修正って一言で言うからおかしくなる

1. 修正する箇所の決定
2. コードの修正
3. 修正箇所のテスト
4. リグレッションテスト

1. 〜 2. を修正って言えば >>825
1. 〜 4. なら >>822
が正しい



851 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 10:29:22.47 ID:yNAOhLZf.net]
そんな必死扱いて話続けるなよ
ショックだったのか?

852 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:28:54.82 ID:McuB2/kQ.net]
>>839
>>839
粘着してるのはお前だけ

853 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:40:46.30 ID:nF0Xae6t.net]
ITドカタには3,4が存在しないから同じ
問題なのは
5.リリース後に修正ミスが見つかるリスク

854 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:43:57.82 ID:yNAOhLZf.net]
そうかい
これ以上続けるならDisposeと同じように連投自演で荒らしてやる
分かったらおとなしくしてろ

855 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:49:32.74 ID:yNAOhLZf.net]
あるいはC#に関係があって、ふらっとでやるような話でない話をしろ
雑談がしたければ雑談スレかマ板に行け

856 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:04:12.51 ID:d+nPX/+M.net]
命令口調指摘厨


857 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:05:53.42 ID:9PP8hJsT.net]
┃↑
┗┛
荒らしは去れ
はよ仕事さがせよ

858 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:14:46.00 ID:ZNHlex0/.net]
「命令口調君って馬鹿だな」さんは、そろそろこのスレ10年近い大ベテランだぞ。
昨日今日現れたようなぽっと出の若造と一緒にしていい存在ではない。

859 名前:デフォルトの名無しさん [2015/09/05(土) 12:41:58.24 ID:d+nPX/+M.net]
んじゃ質問おねしゃっす

静的クラスと普通のクラスをstaticに持つのと、
どう使い分けしたらいいでしょうか。

べつにシングルトンにする必要はないオブジェクトですが、
プロセスではひとつしかインスタンス化しません。

860 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:47:44.60 ID:+EPImSa2.net]
質問をお願いします、だと?!



861 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:48:22.79 ID:pfZ6OLhC.net]
>>847
>普通のクラスをstaticに持つ
ってどういう意味?

862 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:49:23.73 ID:dHzp+WDi.net]
一般的には、アプリケーションのルートで普通にnewし、それを必要とするクラスにその都度渡すのが適切
全体で共有するからといってstaticでグローバル変数にしてしまうのは良くない
テストしにくくなるからね

863 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 13:35:50.94 ID:d+nPX/+M.net]
ご説ごもっとも
でも今回はstaticにします。

static class Hoge{}

or

class Hoget{}
...
public static Hoge hoge = new Hoge();


下の方が拡張性があるとかないですか

864 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 13:41:33.34 ID:5uKQXugM.net]
俺にはそれらが比較する物に見えない

865 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 14:08:16.36 ID:trE2W9oi.net]
>>851
毎回直接hogeにアクセスするなら拡張性はない
拡張性をもたせるなら、Hogeにインターフェイスを実装して、他のクラスはそのインターフェイスを通して利用するようにする
実際のHogeのインスタンスは外から渡す

866 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 15:14:06.63 ID:OLenB+FK.net]
849みたいな馬鹿はどうしようもない
クラスの持つ概念が何かを考えずに、
コンパイル通るかしか考えないんだろう

867 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 15:29:17.88 ID:ygimYbNM.net]
でもSingletonがあるとテストしにくいのは事実だよね
まぁきちんとインターフェースを切り出してモック作りゃいいだけなんだけどな

868 名前:デフォルトの名無しさん [2015/09/05(土) 15:42:26.30 ID:+/wEUIWT.net]
static classの必要性を感じない。
コンストラクタをプライベートにすればいいだけだし。

869 名前:デフォルトの名無しさん [2015/09/05(土) 15:53:29.93 ID:MzCBpk1s.net]
Javaのstaticクラスとごっちゃになりそう

870 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 17:53:50.96 ID:trE2W9oi.net]
>>854
849だけど、毎回newしろと言ってるんじゃないよ
Applicationオブジェクト(と寿命が一致するオブジェクト)のフィールドとして持つということ



871 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 18:10:54.10 ID:5uKQXugM.net]
DI!DI!
.NETのDIライブラリって何がデファクトなの

872 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 18:38:14.83 ID:uKtK2YVi.net]
拡張メソッドや小物の汎用メソッドはスタティックだな

873 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 19:12:43.32 ID:LfnRuzOf.net]
いまだにVS2010使ってるが何か問題ありますか?

874 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 19:36:56.63 ID:Ozz2pk1l.net]
それで困ってないなら問題ないんじゃ

875 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 19:40:50.40 ID:unwmwqiG.net]
>>861
.NET Framework 4.5使わないならいいんじゃね

876 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 09:57:58.21 ID:4IVIRjvm.net]
expressじゃなきゃいいんじゃない

877 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 18:59:07.66 ID:8RjKVv09.net]
dobon.net/vb/dotnet/system/getinstalledfonts.html
でフォントの一覧は取得出来たのですが、この中から等幅フォントだけを
取り出す方法を探しているのですが分かりません。
知っている人教えてください。

878 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:00:41.16 ID:xgRymLq/.net]
等幅フォントというカテゴリーが実在するかが問題だな

879 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:10:18.07 ID:WzVfDTMU.net]
Aとiの文字幅でも比較しろよ

880 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:14:00.57 ID:mOIVmWnr.net]
日本語のフォントフェイス名が「MS ゴシック」だったら等幅
この判定が最強



881 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:58:27.85 ID:zUrSP80h.net]
>>865
ググってみたが結構面倒臭そうだな...
https://social.msdn.microsoft.com/Forums/windows/en-US/5b582b96-ade5-4354-99cf-3fe64cc6b53b/determining-if-font-is-monospaced?forum=winforms

882 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 12:09:21.14 ID:HZZtDHiw.net]
>>869
情報ありがとうございました。ここのやり方で出来ました。感謝です。

883 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 10:31:35.12 ID:Zqb1tFho.net]
linq.jsの質問したいんだが、いいかい??
jsスレよりLINQ好きはこっちのほうが多いと思うんで

884 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 10:34:40.84 ID:OdK7pfyp.net]
スルーされても涙をこらえられるなら、断ってんだし聞いてもいいんじゃね。

885 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 11:47:11.60 ID:G800rjof.net]
LINQスレでいいんじゃね?

886 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 12:09:30.83 ID:Zqb1tFho.net]
LINQスレあったのね
そっちに書いてきます

887 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 12:17:14.28 ID:XXlgiA9F.net]
jsならlodash使ったほうがいいよ
機能が豊富で利用者も多い

888 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 00:22:45.76 ID:fYJZeKZK.net]
文字列の暗号化を行うクラス名おしえてください
.NET Frameworkにあるやつでお願いします!

889 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 01:02:02.00 ID:8nVq9fpM.net]
System.Security.Cryptography.AESとかRSA

890 名前:デフォルトの名無しさん [2015/09/15(火) 02:50:53.79 ID:jPIqDLQl.net]
charをチャーと発音すると
ダサいですか?
(´・ω・`)



891 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 02:55:10.80 ID:8L2kzhog.net]
外人マはキャレットって発音してた
getcharの発音はカッコよかった

892 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 07:08:29.36 ID:gJJz7de7.net]
キャレットだと意味が変わるような・・・

893 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 07:16:22.30 ID:fovtyU1w.net]
キャラクターの略じゃなかったのか?

894 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 07:37:34.11 ID:c6kBSd9X.net]
>>878
ギター弾く人だろ

895 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 11:12:05.00 ID:XyyEatel.net]
気絶するほど悩ましい

896 名前:743 mailto:sage [2015/09/15(火) 15:21:22.42 ID:nRNQ5gNy.net]
返答頂けないようなのでふらっとの方で聞いてみます。

897 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 00:01:51.90 ID:Uf++h6JZ.net]
シャアでしょ

898 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 10:40:14.99 ID:7sbTeZHX.net]
キャスバル兄さん!

899 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 12:49:48.36 ID:ayKx8SBE.net]
基底クラス(スーパークラス)の参照型に、派生クラス(サブクラス)を渡すことはできないのでしょうか
C++では出来ました

一から作るならこんな設計しませんが、C++で作られたライブラリをラップする際に困ります

900 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 13:09:05.15 ID:R6jOKYfj.net]
>>887
できるよ



901 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 13:18:16.97 ID:gYRc3sT6.net]
この手の質問は何か隠し事をしている気がするんだよ

902 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 13:21:42.04 ID:807nK7Mg.net]
というかよく質問理解できるな
参照型に渡すとか俺には意味不明だ

903 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 17:35:09.33 ID:koLGUr+e.net]
C++のコードを晒してみれば

904 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 19:16:26.11 ID:+CviF6rc.net]
単にout付きで互換の型渡せるかって程度の話じゃないの
それかC++だと値としてオブジェクト渡せるから、
わざわざ参照と付け加えてるかのどちらか

905 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 20:00:45.32 ID:koLGUr+e.net]
void M( ref Base b)
{
 MessageBox.Show( b.ToString() );
 b= new Base();
}

Base b= new Derived();
M( ref b);   // OK

Derived d= = new Derived();
M( ref d );  // コンパイルエラー

こういうことかな?

906 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 21:03:54.81 ID:gm0njNEv.net]
いや、普通に

907 名前:基底クラスのフィールドやプロバティーにサブクラスを突っ込めるかという質問でしょ
C#のフィールドは、ヒープメモリーのアドレスが入っているポインタ(ちょっと違うが)だという意味ではC++で言う参照型でしょ
[]
[ここ壊れてます]

908 名前:886 mailto:sage [2015/09/16(水) 22:42:14.05 ID:F1cbGVxL.net]
分かりにくくてすみません。
こういうクラスがあって、
class Foo1
{
}
class Foo2 : Foo1
{
}
C++でこういうメソッドがあります
void hoge(Foo1 &foo1);

これをCLIでラップしたものが
void hoge(Foo1^% foo1);

C#から利用しようとすると
var foo1 = new Foo1();
var foo2 = new Foo2();
hoge(ref foo1); // OK
hoge(ref foo2); // コンパイルエラー

hogeメソッドでfoo1を書き換えないのであれば、CLIのラップをこうして、
void hoge(Foo1^ foo1);

C#ではこう
var foo2 = new Foo2();
hoge(foo2); // OK

しかし書き換えないという保証ができないと言われて……

909 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 22:47:50.03 ID:koLGUr+e.net]
(C++)
void hoge(Foo1 &foo1);

の相当は

(C#)
void hoge( Foo1 foo1 ){};

だにょ
foo1の参照そのものは上書きされないよ
メンバーはいじれるよ

910 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 22:53:24.86 ID:gm0njNEv.net]
Interface IFoo
{
}

class foo1:IFoo
{
}

class foo2:foo1
{
}

hoge(ref IFoo foo2) でどう?



911 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 23:04:03.46 ID:FKycpPH3.net]
>>896
C#やC++/CLIのハンドル渡し(C#ならFoo foo, C++/CLIならFoo^ foo)に相当するのはC++のFoo* fooだよ

912 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 00:42:11.48 ID:PQCx+Vd2.net]
テキストボックス1〜テキストボックス100みたいなのを配列みたいに扱えますか?

913 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 00:47:54.38 ID:pD0MAiOr.net]
PanelやGroupBoxにまとめて入れてControlsでアクセスする
自分で手で配列に入れるのはやめろ

914 名前:デフォルトの名無しさん [2015/09/17(木) 04:08:04.20 ID:4HLEYCrX.net]
ラーメンクラスを作る場合、
パラメータとメソッドは
どういった具合にしたらいいんですか?
(´・ω・`)

915 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 04:23:23.59 ID:Q0AcoQbB.net]
ラーメンクラスの目的によるとしか

916 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 04:42:43.98 ID:cshgYIFM.net]
3分待つ機能と食べる機能は全ラーメンクラスに継承しろ

917 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 06:29:30.95 ID:mooKI9/d.net]
addトッピングメソッドとトッピングパラメータ(List型?)は基底クラスに持つべき

918 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 06:53:55.88 ID:WDJU3Zw5.net]
>>901
bool Wait(int minit)

919 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 10:42:31.84 ID:Z358njol.net]
ラーメンは全てインスタントラーメンかカップラーメンである

というわけでもないでしょ

920 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 11:33:26.73 ID:ptLmoXeB.net]
ツマンネ



921 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 11:41:24.96 ID:rrdPtXos.net]
>>907
オモシロイヤツヲヒトツタノムヨ

922 名前:デフォルトの名無しさん [2015/09/17(木) 20:52:11.24 ID:Gg0L/PBZ.net]
旧ADOにあったRecordset.GetStringは廃止されたの?
昔(.NET1.1?)はADO.NETにもあったはず…

923 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:35:12.65 ID:W5SHLev9.net]
Hogeデータプロバイダ名前空間の中
HogeDataReader.GetString()

924 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:44:44.40 ID:PQCx+Vd2.net]
>>899
これおしえてください!

925 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:10:36.06 ID:CxP5vej7.net]
一旦配列に入れてしまえば後は自由でしょ

926 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:36:24.55 ID:4dvMz6Vq.net]
>>910
たしかそれだったと思うけど、今のSqlDataReader.GetStringは、列番号必須で区切り文字指定のない全く別物…

>>912
Webページへの高速出力が目的なので、ループ出力より高速じゃないと意味ない…

そのかわり1.1の頃より速くなってるから、なんでもループ処理でOKよってことなのかな
当時は圧倒的に速度が違ったけど

927 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:37:32.60 ID:4dvMz6Vq.net]
>>912
ん?>>911へのレスかw
失礼しました

928 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 01:22:36.27 ID:aVZSqO61.net]
>>912
object型の配列に部品を格納する感じですか?

929 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 02:29:27.98 ID:YsR93Rd4.net]
c# コンポーネント 配列 でググりなさい

930 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 07:18:13.22 ID:fS8raEaD.net]
>>911
>>900で答え出てるだろ
プログラミングの基本的な指針として、地道な手作業は可能な限り避けるのがよい



931 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 13:12:04.38 ID:aVZSqO61.net]
>>916
>>917
ありがとうございます。

932 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 22:22:58.29 ID:cJiNMIaZ.net]
多次元配列をコピーするのって、一つずつforループでやるしかないのでしょうか?

933 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 22:28:49.66 ID:fS8raEaD.net]
Cloneするだけ
まあその前に初心者なら多次元配列は捨てた方がいい

934 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 00:27:37.44 ID:ImfPowRm.net]
>>919
LINQを使え!

935 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 01:27:07.29 ID:2AI6YCMk.net]
逆引き系の本を一冊買うとしたら、何かお勧めありますか?
主にUnityで使うつもりなのでVisualC#に偏っている必要は全くないのですが

936 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 03:14:00.13 ID:Zufot1+5.net]
そういうのはもう書籍の時代じゃとっくにないよ。
web検索禁止の職場(そんなのあるの?)ぐらいしか需要ないし。

937 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 05:23:44.41 ID:2AI6YCMk.net]
もしかして、Webで逆引き書籍に近いものがあるんですか?

938 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 06:36:09.44 ID:nNq1xWLG.net]
C# hogehogeする方法

でぐぐれば大抵はみつかるでしょ

939 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 18:39:56.56 ID:ONkilyrE.net]
同じ品質の情報をまとめて仕入れるには本が一番手っ取り早いだろ

940 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 02:02:40.73 ID:rYu6JiJC.net]
>>919
職場のバカがDeepCopyとかいうメソッドを作ったのでどんなバカなコード書いてるのかと覗いてみたら
シリアライズして逆シリアライズしていた。
このバカはきっと「俺天才?」とか思ってるんだろうと思った



941 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 04:57:39.45 ID:GwThY85s.net]
>>922
職場にVS2005時代の秀和システムの逆引き本があって
毎年新人がそれ参考にするんだよ。それどころか、読めと薦める奴すらいる。
それはゴミだ、捨てろと言っても誰も聞かない。

942 名前:253 mailto:sage [2015/09/20(日) 07:15:00.84 ID:O6Xw3ijC.net]
>>928
お前が捨てればいいし
そもそももっとまともな本買えばそんな本誰も見向きしなくなるだろ
まともな本があるかどうかは知らんけど

943 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 12:53:26.70 ID:b8irudVx.net]
>>919
ジャグ配列をコピーするプログラムをLINQで組んでみた

ideone.com/73tdUp

a2をあらかじめnewしとかないといけないのが問題だけど
これもLINQに入れれればいいな

944 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 14:36:59.39 ID:GwThY85s.net]
>>929
共用図書として管理されてて、棚卸しがあるから勝手に捨てられん。
会社は本を買ってくれない。業務や自己研鑚に必要な本も自腹購入。

945 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 14:43:13.35 ID:PY77Iv4D.net]
>>927
何か問題あるの?
Webで探せばすぐ出てくるコードだが。

946 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 15:07:04.60 ID:O6Xw3ijC.net]
>>931
そんなアホ会社に勤めてる自分を恨めよ

947 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 15:13:53.07 ID:atv7oNrq.net]
やめてください
そういうのはマ板でやってください

948 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 17:32:41.08 ID:Qf1YaYyL.net]
そんなその逆引き本ってゴミなん?

949 名前:デフォルトの名無しさん mailto:sage [2015/09/21(月) 18:56:36.66 ID:isL5PIxi.net]
ネット禁止の職場だと神

950 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 22:52:37.30 ID:9Yiwc7mM.net]
VS2005を使う必要があるなら構わないが
最新の環境で10年前のC#本は最早疫病神だろ。



951 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:34:32.61 ID:yQAByzEz.net]
またいつものそういう絵に描いたようなダメな奴の発想のご開陳ですか。

逆引き本の類はC#の本というよりBCLの本で、BCLはC#ほど変化があるとは思えない。
だからそのまま使える部分も多いと思うけど。

952 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:45:20.37 ID:ukiPrkhN.net]
思う思うってうるせえんだよ何一つ断定的ないカスが。

953 名前:デフォルトの名無しさん mailto:sage [2015/09/22(火) 23:47:05.01 ID:+2wZ1QC+.net]
ダメなのは本ではなくコピペグラマ
そういう意味では本の方がコピペできない分だけマシ

954 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 00:43:49.47 ID:JvX9Z5l/.net]
うちの職場はコピペ指向が主流

955 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 00:59:08.66 ID:hI1vJLTN.net]
コピペで済ます奴ほどラムダ式やLINQやTaskを避ける謎習性
自分の見たことない、理解できない文法はコピペがためらわれるらしい
傍から見てて笑っちまうよ

956 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 01:02:59.07 ID:DJdG/okP.net]
>>942
コピペの理由が「今まで実績あるソースだから」だもんな
同じコード見る身にもなってみろと・・・

957 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 01:03:09.50 ID:vQpke5kW.net]
むしろコピペされたコードの大部分を理解出来ていないだろ
理解出来ないものをコピペするから始末に負えない

958 名前:デフォルトの名無しさん [2015/09/23(水) 01:23:59.67 ID:X+JzAFdp.net]
最近はタイプセーフより、シリアライズ可能なようにするのが俺ん中でブーム。
判定は文字列や数字。
コピペも多くなるけどね。
オブジェクト思考と関数型の重み付けはセンスを問われるね

959 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 01:59:25.10 ID:vuM6eIZV.net]
プロジェクトの途中でいきなり妙な宗教に目覚めるのだけ止めてくれたらあとは何でもいい

960 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 09:13:51.73 ID:kAhgYRFO.net]
コメントでプログラムの内容の意図をしっかり書いてくれればコピペでも何でもいい



961 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 09:27:57.00 ID:DOrhv1Zg.net]
>>947
> コメントでプログラムの内容の意図をしっかり書いてくれれば

そんな奴はコピペなんてしない

962 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 12:28:14.16 ID:brsC0ei6.net]
テスト結果をエクセル方眼紙で図形とか多用して美しいレポートに仕上げてくる奴に限って
ソースはコピペまみれ

963 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 12:47:19.41 ID:pVjwfoZv.net]
それを言うなら、2chくんだりでクダ巻いてる奴なんか例外なく無能。

964 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 16:20:04.65 ID:4xka67Z0.net]
それは否定できない

965 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 16:27:06.58 ID:xXat8bOk.net]
コピペそのものの何が悪いかに言及できるやつはいない

966 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 16:45:48.88 ID:4xka67Z0.net]
何故その書き方になるのか理解しないでコピペされるのは嫌だよね

967 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 16:58:49.24 ID:lW5FhXsG.net]
嫌というか、コピペしたまんまでエラー処理とかもろくに組み込んでないコードを持ってこられても。
実際ネットに転がってるコードなんて目的の動作をさせることのみに焦点を絞ってるんだから。
挙げ句にコピー元がバグってるんだからボクは悪くないもん!とか言われた日には。

968 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 17:24:32.25 ID:xkmM0J9H.net]
レビューの時に答えられないコード持ってくんなチンカス

969 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 17:29:59.86 ID:DOrhv1Zg.net]
>>952
マジレスしとくと、
本来同じ機能を実現するルーチンが複数になることで不具合修正や機能追加時の変更漏れが発生しやすくなる
って言うのが一番でかいと思う

970 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 19:22:36.11 ID:z8WDBc2F.net]
それは自分のソース内のコピペであって
今話してるのは外からのコピペだと思うんだが



971 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:24:34.98 ID:srG8yqao.net]
サンプル改造して使うのはどこでもアタリマエにやる
問題は改造できんやつだ

972 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:37:36.98 ID:Edj0jzP7.net]
>>958
結局コピー元の動作を理解できていないという問題に行き着くんだわ

973 名前:デフォルトの名無しさん mailto:sage [2015/09/23(水) 20:47:09.15 ID:DAYusJ9Y.net]
どうでもいい話だけど、コピペが問題になるのは、

(1) コピペ部分がブラックボックスとして成立してないか、または

(2) (そのコードを管理する人間にとって)ホワイトボックスでない場合

974 名前:デフォルトの名無しさん [2015/09/24(木) 04:47:23.85 ID:EdI1Xy7C.net]
よくパスワード保存して次回から省略する機能ってあるじゃないですか
暗号化してconfigファイルに保存しようかと思ったんですが、
configファイルをコピーしちゃえばデコード後のパスワード知らなくても通っちゃうじゃないですか
普通どうするんでしょう?

975 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 05:22:56.13 ID:CMBCqBI4.net]
PCごとに固有になるようにする

976 名前:960 mailto:sage [2015/09/24(木) 06:20:27.73 ID:EdI1Xy7C.net]
>>962
PC固有の情報はないという噂ですが…
暗号化キーをMACアドレスにしておき、その事実を隠しておけば、
とりあえずまっとうな会社と認められるでしょうか?

977 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 07:45:02.78 ID:jOCdVqmS.net]
普通は、単純にそのユーザーしかアクセスできない場所に置く。あるいはそういう場所に置いた
秘密キーで暗号化する。

978 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 07:59:52.17 ID:TiSlAdHm.net]
まっとうではないと判断されるな

979 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 08:10:23.88 ID:EdI1Xy7C.net]
>>964
そのユーザーしかアクセスできないことを信用していいなら暗号化する必要もないのではないでしょうか?

980 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 08:20:40.51 ID:QTVnOSJ6.net]
自分が最初に何を言ったか覚えているのか?



981 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 09:08:56.95 ID:P59Gpqf+.net]
firefoxはオープンソースじゃなかったっけ
見てみればいい

982 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 09:21:57.08 ID:hqSpqpAb.net]
>>966
気づいたか。パスワードを保存するセキュアな方法は存在しないので全力で回避する事。

983 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 09:40:28.95 ID:EdI1Xy7C.net]
>>968
調べました
コピーされたらおしまいという事態を防ぐために、マスターパスワードという機能があるそうで、毎回入力が必要みたいです
コピーが心配なら毎回入力しろということですね
ということは自動パスワードの暗号化はあまり意味がないということになりますが、firefoxも一応暗号化してますね
ということで心配するのやめました

984 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 09:44:34.01 ID:EdI1Xy7C.net]
>>969
ローカルにある以上アタックも可能ですし、破られるかどうかは気にしてません
クレームが付かない常識的な仕様や方針を知りたかっただけです
firefoxの仕様見て、「保存してもいいけど保存したら危険です」のアナウンスでいいような気がしました

985 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 15:35:15.84 ID:p27rUZR0.net]
・・・あのな
安全のためにパスワードを入力するという方法を採るわけだ
それを省略すればイコール安全ではないとなぜわからない

986 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 16:28:03.06 ID:9oqv3+gF.net]
その安全性を何処まで保証すべきかってのとの天秤だよな。

中に何が入ってるかによるし、ライセンスキーとかの類いならキーの値段とユーザ数の天秤だろうし。
社用で使用するメールの閲覧パスワードだって一度入力して保存したまま覚えてないヤツなんてごまんといるだろうけど、
それが大きな問題になることなんてあんまりないし。
で、たいていの場合はそんなこと気にする価値がそのソフトにあるかと聞かれたら ? ってなるモノの方が多い。

PC 単位でのセキュリティでいいなら、その昔触ってたライセンス管理付きのソフトで、
HDD のシリアル番号+キーの種別を示すテキストをハッシュ化してそれを部分的に抜き出したモノなんてのを使ってたことがあった様な気がする。
保存先は無造作にソフトのインストールフォルダにファイル作ってたような。。

987 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 16:39:17.98 ID:l6wjQdp1.net]
ログインユーザーだけが読めるようにしとけばいいよ
暗号化はうっかり表示させた時、後ろで誰か見てたら困るべ

988 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 16:46:51.58 ID:fjowUJxZ.net]
>>974
パスワードの最大のメリットは、何かあった時「お前が悪い」で済ませられることにある

989 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 17:49:25.63 ID:zDZwJSqO.net]
>>971
普通にそれでいいと思う。

工夫すれば特定の環境下でのみデコード可能な暗号化なんてこともできるんだろうけど、
そのコストを正当化できる用途がどれだけあるのかなと。

990 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 18:03:00.11 ID:hqSpqpAb.net]
DPAPIでユーザーまたはPC固有の鍵で暗号出来るじゃん



991 名前:デフォルトの名無しさん mailto:sage [2015/09/24(木) 22:09:03.96 ID:InMIs/J4.net]
なんだこの糞画質は

992 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 16:58:01.03 ID:KJgftwp5.net]
ここで聞くのがいいのかどうかわらないけど
EFのコードファーストでlocalDB作るにはどうしたらいいんだ?
既定では普通にSQLserverで作られてしまう

993 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 17:17:23.99 ID:IwY+2yrf.net]
connectionStrings 設定すりゃいいんじゃなかったかな

994 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 23:21:13.33 ID:4d8u8vME.net]
EFググるとSQL serverの情報ばっかりよな
oracle11gだとコードファーストできなかった

12cから対応してるらしいが

995 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 00:48:35.55 ID:0uPNs2Ie.net]
よく読んでないけどこれかな
ttp://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html

996 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 06:08:42.03 ID:dJryEewA.net]
980超えました

997 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 11:33:01.32 ID:KGnBWXC1.net]
次スレは>>971が立てる事になっている

998 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 15:18:03.90 ID:lPgGeQyi.net]
WebbrowserでPostするデータがUTF-8でURLエンコードされて送信されるのですが
これをSJISでURLエンコードする場合はどうすればいいのでしょうか?

999 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:18:19.26 ID:qD4Po1Vl.net]
他の言語でもずっと気になってたんだけど
引数ってメソッドに代入する前に計算してそれを放り込むのとメソッドの行で直接計算式書くのって
見た目的にきたねえのと余計な変数ができること以外なんか違いあるの?

1000 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:30:03.74 ID:uTIKCoPr.net]
あまりないと思うが、引数の評価順を変更する必要に迫られた場合
変数に格納しておくしかない



1001 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 16:43:14.88 ID:w+tHyIOy.net]
c#同士でプロセス間通信行いたいんだがググってもよくわからん
ipcを使うとかsendmessage使うってのは見かけたんだが二つの違いがわからない

1002 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 17:06:44.01 ID:uTIKCoPr.net]
IpcChannelはNamed pipesを使ってデータを送受信する
SendMessageはMessage queueを使ってデータを送受信する
C#(.NET)同士ならIpcChannelを使う方がいい
理由は楽だから

1003 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 17:39:41.05 ID:v7fSGmLa.net]
>>985
送信前にsjisに変換しろよ

1004 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 17:42:15.41 ID:v7fSGmLa.net]
>>986
>メソッドの行で直接計算式書くのって
そんな書き方は俺は認めない

1005 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 17:45:00.67 ID:bE/QWpmW.net]
>>986
他で使ってなければローカル変数はJITの最適化で消えるのでパフォーマンスには影響しない
一時変数に入れてるとデバッグで途中の値を見たいときに楽

1006 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 19:34:34.34 ID:QAy/TSxu.net]
次スレマダー

1007 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 20:45:56.05 ID:XoMNa86j.net]
>>991

hoge.Foo(a + b)

ですむところを

tmp = a + b
hgoe.Foo(tmp)

を強制するのか
そんなコーディングルールはいやだなぁ

1008 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 20:49:24.70 ID:aOm8ykiX.net]
デバッグしたい時に書き換えればいいと思う

1009 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 20:56:29.83 ID:XoMNa86j.net]
ウォッチウインドウで計算式入れれば良いんじゃないかと

1010 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:03:52.04 ID:VMIaqxNe.net]
VSのデバッガは優秀だから問題ないけど、スクリプト言語使ってると
エラーが出た行番号は出てるけどその行のどの式が原因なのか分からない場合がある
そういうときとりあえず一時変数に入れて行を分けたりするね



1011 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:11:12.67 ID:XoMNa86j.net]
ここはc#のスレ

1012 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:30:30.74 ID:1RpaQohZ.net]
でもラムダ式って一般に呼び出し部にベタで書くし、
それに慣れたら数式も普通に書いちゃうでしょ。
気に入らないかもしれないけど、慣れるしかないのでは。

1013 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:43:42.81 ID:Eb5jOjH8.net]
C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1443271409/

1014 名前:デフォルトの名無しさん mailto:sage [2015/09/26(土) 21:48:18.67 ID:VMIaqxNe.net]
>>999
ラムダ式はそれ自体がエラーになったりすることは無いからね
ラムダはその評価結果が問題であって、ラムダ式自体の値には特に意味が無い

1015 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1016 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






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

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

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