トップページ⇒tech
1002コメント296KB

C#, C♯, C#相談室 Part88 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2015/07/25(土) 16:14:05.15ID:I42JqLkf
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

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

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

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
0002デフォルトの名無しさん2015/07/26(日) 09:05:59.64ID:fLVu21Zo
質問しようと思ったけどボコボコにされそうだからしない事にした
0003デフォルトの名無しさん2015/07/26(日) 11:30:04.61ID:46Fm2wcC
そんな……
やさしいおじさんが聞いてあげるから言ってみな?
0004デフォルトの名無しさん2015/07/26(日) 11:39:51.33ID:N2oZlVgp
なんだ おまえ ホモか
0005デフォルトの名無しさん2015/07/26(日) 16:15:48.72ID:xa5HdSSx
結局セキュリティソフト君はその後どうしたのかね?
0006デフォルトの名無しさん2015/07/26(日) 17:26:44.71ID:lXSfNNdx
セキュリティソフトの作成方法を聞き出して
その情報を元にウイルスでも作ろうと思ってたんじゃないの
0007デフォルトの名無しさん2015/07/26(日) 17:39:28.63ID:l9VGeSW8
>>6
そんな頭があれば既に作ってるだろうw
0008デフォルトの名無しさん2015/07/26(日) 19:23:11.46ID:kjrWspdc
>>6
その匂いがプンプンするね
今日日セキュリティソフトを自作したところでそんな怪しげなもの誰一人使わない
犯罪目的のクズ野郎だろ
0009デフォルトの名無しさん2015/07/26(日) 19:36:43.53ID:vtqRL+nm
>>8
2ch脳全開だなw
0010デフォルトの名無しさん2015/07/26(日) 20:19:40.20ID:B0K0vZKc
そんなスキルあるやついないだろうしねぇ
でも祐ちゃんの例もあるし今居る住民もいつダークサイドに堕ちるか分からんよw
0011デフォルトの名無しさん2015/07/26(日) 20:31:57.38ID:N2oZlVgp
おまえらの場合「立つ鳥、跡を濁さず」とか言って
社内インフラを綺麗にしていくんだろ
そうはいかない
0012デフォルトの名無しさん2015/07/29(水) 10:43:41.78ID:Sn/ML9/s
最近になって開発環境を総グレードアップして
いよいよTaskやasync/awaitを使い始めたんだけど、信じられないくらい難解だね
ぱっと見スマートに見えるコードでも、finallyとかcatchとか使うと、実行順序が滅茶苦茶になるし、バグコードが分かりにくい
ストアアプリなんかはThread廃棄で、これだけを使えとかされているけど、こんなもの生き残るんだろうか・・・
少し心配になってきた

今どの程度の人たちが使っているんだろうか・・・使っている人います?
利用者が少ないようだと、そのうちコケるんじゃないかと思うので使用を躊躇う
0013デフォルトの名無しさん2015/07/29(水) 10:47:04.71ID:ARLADCs4
新しいことに対応できない老人はずっとThreadのままでいいんじゃね
0014デフォルトの名無しさん2015/07/29(水) 10:50:05.68ID:Sn/ML9/s
http://www.slideshare.net/ufcpp/an-other-world-awaits-you
いくら効率が悪いといっても、こんなにしてしまうくらいならシンプルにlock式にした方が良い気がするんだよな・・・
何時までこの強引なシングルスレッドモデルを使う気なんだろうか
0015デフォルトの名無しさん2015/07/29(水) 10:53:42.82ID:Sn/ML9/s
>>13
新しくて使えるものならOK
だけど、コードにバグがあるのかないのかはっきりしないコードが容易に生産されてしまう仕組みと
それを実現しているシステムが難解で一度バグったら解決困難に陥るところが気に入らない
0016デフォルトの名無しさん2015/07/29(水) 11:08:36.50ID:KiB1GMXB
気に入らないなら使うなよ
馬鹿じゃねえの
頼まれてもいないくせに図々しく使った挙げ句ウダウダうるせえんだよ生ゴミが
スタバのミルクスチーマーに頭突っ込んで死ね
0017デフォルトの名無しさん2015/07/29(水) 11:12:05.54ID:/xHve5to
まあ複雑な裏側を隠蔽した副作用で変な落とし穴作ってる側面はある

そういうや以前ストアアプリで生Thread使えないんで困ったような記憶があるなあ。
あれ何に困ったんだっけ
0018デフォルトの名無しさん2015/07/29(水) 11:21:13.95ID:/xHve5to
スレッドをAbortする手段がないから、まれにデッドロックするバグがあるライブラリを
使えなくて困ったんだな確か...
0019デフォルトの名無しさん2015/07/29(水) 11:23:56.70ID:5YdTwoj1
まれにデッドロックするバグのあるライブラリなんか、
Abort有る無しに関わらず使いたくないな。
0020デフォルトの名無しさん2015/07/29(水) 14:35:01.41ID:Sn/ML9/s
こいつを完全理解しようと思うならSynchronizationContextの自前実装で試してみるくらいはしないと無理だな・・・ふぅ
なんでこんな変態的な事しようなんて考えたんだろMSの中の人は・・・
http://www.kanazawa-net.ne.jp/~pmansato/parallel/parallel_synccontext.htm
0021デフォルトの名無しさん2015/07/29(水) 14:36:16.21ID:Sn/ML9/s
まだ、C++のテンプレート変態メタプログラミングの方が可愛げがある
やり過ぎだ・・・
0022デフォルトの名無しさん2015/07/29(水) 14:58:15.30ID:UDgaLD/w
やり過ぎの基準ってどこだろう。
ラムダだって初級者にはやり過ぎだろう。
0023デフォルトの名無しさん2015/07/29(水) 15:09:34.16ID:Sn/ML9/s
知るべき内容が、際限なく発散しなければ、多少奇抜でも初心者は驚くだけでそのうち慣れるだろう
そうでないのは良くない

Task/asyncは際限なく発散している、質が良くない
あとドキュメント少なすぎ
0024デフォルトの名無しさん2015/07/29(水) 15:51:42.49ID:i8OV3HLL
質が良くないとは思わんけど、便利だけどドキュメント少なすぎなのはまあそうかも
0025デフォルトの名無しさん2015/07/29(水) 16:00:51.85ID:Sn/ML9/s
本当はね、言語の組み込み機能位なら、一ページで説明できる程度でなきゃ駄目だ
大量のドキュメントなしに全貌が理解できないなんてのは最低です
提供される要素は巨大ライブラリじゃないんだから・・・
0026デフォルトの名無しさん2015/07/29(水) 17:41:02.30ID:RzPhPosx
asyncの例外はもうちょっと何とかして欲しい
だからと言ってpromiseもどきに退行する気もないが
0027デフォルトの名無しさん2015/07/29(水) 18:09:37.81ID:Sn/ML9/s
だんだん問題が見えてきた。用心しなきゃならないのは、awaitをlockで囲んでしまわないことと
async void のケースで、完了を待たないという事をしっかりと理解しておく事だな
待たないから、awaitを使って書かれたコードより先にそれを囲っているfinallyを実行してしまう
前者にしても後者にしても、サブルーチンやイベント呼び出しに含まれていたりするケースはバグが潜在しやすいね
こりゃ、初心者に啓蒙活動するもの大変だ
後でアンチパターン集作らないと・・・どっかサイト作っている人いないかな、作るのメンドイ
0028デフォルトの名無しさん2015/07/29(水) 18:15:27.82ID:kqrCR8QI
なんかレベル低くない?
0029デフォルトの名無しさん2015/07/29(水) 18:22:32.72ID:ARLADCs4
低レベルな話題は初心者用スレでどうぞ

ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1436344868/
0030デフォルトの名無しさん2015/07/29(水) 18:27:14.32ID:aeHXtAal
初心者に啓蒙…
0031デフォルトの名無しさん2015/07/29(水) 18:31:26.26ID:7PHxXKam
勤勉な無能だな。
今日中にID:Sn/ML9/sを銃殺しておくように。
0032デフォルトの名無しさん2015/07/29(水) 18:32:40.51ID:v5HDQPvF
Task使えばいいじゃない
0033デフォルトの名無しさん2015/07/29(水) 18:44:23.60ID:Sn/ML9/s
>>28-32
お前らに何一つ理解できているとは思えないけどなw
0034デフォルトの名無しさん2015/07/29(水) 19:02:27.32ID:eAAheHcV
気は済んだ?
じゃ、飛び込もうか
電車がきたよ
0035デフォルトの名無しさん2015/07/29(水) 19:28:29.68ID:ozMfiNSe
>>27
バカ
0036デフォルトの名無しさん2015/07/29(水) 21:50:33.64ID:G+YolpHZ
将来的にマイグレーションするんじゃねえのって考えると恐い
別の言語に移植できるのかこんなの
0037デフォルトの名無しさん2015/07/29(水) 21:59:45.14ID:A0PWsVoV
非同期なんて見えないgoto文だらけみたいなもの
0038デフォルトの名無しさん2015/07/29(水) 22:22:48.27ID:F3xhAPP9
ちなみにJavaScriptにはasyncが入ったよ
なんだかんだC#のやり方は正しい
0039デフォルトの名無しさん2015/07/29(水) 22:30:49.56ID:ubdcnWrb
C#の機能を取り込もうと周りが真似ていくはずだから移植は難しくはない筈
0040デフォルトの名無しさん2015/07/29(水) 22:59:35.19ID:JV2gkNFI
C++でも次期改定C++17の主要機能の一つとして挙げられている
0041デフォルトの名無しさん2015/07/29(水) 23:13:48.97ID:eAAheHcV
Pythonも3.5でasync/await入る
try~catchの融通の利かなさまでおんなじw
0042デフォルトの名無しさん2015/07/30(木) 01:34:31.84ID:1osdJ7bT
C#知らないけど、凄い詳細な仕様での例外の問題を話しているのかと思って、
わざわざC#のasyncの仕様読んだ

ただの非同期処理を知らない初心者がブーたれてただけだった…
0043デフォルトの名無しさん2015/07/30(木) 01:36:30.16ID:1osdJ7bT
これがC++のTMPより複雑とか、Boostすら触ったこと無いとしか
0044デフォルトの名無しさん2015/07/30(木) 06:07:53.43ID:TTNL8OnS
>>42-43
そんな知識で反応するとか酷過ぎるw
Boostはかなりきれいに整備されてるだろ
難しくはあるが複雑ではない
そして、あんまり落とし穴のような問題は無い
0045デフォルトの名無しさん2015/07/30(木) 06:40:30.06ID:1osdJ7bT
>>44
なんでそんな使った事もないのバレバレなレスが出来るんだwwwww
spiritとか黒魔術の塊なのに
最近は浅い知識で知ったかぶりするのが流行ってるのか?
0046デフォルトの名無しさん2015/07/30(木) 06:47:38.85ID:1osdJ7bT
つか別スレッドの例外を、開始スレッドのブロックで拾えないとか、
平均的Javaプログラマすらわかるような、当たり前すぎてビビる話されてドヤられても困るわ
0047デフォルトの名無しさん2015/07/30(木) 06:50:57.70ID:JffQwXQ6
asyncやTaskがきれいかどうかはともかく、boost以下はないw
0048デフォルトの名無しさん2015/07/30(木) 06:52:34.22ID:TTNL8OnS
>>45
黒魔術と難解性と複雑さの違いは理解し解こうなw
ついでに言うと知っているし、かつて使いまくってたし
今は開発全部C#に移って、だいぶご無沙汰だけどね

#あれは、構文解析機として独立したライブラリで、各種テンプレートの中でも他所への影響が少ない簡潔なライブラリだよ
0049デフォルトの名無しさん2015/07/30(木) 07:13:49.61ID:1osdJ7bT
全然簡潔じゃねえよ糞ワロタwww
中身Phoenixそのままだぞww

最悪そのままスレッド内で例外処理すりゃいいだけの話と、
書き損じたら読めないエラー出す上に、
使う側にも魔術要求するバッドノウハウの塊を一緒にすんなw
0050デフォルトの名無しさん2015/07/30(木) 07:16:43.41ID:TTNL8OnS
>>49
使ってみたけど難しすぎて全然分からなかったと言えよw
簡潔かどうか把握できるところまで辿り着けませんでしたと
0051デフォルトの名無しさん2015/07/30(木) 07:31:38.69ID:1osdJ7bT
>>50
アホか使ってるから言ってんだよw
そんな中身のないレスしかできない時点で、
使ってもいないのがよくわかるw
0052デフォルトの名無しさん2015/07/30(木) 07:37:48.65ID:TTNL8OnS
ちなみに俺だったら、テンプレートライブラリ群の中ではスマートポインタ類を挙げるよ
async/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている

spiritのように完璧な基礎を基盤に順次積み上げているようなライブラリを挙げたりはしない
0053デフォルトの名無しさん2015/07/30(木) 07:47:59.99ID:qgoNGP4Y
こんな時間から真っ赤で大丈夫か
0054デフォルトの名無しさん2015/07/30(木) 07:56:59.31ID:1osdJ7bT
>>52
>async/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている
んー?ちょっと理解できないので、ぜひ説明してみてくれ

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

spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
そのあたりを理解していけば多少は分かってくるかと
0056デフォルトの名無しさん2015/07/30(木) 08:11:05.97ID:HdXuYlDO
誰か相手してやれよ。こんなのがC++erだと思われると悲しいな。
0057デフォルトの名無しさん2015/07/30(木) 08:13:51.40ID:L13dholr
嫌なら使うな
最初から別言語でやれ
0058デフォルトの名無しさん2015/07/30(木) 08:22:49.93ID:1osdJ7bT
>>55
スキル問題の何が質的に同じなんだよ
頼むから少しはasync/awaitとスマートポインタの比較をしてくれ

>spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
>そのあたりを理解していけば多少は分かってくるかと
これもぜひ説明してほしいねw
TMPが関数型言語みたいなもんって話から証明は飛躍させすぎじゃね?w
0059デフォルトの名無しさん2015/07/30(木) 08:28:21.77ID:TTNL8OnS
>>58
これで分からないなら、スマートポインタの問題についての知識すらなさそうなので、論外という事にさせてくださいなw
0060デフォルトの名無しさん2015/07/30(木) 08:34:06.14ID:1osdJ7bT
>>59
本当ただ否定するためだけの言い訳ばっかりだな
お前は中身についてまともに議論できないのに、複雑だの何だの言ってたのか?
0061デフォルトの名無しさん2015/07/30(木) 08:37:28.13ID:TTNL8OnS
>>60
その言葉そっくりそのままお返しですw
議論できるだけの基礎知識あるなら普通に返すよ、喧嘩腰にもしない
0062デフォルトの名無しさん2015/07/30(木) 08:38:22.31ID:1osdJ7bT
そのレスって元から非同期処理そのものが複雑になる要因な時点で、
async/await関係ないじゃん
何を問題視しているのかわからないね
そんなに嫌いならPromiseでも使ってろと
0063デフォルトの名無しさん2015/07/30(木) 08:40:07.48ID:1osdJ7bT
>>61
複雑さを語る割に中身は語らず、例にもスマポとかその程度で
それでいて万人に通じないTMPが簡単と言っちゃう
意味不明すぎるわ
0064デフォルトの名無しさん2015/07/30(木) 08:40:31.54ID:JffQwXQ6
splitなんか昔からある技術を再実装してるだけじゃん
何も新しいことはない
C系言語をスタックフレームの実行モデルから脱却させるという無謀な試みと一緒にするなよe
0065デフォルトの名無しさん2015/07/30(木) 08:48:52.83ID:1osdJ7bT
>>64
async/awaitって言う糖衣構文が難しいと言う割に
TMPが簡単とか言ってるから首をかしげてるだけだよ
その上、問題を非同期処理の複雑さにすり替えてて性質が悪い
0066デフォルトの名無しさん2015/07/30(木) 08:50:33.32ID:TTNL8OnS
>>63
初心者がC++を初めて最初に驚愕するライブラリだけに、一番最初にこんなもの挙げると程度が知れるんですよ
次はもう少し賢そうに振る舞おうねw
0067デフォルトの名無しさん2015/07/30(木) 08:54:43.00ID:G7yjDdda
>>53
全然大丈夫ではなさそうだ
双極性障害(躁病)であろう
0068デフォルトの名無しさん2015/07/30(木) 08:56:33.54ID:1osdJ7bT
>>66
いくらレッテル貼ろうがboostは複雑だよ
もちろん読めなくはないが、話している内容との差がありすぎる
というかお前さん結局、async/awaitの中身に言及しなかったな
0069デフォルトの名無しさん2015/07/30(木) 09:14:46.97ID:TTNL8OnS
async/awaitは、書き方、呼び出し方次第で見た目の実行順序と実際の実行順序が変わって危険
これに対してどうすべきかという話

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

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

内容物を隠すのなら、ガベージコレクタくらい確りしたものである必要がある
参照カウンタのスマートポインタには心配が残るが、ガベージコレクタを心配してコードする人はいないだろう
0070デフォルトの名無しさん2015/07/30(木) 09:37:38.62ID:9H67jH/Q
最後の2行ってC++er流のジョークのつもりなの?
0071デフォルトの名無しさん2015/07/30(木) 09:53:27.70ID:Bcr2sdZI
>>69
>async/awaitは、書き方、呼び出し方次第で見た目の実行順序と実際の実行順序が変わって危険
意味が分からない。これはasync/awaitに限った話なのか
非同期処理ってそういうもんじゃないのか
0072デフォルトの名無しさん2015/07/30(木) 09:55:56.44ID:L13dholr
非同期処理が理解できてない馬鹿だからな
真面目に相手しなくていいよ
0073デフォルトの名無しさん2015/07/30(木) 10:00:59.23ID:Z0rCKaW0
>>70
これ以上煽るな
0074デフォルトの名無しさん2015/07/30(木) 10:07:13.89ID:TTNL8OnS
>>71
async/awaitでなければ、意識する必要はないかもね、完全に意識下に置かれるから
とりあえず色々ライブラリを移行しまくっていて、食らいまくりなのはこれ、finallyの中身が最後であってほしいがそうはならない
問題点はライブラリの event が Task を戻り値としないために管理外にすっぼ抜けてしまう
導出したライブラリで頻発する
殆どのケースでは問題なく見た目通りの順序だから、普段は安心しきってしまってバグ混入と
finallyにはセマフォなどの制御があったりするから、処理が衝突したりする、しかしエラーはない
普段は正常に動いているふりをするので問題に気づくのにも結構かかった
他にもいろいろあるよ

try
{
1番
await 3番
4番
}
finally
{
2番
}
0075デフォルトの名無しさん2015/07/30(木) 11:02:42.02ID:AGRRcWLu
try{}finallyにこだわるねw
0076デフォルトの名無しさん2015/07/30(木) 11:09:17.38ID:AGRRcWLu
TPLでも同じやん?

try{
 Task.Factory.StartNew( ... ).ContinueWith( ..., TaskScheduler.FromCurrentSynchronizationContext() );
}
finally{
 ...
}
0077デフォルトの名無しさん2015/07/30(木) 11:47:18.26ID:HdXuYlDO
https://i-msdn.sec.s-msft.com/ja-jp/library/hh191443.NavigationTrace%28v=vs.120%29.png?cs-save-lang=1&;cs-lang=csharp
この図でも見て落ち着け
0078デフォルトの名無しさん2015/07/30(木) 19:27:24.30ID:FRlaAlkY
プログラマって馬鹿なのか?
複雑で使いにくい言語やライブラリは必然的に利用者が少ない
つまり普及度で比べれば自ずとどちらが洗練された良いものかが客観的にわかる
君たちの感想や妄想で比較するのはナンセンスなのにダラダラとくだらない議論を続けるなよ

さてboost::spiritとasync awaitはどちらがより普及している良い開発ツールなのか?
もう答えは見えたね
0079デフォルトの名無しさん2015/07/30(木) 19:49:24.54ID:AGRRcWLu
つまらん釣りはよせ
0080デフォルトの名無しさん2015/07/30(木) 21:09:44.72ID:1osdJ7bT
メタプロも何のその、スマートポインタをドヤ顔で語り、
他人を無知を許さない歴戦のC++er
しかしそんな歴戦の戦士ですら、shared_ptrをgcの一種とは思わなかった…
0081デフォルトの名無しさん2015/07/30(木) 21:27:38.15ID:DC3tS+uj
議論なんでどこでやってんの?
小学生が夏休みの自由研究発表してるだけだろ
早いね。もうできたんだ
0082デフォルトの名無しさん2015/07/30(木) 21:36:25.76ID:YQW0UVty
>>74
>finallyの中身が最後であってほしいがそうはならない

どんな場合にそうならない?
0083デフォルトの名無しさん2015/07/30(木) 21:37:25.07ID:YQW0UVty
レスをよく見てなかった
82は忘れて
0084デフォルトの名無しさん2015/07/30(木) 22:04:34.70ID:YQW0UVty
>>74
Visual Studio 2015のリリースノートにはawaitのfinally周りが改良された
と書かれているけど直ってない?
0085デフォルトの名無しさん2015/07/30(木) 22:11:47.51ID:AGRRcWLu
>>84
どう治るんだよハゲ
0086デフォルトの名無しさん2015/07/30(木) 22:38:17.31ID:l4sc3Y5p
>>85
これでしょ。

https://www.visualstudio.com/ja-jp/news/vs2015-vs.aspx
> Await が catch ブロックと finally ブロックでも機能するようになりました。このため、一部の非常に巧妙な回避策を使用する必要がなくなりました。
0087デフォルトの名無しさん2015/07/30(木) 22:41:31.61ID:AGRRcWLu
>>74のダボはfinallyブロックが非同期部分の終了時に実行されるべきだって言ってるんだろ?
治るもクソもないだろハゲが
0088デフォルトの名無しさん2015/07/30(木) 23:14:50.63ID:S/Rfe7uQ
>>74の内容の妥当性はさておいて
日本語も読めない>>87は哀れだな
0089デフォルトの名無しさん2015/07/31(金) 01:13:31.81ID:gTceL3gJ
いえ
>finallyの中身が最後であってほしいがそうはならない
って言ってますねモロに
0090デフォルトの名無しさん2015/07/31(金) 08:19:22.46ID:ueomFH8Y
会話すらまともに成り立ってないwww
C#erってこんな
0091デフォルトの名無しさん2015/07/31(金) 08:22:11.89ID:HYWsCY4P
ガキは一日中耐久ラジオ体操してろ
0092デフォルトの名無しさん2015/07/31(金) 09:31:14.46ID:09Ldny0J
夏だなぁ
0093デフォルトの名無しさん2015/07/31(金) 09:35:02.77ID:a7ClvwIj
シーシャーパーってなんか涼しそうな響き
0094デフォルトの名無しさん2015/07/31(金) 10:50:37.05ID:IdVy18vn
クジラ守ってそう
0095デフォルトの名無しさん2015/07/31(金) 14:37:14.32ID:gQtzllmk
いいえ、C#estです
0096デフォルトの名無しさん2015/07/31(金) 21:56:52.32ID:5JIfYwes
シーシャニストのがカッコいい
0097デフォルトの名無しさん2015/07/31(金) 22:32:23.44ID:D+nD3a7O
ペニス
ペニサー
ペニセスト
0098デフォルトの名無しさん2015/07/31(金) 22:48:45.97ID:9Dpcu8YK
ガキは宿題済ませて早く寝ろ馬鹿
0099デフォルトの名無しさん2015/07/31(金) 23:04:31.22ID:gTceL3gJ
finallyさんC++スレでも暴れてたのね
だいぶアレな人だね
0100デフォルトの名無しさん2015/07/31(金) 23:23:49.25ID:gPjpb1D1
finallyさんは、ちょっと冷静になって
自分が何を言っているのか
考えた方が良い。
0101デフォルトの名無しさん2015/08/01(土) 02:05:01.82ID:Y3XWk9yX
>>90
言語としても今一番微妙なポジションにあるからね。
このまま行くと消滅路線。
0102デフォルトの名無しさん2015/08/01(土) 02:23:11.88ID:T8vYSDDC
夏休みの自由研究で、C#でアプリを作ろうと思っています。
本を読んで勉強したのですが、よくわからないです。
どうしたらアプリを作れますか?
0103デフォルトの名無しさん2015/08/01(土) 02:31:45.31ID:QSZH+PJp
ボタンを押すと Hello WORLD と表示される愉快なサンプルプログラム載ってないか?
それがアプリだ
0104デフォルトの名無しさん2015/08/01(土) 02:39:02.21ID:T8vYSDDC
>>103
できればゲームを作りたいです・・・。そんなに凝ったものじゃなくていいんですが。
まず何から始めたらいいんでしょうか?
0105デフォルトの名無しさん2015/08/01(土) 02:53:06.53ID:QSZH+PJp
>>104
まずはテトリスからだな
「C#  テトリス」でググレ
いろいろでてくる
0106デフォルトの名無しさん2015/08/01(土) 03:58:15.72ID:T8vYSDDC
>>105
http://dixq.net/forum/viewtopic.php?t=14298&;p=113977
のソースコードを動かしてみたら、エラーが113個出ました。
50分でテトリス作ってみたとかあるんですが、本当にそんなことができるんですか?
8月中にできないとやばいんですが・・・
0107デフォルトの名無しさん2015/08/01(土) 04:18:39.98ID:kwRHUfwj
ジャンケンマンの方がいいんじゃないの
0108デフォルトの名無しさん2015/08/01(土) 08:20:21.83ID:yECmM48c
ゲーム載ってる本買って、まずパクる
キャラ変えたり、音変えたり、ルール変えたり、好きにすれ
0109デフォルトの名無しさん2015/08/01(土) 13:27:36.22ID:R9VQSBfm
>>106
むいてない
2度とプログラムなんかやるな
0110デフォルトの名無しさん2015/08/01(土) 13:53:48.80ID:UUE723C3
>>106
動的なゲームではなく、まずはFormでも使ってウィンドウにhello worldと表示するだけのプログラムを作ってから質問してくれ
0111デフォルトの名無しさん2015/08/01(土) 14:25:14.32ID:aojbSuUF
まいこんべーしっくまがじんという本を買ってくるんだ
たくさんゲームのプログラムが載ってるゾ
0112デフォルトの名無しさん2015/08/01(土) 18:00:25.27ID:QVboZV4V
GCの性質と値オブジェクトって相性最悪な気がするんだけど
stringはどうやってパフォーマンスを担保してるの?
0113 ◆QZaw55cn4c 2015/08/01(土) 19:26:52.48ID:KBiDhOrm
>>112
immutable
0114デフォルトの名無しさん2015/08/01(土) 19:44:47.02ID:4FytA4pZ
値型はスタックに確保されるし
Stringは値型じゃないし
何がなにやら
0115デフォルトの名無しさん2015/08/01(土) 19:46:39.35ID:UepidV+b
stringは特別な存在、とだけ憶えとけば大丈夫
0116デフォルトの名無しさん2015/08/01(土) 20:38:03.25ID:xLNzW59X
>>113
immutableはCoWでもむしろパフォーマンス悪いだろ
0117デフォルトの名無しさん2015/08/01(土) 22:14:12.34ID:aojbSuUF
同じ文字列を使う分には速いゾ
0118デフォルトの名無しさん2015/08/01(土) 23:49:12.00ID:QVboZV4V
>>113-114
意味不明

>>115-117
stringは特別に最適化されたGC処理されるって事?
0119デフォルトの名無しさん2015/08/01(土) 23:58:38.39ID:kwRHUfwj
元の質問が微妙に意味不明だから仕方ないのでは
0120デフォルトの名無しさん2015/08/02(日) 01:21:35.36ID:uppJpE2l
Immutableはlockする必要がないオブジェクトという事だ
GCとは全く無関係ではないが、この場合焦点がボケてるね
0121デフォルトの名無しさん2015/08/02(日) 06:31:34.45ID:dgw1R64K
>Immutableはlockする必要がないオブジェクトという事だ

Itaniumの.NETをまだ使ってる奴がいたらどうすんだよ
x86 CPUが強いメモリモデルだからって無茶すんなタコ
0122デフォルトの名無しさん2015/08/02(日) 12:06:07.57ID:WsWDxjYJ
>>121
デザインパターン入門[マルチスレッド編]くらい読めよ・・・
0123デフォルトの名無しさん2015/08/02(日) 12:17:15.75ID:qgcm2xe/
stringで文字列処理するとオブジェクト数がメチャ増えるからGCと相性が悪い
StringBuilderを使っても引数に渡す文字列は結局オブジェクトだからオブジェクト数の削減にはならない
CLRでは文字列とGCの相性は最悪と言える
0124デフォルトの名無しさん2015/08/02(日) 12:25:36.10ID:tdoSvti6
>stringで文字列処理するとオブジェクト数がメチャ増えるからGCと相性が悪い

ぼく初心者、これの意味が分からない
0125デフォルトの名無しさん2015/08/02(日) 12:25:39.75ID:LFE7g0os
世代別GCなので平気です
0126デフォルトの名無しさん2015/08/02(日) 12:27:03.30ID:LFE7g0os
stringはメモリ以外のリソースを含んでいないのでGCと相性がいいです
0127デフォルトの名無しさん2015/08/02(日) 12:44:13.40ID:qgcm2xe/
>>125
ちょっとしたビジネスロジックに含まれる文字列計算でもすぐに第一世代を圧迫するので平気ではありません

>>126
マネージメモリのみを使う他のクラスのオブジェクト同士で比較すると
オブジェクトの生成が大量発生する文字列はgcと相性が悪いです
0128デフォルトの名無しさん2015/08/02(日) 12:47:30.80ID:+O2Hc9iF
はあ、で、だから何?
言いたいことが言い終わったなら世間からGCされて死ねよ
俺がお前の家に行ってFinalizer実行してやろうか
0129デフォルトの名無しさん2015/08/02(日) 12:56:45.82ID:LFE7g0os
第一世代が圧迫されて、GCが発動して直ちに解放されたら、それでいいじゃないですか
言っている意味が分かりません
0130デフォルトの名無しさん2015/08/02(日) 13:06:24.68ID:wlM1NnFc
文字列計算

↑これの意味からして分からんのだが
0131デフォルトの名無しさん2015/08/02(日) 13:10:24.61ID:qgcm2xe/
>>129
残念ながら第二世代へ昇格してしまうオブジェクトがあるので直ちに解放されるという認識は甘すぎます
0132デフォルトの名無しさん2015/08/02(日) 13:15:42.32ID:LFE7g0os
彼は、おかしなことを言っていると言うことが分からないんですよ
文字列で溢れかえるのは、文字列をたくさん作ったからであって、
そのプログラムの仕様なんですが、彼にはそれが分からないんですね。
GCの無い言語でもdeleteがたくさん発生するわけで、同じことなんです。
GCの有る無しは関係ないということが分からないんです
0133デフォルトの名無しさん2015/08/02(日) 13:54:15.30ID:HOry/lAS
お前らは暇つぶしの相手をさせられてるだけだな
0134デフォルトの名無しさん2015/08/02(日) 14:09:04.38ID:qgcm2xe/
>>132
Cであればメモリを即時解放できます
スタックに文字列を格納したり
ヒープの再利用も容易いです
あなたの理解は素人レベルですよ
0135デフォルトの名無しさん2015/08/02(日) 14:25:14.82ID:LFE7g0os
Cのfreeの処理がどれだけ重い処理なのか知らないのですか?
即時開放=同期処理というだけですが、それがどうかしたんですか?
論理アドレス空間が断片化するのは無視ですか?
0136デフォルトの名無しさん2015/08/02(日) 14:30:15.00ID:qgcm2xe/
>>135
ここまでとは…
Cなら標準のメモリアロケーションに頼る必要はありません
カスタムアロケータで確保した文字列にも既存の文字列用資産を活用できます
しかしC#ではマネージ文字列でなければ便利なライブラリが使えないのです
文字列とCLRひいてはGCの相性はやはり最悪なのでしたとさ
0137デフォルトの名無しさん2015/08/02(日) 14:41:33.06ID:+O2Hc9iF
黙れ
殺すぞ
0138デフォルトの名無しさん2015/08/02(日) 14:43:39.46ID:LFE7g0os
彼の言っている事は意味不明なんですよ。
文字列がGCに向いていないなら、他のすべてのリソースはGCは向いていない
0139デフォルトの名無しさん2015/08/02(日) 14:50:20.59ID:qgcm2xe/
>>138
理解が足りていないのですね
文字列は他のクラスよりはるかに多くのインスタンスを必要とされるものです
ゆえに文字列を通常のGCに当てはめて処理するのは愚かであると言えます
文字列は文字列に最適化された別のメモリ管理システムを使って管理すべきなのです
0140デフォルトの名無しさん2015/08/02(日) 14:50:35.31ID:LFE7g0os
GCが嫌いなら初めからそう書けばよい。
文字列のようなGCの得意分野を持ち出して、向いていない、とか言い出すから分からなくなる。
0141デフォルトの名無しさん2015/08/02(日) 16:12:28.48ID:+B7/KlLQ
いや、別に得意分野じゃないと思うけど…
immutableならなおさら、操作の度に細かいインスタンス出てくるので、
ヒープメモリの管理に割く処理なんて無い方が良い
C++ならスタック内だけで消費されるのも本当
0142デフォルトの名無しさん2015/08/02(日) 16:36:46.05ID:+O2Hc9iF
うるせえ
お前も殺すか
0143デフォルトの名無しさん2015/08/02(日) 16:44:47.75ID:JzmP3MFk
どうしてこんなくだらない話をいつまでも続けられるのか。
暇なのか?馬鹿丸出しだな。
0144デフォルトの名無しさん2015/08/02(日) 16:45:41.27ID:MUxSxVtD
つ 夏休み
0145デフォルトの名無しさん2015/08/02(日) 17:26:37.18ID:4jhYOwvv
うるせーな、メモリ管理したければC++使え
ここは何のスレか言ってみろ
C#はGC使うんだよ
0146デフォルトの名無しさん2015/08/02(日) 17:39:16.04ID:SLv/zRdd
QZに釣られてやがる
0147デフォルトの名無しさん2015/08/02(日) 18:14:35.59ID:/ORiOewr
ラムダ式、LINQ、Taskを普通に使えるスキルのあるC#開発者人口は日本にどのくらいいると思いますか?

うちの会社の連中、そんなもん使わなくてもコーディングできると言って聞きません。
外部社員でラムダ式が使える奴も見たことない。
これが普通なんですかね?
0148デフォルトの名無しさん2015/08/02(日) 18:16:16.70ID:SLv/zRdd
そのC#のラムダ式って不動点コンビネータが構成できない似非じゃなかったっけ.
そんなラムダ式なんか要らない
0149デフォルトの名無しさん2015/08/02(日) 18:23:38.38ID:GEMDX31J
責任取るのが嫌だから導入しねーだけだろ
事なかれ
0150デフォルトの名無しさん2015/08/02(日) 18:35:48.73ID:hYBXycnP
>>147
全体の5%でも居れば良い方じゃね?

とりあえず、うちの社内の人間でラムダ式やらLINQが使えない奴は総じてソースが糞だよ
というかプログラムの学習意欲が全くないから新しい技術を取り込もうという気すらない
0151デフォルトの名無しさん2015/08/02(日) 18:37:32.45ID:mqZtRy/B
>>150
周りに合わせろ雑魚が。
0152デフォルトの名無しさん2015/08/02(日) 18:43:32.27ID:SLv/zRdd
新しい仕様がなんでもいいわけじゃない
ラムダ式はラムダ式であることの意味がない?なもの
0153デフォルトの名無しさん2015/08/02(日) 18:43:44.25ID:UnTn4u7/
>>147
それが普通なのかしらんが
おれの周りもそう
今ので動くから新しいことは覚えない
プログラマーってこんな集まりだったんだって思っている
趣味でプログラムやってるのが俺だけ
0154デフォルトの名無しさん2015/08/02(日) 18:44:50.65ID:hYBXycnP
>>151
10年以上前の技術で止まったままの奴らに合わせる気はないわ
0155デフォルトの名無しさん2015/08/02(日) 19:42:53.76ID:qgcm2xe/
プログラム勉強する時間があったら遊んだ方が有意義に決まってるだろ
0156デフォルトの名無しさん2015/08/02(日) 19:52:54.86ID:WqOvzvBs
お前は死んだ方が有意義だけどな
0157デフォルトの名無しさん2015/08/02(日) 20:13:52.63ID:qgcm2xe/
>>156
でも遊んじゃうんだなぁ〜
めんどくさい事は外注か新人に丸投げしてな
0158デフォルトの名無しさん2015/08/02(日) 20:24:43.63ID:Ofq9w7gw
>>99
C++はもう五年以上やってないし、そっちへは行ってないよ
spiritの人みたいなのならともかく、今となっては現在も技術維持している人に混ざって応えられるだけのレスを返す自信は無いし
また、C++を使った開発予定ももうないので
見つけたのなら、それはキミの仲間だよw
0159デフォルトの名無しさん2015/08/02(日) 20:28:28.25ID:0wmkVz0F
何があったか知らんけど、相手に変なあだ名を付けて呼んでる奴がいたら
8割方そいつが論争に負けた方だw

精神勝利法って奴だな
0160デフォルトの名無しさん2015/08/02(日) 20:42:15.23ID:jaEEYgaD
ソフトウェア技術の進歩は早いから
20歳頃に勉強した技術にいつまでも固執していると、使い物にならなくなって
よく言う、プログラマー35歳定年説ってのに引っ掛かっちゃうよ
0161デフォルトの名無しさん2015/08/02(日) 21:05:04.87ID:OoqJwaHz
>>153
覚えずにやるからとても非効率
そういう輩には旧VBがびったりだわ
0162デフォルトの名無しさん2015/08/02(日) 21:06:42.06ID:ZVKO9GMz
C#のLINQやらラムダ式やら、世に出てから何年経ってると思ってんだ
って話だよな
なんでこんなに普及率が低いのかと
継承だらけのコード書く奴が偉いと思ったら大間違いだ
0163デフォルトの名無しさん2015/08/02(日) 21:16:31.19ID:qgcm2xe/
そういうのは趣味だけにしておけよカス
0164デフォルトの名無しさん2015/08/02(日) 21:18:34.51ID:Ofq9w7gw
新機能が流行らない理由はMicrosoftに落ち着きがないからだろうな
Windows8とか余計なことし過ぎなんだよ
あれでは雨後の筍のようにバズワードに飛びついて刹那の利益を得るイナゴ開発者しか集まらない
細かいバージョンアップは従来の客層には興味のない話だろうし
そして何度もバージョンアップするならある程度まとめて移行する事を考えるだろうし
そのうち、もうちょっと待ってからが延々待ちに変わってしまうよね
0165デフォルトの名無しさん2015/08/02(日) 21:21:44.75ID:OaNtdkYp
javaのswingの継承の階層は凄すぎる
0166デフォルトの名無しさん2015/08/02(日) 21:32:05.14ID:+O2Hc9iF
>>163
お前の存在も冗談なら良かったな
0167デフォルトの名無しさん2015/08/02(日) 21:36:00.70ID:+x5c8m5K
>>160
おれロト7当たったので自主隠居しました
0168デフォルトの名無しさん2015/08/02(日) 21:37:05.83ID:+B7/KlLQ
>>164
過去レスで無思慮にasync批判してた人が
そんな事言っても説得力なさ杉
0169デフォルトの名無しさん2015/08/02(日) 21:39:58.97ID:Ofq9w7gw
>>168
無思慮なのはお前だけだろw
だいぶ調べてみたが、多くのブログでも問題点について色々懸念しつつ使うというのが常套手段のようだしな
0170デフォルトの名無しさん2015/08/02(日) 21:46:09.22ID:0wmkVz0F
WPFは流行らなくて本当によかったw
0171デフォルトの名無しさん2015/08/02(日) 21:49:46.15ID:+B7/KlLQ
>>169
あんな単純な機構に何の懸念があるの?
ちゃんとデコンパイルしたコード見たの?
0172デフォルトの名無しさん2015/08/02(日) 21:49:56.58ID:9q07iZqZ
ひどい、俺がんばったのに・・・・挫折したけど
0173デフォルトの名無しさん2015/08/02(日) 22:19:13.17ID:HOry/lAS
>>169←これtry{}finallyの人?
0174デフォルトの名無しさん2015/08/02(日) 22:21:35.57ID:Ofq9w7gw
WPFはそのうちATLみたいな微妙な物になってしまいそうな予感はしなくもない ^^;
0175デフォルトの名無しさん2015/08/02(日) 22:25:58.33ID:wrwHaPDN
HTMLでローカルアプリの画面が作れたら
凄く興味あるけど、ニッチなXMLとか
嵌ったら抜け出すの大変そうで関わりたくない。
0176デフォルトの名無しさん2015/08/02(日) 22:28:09.68ID:Ufblihje
HTAが泣いてるぞ
0177デフォルトの名無しさん2015/08/03(月) 01:51:07.90ID:pNSXFoy6
リフレクションってもう使う意味ないですよね?
dynamic型を使う方がいいですよね?
0178デフォルトの名無しさん2015/08/03(月) 12:38:55.67ID:R9pQU16a
>>162
C#のラムダ式はYコンビネータを記述できない紛い物

無名デリゲートで使うだけならまだしも、
>>147 のようにC#erの実力や進取スタンス判定に使うなど
プログラミングの基本がわかっていない馬鹿としかいいようがない
害になるから消えてほしい
0179デフォルトの名無しさん2015/08/03(月) 13:31:25.78ID:CtQaDoTD
>>178
ラムダ式を理解できない老害こそ消えるべき♪
0180デフォルトの名無しさん2015/08/03(月) 15:01:00.11ID:gHG/w8Da
不動点コンビネータだのYコンビネータだの
言ってみたかったんだよね
0181デフォルトの名無しさん2015/08/03(月) 18:16:27.74ID:LdMIlPMJ
不動点コンビネータが記述できないものはラムダでない
という持論が世界普遍的に正しいものと信じて盲信する
キチガイのタワゴトです
0182デフォルトの名無しさん2015/08/03(月) 18:42:16.07ID:scYGV4Wn
たわごとなどききたくない
0183デフォルトの名無しさん2015/08/03(月) 19:32:53.72ID:4R/NRCjC
Microsoftは不要な技術を切り捨てただけ
コンビネータ君もまた不要な人材なので社会から切り捨てられる運命なんだね
0184デフォルトの名無しさん2015/08/03(月) 20:35:34.82ID:QrF7rs+g
不動点コンビネータが記述できないことがどれだけ実務の支障になるんだ?
煽りじゃなく具体例を教えてくれや
0185デフォルトの名無しさん2015/08/03(月) 21:05:47.80ID:2JpaSVHC
Zコンビネータなら書けるし
書けてもいいことないけど
0186デフォルトの名無しさん2015/08/03(月) 21:59:21.98ID:fkEOVG2I
Yコンビネータ使うような案件はF#に任せればいいだけだ
全部C#にするのがまず間違っとる
0187デフォルトの名無しさん2015/08/03(月) 22:20:26.90ID:jNbM75sK
動きゃいいんだよ
0188デフォルトの名無しさん2015/08/03(月) 22:20:38.41ID:VRwLh7Nw
Yコンピネータが無いと書けないコードや利点があるとすれば
それは、ラムダ式を引数にしている関数が再帰をしたい場合とかだろう
(x) => x == 0 ? 1 : x*thisfunc(x)
みたいな感じで、自身の関数名をキーワードとして書ければ良い気がする、直接的で分かりやすい
Yコンピネータがあれば無くてもできるというがコードが汚い
あと、名前空間を汚さずに済むケースが増えるなどかな
汚れの少ない名前空間ではインテリセンスがうまく機能してくれるから、重要といえば重要
ただ、これも名前空間をもっと綺麗に整理できるような機能があってくれた方がいいな
関数内クラスとか欲しい
0189デフォルトの名無しさん2015/08/03(月) 22:24:33.54ID:fkEOVG2I
いや、Zは書けるんでしょ?
0190デフォルトの名無しさん2015/08/03(月) 22:25:11.33ID:7E1soqtP
finally君は何時になったらC#卒業するの?
0191デフォルトの名無しさん2015/08/03(月) 22:29:55.11ID:VRwLh7Nw
dynamic 使って書くかねw
0192デフォルトの名無しさん2015/08/03(月) 22:38:49.23ID:fkEOVG2I
よく見たらコン"ピ"ネータ
何故知ったかぶりするのか
0193デフォルトの名無しさん2015/08/03(月) 22:38:55.27ID:vbPvRk2A
「ラムダ式」などと誇大にいわず,無名デリゲートでお茶を濁しておればよかったんだが
0194デフォルトの名無しさん2015/08/03(月) 22:44:36.51ID:VRwLh7Nw
>>193
ラムダ式はLINQで式ツリーを作ったもんだから必要になったから別途用意したんじゃないかと
無名デリゲートではコンパイルしてSQL文を吐き出すといった操作はできないから
0195デフォルトの名無しさん2015/08/04(火) 03:36:34.18ID:Ru0/ho15
本当ただの簡易AST変換だな
0196デフォルトの名無しさん2015/08/04(火) 12:27:43.87ID:m+fooKhS
わしのラムダは108式まであるぞ
0197デフォルトの名無しさん2015/08/04(火) 13:57:48.78ID:bMUTQ2fC
>>193
まぁこれでこそC#って感じだけどな
もちろん悪い意味で
0198デフォルトの名無しさん2015/08/04(火) 16:48:14.90ID:wPc1LIE6
ヒント :夏休み
0199デフォルトの名無しさん2015/08/04(火) 17:04:57.64ID:NUOEqkl8
仕事ができなくて溜まったストレスぶちまけてるおっさんだろw
学生が暴れているようには見えんわ
0200デフォルトの名無しさん2015/08/04(火) 17:34:46.86ID:aAgYc1Dv
質問があります。

これまでC#でCSVデータをシリアル化して外部ファイルに出力する
機能を実装していました。この「シリアル化したファイル」というのは
WEB開発言語PHPでシリアル化したファイルと互換性はありますか?


例えば、PHPでシリアル化したデータをWEBサーバ上に配置し
クライアントツール(C#)からそのシリアル化したデータを
ローカルにダウンロードし、そして逆シリアル化して復元
といった運用は出来のでしょうか?
0201デフォルトの名無しさん2015/08/04(火) 17:49:57.34ID:NUOEqkl8
C#にCSV用の標準ライブラリってあったっけ?
自前で実装したなら、分かるのは実装した本人だけかと
ちなみに自分はexcelに仕様を合わせたライブラリを作っている
0202デフォルトの名無しさん2015/08/04(火) 18:09:56.36ID:0uDnfCnt
>>201
そういう問題じゃないと思うけどw
0203デフォルトの名無しさん2015/08/04(火) 18:14:08.39ID:wPc1LIE6
「CSVデータをシリアル化して外部ファイルに出力」したらテキストのCSVファイルになるんじゃなくて?
0204デフォルトの名無しさん2015/08/04(火) 18:47:05.52ID:rfwH7+bZ
シリアル化って言いたかっただけじゃないの?
0205デフォルトの名無しさん2015/08/04(火) 18:49:56.95ID:N21FScZA
CSVはそれ自体が既にシリアル化されています
0206デフォルトの名無しさん2015/08/04(火) 19:07:37.25ID:JacjvlNa
>>200
CSVファイルと言うのは通常テキストファイルの一種なので
それを使う事を普通はシリアル化/逆シリアル化とは呼びません

CSVファイルは細かい仕様がいろいろあるので
CSVというだけでは互換性があるかどうかは判断できません
0207デフォルトの名無しさん2015/08/04(火) 19:15:23.79ID:qaA+gaVg
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)を使う
0208デフォルトの名無しさん2015/08/04(火) 19:19:05.97ID:r/hdf4e8
タブ使いたいときはどうすんだよ低能
0209デフォルトの名無しさん2015/08/04(火) 19:26:03.23ID:aAgYc1Dv
>>206
そうなんですね。ありがとうございます。

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

もっともぱくれる人はそもそもぱくったりしないで自分でそういった用途のツールは
作れるので被害数は少ないのかな〜なんて悩んでます。
0210デフォルトの名無しさん2015/08/04(火) 19:29:44.57ID:rfwH7+bZ
暗号化と間違えてる?
0211デフォルトの名無しさん2015/08/04(火) 19:33:30.97ID:NUOEqkl8
>>209
それシリアル化と違うw
0212デフォルトの名無しさん2015/08/04(火) 19:43:04.44ID:4wCZUsr6
さすが、PHPer
0213デフォルトの名無しさん2015/08/04(火) 19:50:47.06ID:2RIpmI50
PHPerとVBerは低脳、みんな分かっていることじゃないか
0214デフォルトの名無しさん2015/08/04(火) 19:52:41.23ID:NUOEqkl8
揚げ足取りと煽りしかできない低能の例 >>212-213
0215デフォルトの名無しさん2015/08/04(火) 20:15:51.50ID:si5ERY1h
>>200のシリアル化が暗号化の事言っているなら出来るでしょ
0216デフォルトの名無しさん2015/08/04(火) 20:21:13.38ID:D63J00pB
C#もVBも変わらんやろ
0217デフォルトの名無しさん2015/08/04(火) 20:23:11.10ID:DSzfOyI8
根本的な頭の差だよな
0218デフォルトの名無しさん2015/08/04(火) 20:30:05.37ID:aAgYc1Dv
これで保存したらシリアル化してる事になるよね?
C#で保存したファイルと同じデータをWEBサーバ側(PHP)で作る事は出来ますか?

BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, Instance);
0219デフォルトの名無しさん2015/08/04(火) 20:34:50.51ID:VO4nX6cY
もうXMLでシリアライズ()しとけよ
誰でも見れるけどな!
0220デフォルトの名無しさん2015/08/04(火) 20:37:30.69ID:tHoFWEHK
PHP側でBinaryFormatter実装すれば

暗号化が目的ならパスワードZIP使うのが無難
0221デフォルトの名無しさん2015/08/04(火) 20:42:06.66ID:aAgYc1Dv
>>219
じゃー、いみねーだろ


>>220
解読ぱすわーどをreflectorとかでのぞかれちゃいますよね?
0222デフォルトの名無しさん2015/08/04(火) 20:47:55.07ID:DSzfOyI8
BinaryFormatterがOKなら暗号化いらねーだろw
0223デフォルトの名無しさん2015/08/04(火) 20:47:56.74ID:NUOEqkl8
既にCSVの出力があるなら、それに独自の暗号化で対応するのが良い気がする
単純な暗号化でも謎のフォーマットであれば解読する気になるのは難しいから
それよりシリアライズという言葉に拘っても仕方ないでしょ
0224デフォルトの名無しさん2015/08/04(火) 20:52:14.90ID:DSzfOyI8
reflector使われる前提で謎のアルゴリズムも糞もあるのか?
0225デフォルトの名無しさん2015/08/04(火) 21:03:17.96ID:NUOEqkl8
>>224
お前らがそうやって煽るから目的見失って意固地になってんのが問題なんで
0226デフォルトの名無しさん2015/08/04(火) 21:03:56.06ID:tHoFWEHK
クライアントに置くプログラムだったら何しても無駄
0227デフォルトの名無しさん2015/08/04(火) 21:06:55.71ID:DSzfOyI8
reflectorでパスワードが見えなければいいなら
データをwebからダウンロードする時にパスワードを一緒に発行したらいい
0228デフォルトの名無しさん2015/08/04(火) 21:11:56.51ID:aAgYc1Dv
>>223
サンキュー!そうします。

>>224
黙れ糞

>>227
通信を監視されたらパスワードばれるよね?
0229デフォルトの名無しさん2015/08/04(火) 21:14:00.50ID:DSzfOyI8
パスワードがどうやってデータに含まれてるか、お前が漏らさなきゃ大丈夫だよ
小便垂れ小僧
0230デフォルトの名無しさん2015/08/04(火) 21:16:18.14ID:HOSQCMMN
SSL通信を監視してパスワード抜いて暗号化のされ方を調べて復号化するのに比べたら
Reflectorでコード読んで同じ方法で戻すなんて赤子の手をひねるようなもの
0231デフォルトの名無しさん2015/08/04(火) 21:19:21.40ID:m7aLZgrl
いまどきSSL通信なんてどうやってやるんだよ
SSLは10年以上前に廃れただろ
0232デフォルトの名無しさん2015/08/04(火) 21:21:56.64ID:NUOEqkl8
売り言葉に買い言葉になっているだけで、当初の投稿内容を見る限りそこまでの暗号化が必要な何かには見えない件w
0233デフォルトの名無しさん2015/08/04(火) 21:25:30.10ID:HOSQCMMN
>>231
今時HTTPSを全く使わずに生活してるとかどこの原始人だよw
0234デフォルトの名無しさん2015/08/04(火) 21:34:50.08ID:XZl3Vdz7
TLS言いたいだけだろ、当人はw
0235デフォルトの名無しさん2015/08/04(火) 21:42:30.48ID:GsFgeSUy
なんか悪いほうに悪いほうに行ってるな
スレの質的に
0236デフォルトの名無しさん2015/08/04(火) 21:47:08.67ID:wPc1LIE6
いやこんなんもんやで
0237デフォルトの名無しさん2015/08/04(火) 21:54:10.88ID:8AFF5O0U
>>201
> C#にCSV用の標準ライブラリってあったっけ?
.NETFramework だけど Microsoft.VisualBasic.FileIO.TextFieldParser クラスが定番みたいだな
0238デフォルトの名無しさん2015/08/04(火) 21:57:51.71ID:si5ERY1h
>>232
>>209みたらパスワードZIPが最適解の様に思えるわ
0239デフォルトの名無しさん2015/08/04(火) 22:00:16.11ID:QCZq3/o/
ユニコード文字もマトモに扱えないZIPが最適とな
0240デフォルトの名無しさん2015/08/04(火) 22:01:37.91ID:GsFgeSUy
>>238
なんで「最適解」って言ったし?
「最適」じゃなくて
0241デフォルトの名無しさん2015/08/04(火) 22:48:49.48ID:a+hgGQs8
>>240
それは一つ前の自分のレス読んだ上で言っているのか?
0242デフォルトの名無しさん2015/08/05(水) 00:46:50.12ID:Nv7QXLgv
>>229
お前と違って皆スキルたけーんだよ。じじぃ
0243デフォルトの名無しさん2015/08/05(水) 00:48:53.88ID:w1UWuDWC
>>232
オメーが引き受けたんだからオメーがきっちり回答しろボケ
0244デフォルトの名無しさん2015/08/05(水) 01:13:56.73ID:jL5pDRik
初心者ですが
このスレ全部読めばアプリ1本つくれますか?
0245デフォルトの名無しさん2015/08/05(水) 01:17:03.57ID:bdT2SiZU
>>244
ハローワールドなら作れるんじゃね?
0246デフォルトの名無しさん2015/08/05(水) 06:48:51.18ID:12Hajjty
>>243
本人もう方向性決めてるんだから、この話はもう終わってるんだよ
能無しは黙るという事を覚えろ
0247デフォルトの名無しさん2015/08/05(水) 07:13:55.18ID:w1UWuDWC
>>246
いちいちしょうもない話題で慣れ合いするわ
初心者質問引き受けてかき回すわ
お前こそ能無しなんだから黙っとけよ
0248デフォルトの名無しさん2015/08/05(水) 07:17:40.22ID:tQ69mcSf
じゃあハローワールドの書き方教えてください
0249デフォルトの名無しさん2015/08/05(水) 07:29:23.76ID:e4gAPQI9
いやです
0250デフォルトの名無しさん2015/08/05(水) 09:02:51.39ID:4qiJRodC
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

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

C:\>
0251デフォルトの名無しさん2015/08/05(水) 09:37:48.34ID:nxXw/daG
>>246
お前はスレ分けてる理由理解しとけよチンカス
0252デフォルトの名無しさん2015/08/05(水) 09:52:29.59ID:dcbhMYr4
http://jbbs.shitaraba.net/netgame/14889/
C#おしえてくださ
0253デフォルトの名無しさん2015/08/05(水) 15:33:24.08ID:bdT2SiZU
2Dゲームの当たり判定で透過pngを読み込んで幅*高さのbool配列を作る。
透明部分をfalseにして残りはtrue。
これで当たり判定をしたいんだけど重いかな?
0254デフォルトの名無しさん2015/08/05(水) 16:04:06.01ID:IqH75krm
最初矩形で判定してあたってたら詳細チェックかな?
まあ労力の割に報われない気もする
0255デフォルトの名無しさん2015/08/05(水) 16:40:58.05ID:bdT2SiZU
>>254
その方法いいですね。流石に最初からしてたらマズイか。
式が乗ってるサイトとかないですかね?
0256デフォルトの名無しさん2015/08/05(水) 17:05:58.09ID:IqH75krm
まいかいググるからサイトはわからん、、AABBでググるとかどうかなあ
0257デフォルトの名無しさん2015/08/05(水) 17:23:40.78ID:mF9W7r6V
そもそもピクセルごとに厳密にヒットテストする必要があるのか疑問だけど、
BitBltを使ったら思いっきり高速化できそうな気が
0258デフォルトの名無しさん2015/08/05(水) 19:35:05.62ID:/gxT3Aye
ヒットテスト??
0259デフォルトの名無しさん2015/08/05(水) 19:37:58.35ID:spC4qo2X
距離で判定だろ
矩形判定したら大抵は直感的じゃないのと条件分岐回数が増える
0260デフォルトの名無しさん2015/08/05(水) 20:46:05.43ID:bdT2SiZU
短形を回転させたのは短形じゃ無理だよな。
当たり判定ってどれが一番速いの?
0261デフォルトの名無しさん2015/08/05(水) 20:50:23.38ID:A44YML9F
中心点からの距離
0262デフォルトの名無しさん2015/08/05(水) 20:51:18.27ID:pM9rsz35
た....矩形w
0263デフォルトの名無しさん2015/08/05(水) 21:15:47.26ID:7hSDQEcX
クソワロタ
0264デフォルトの名無しさん2015/08/05(水) 21:22:56.01ID:e4gAPQI9
あー>>260。ちょっと職員室に来なさい。
0265デフォルトの名無しさん2015/08/05(水) 21:24:13.47ID:/SddKZ7Q
260のソースコードは短形で統一されているのかな
ちょっと気になるから見てみたいわ
0266デフォルトの名無しさん2015/08/05(水) 21:28:51.37ID:HSrSK7kE
>>237
固定長も扱える優れものかと思ったら、ホントに文字数だからバイト数で指定できるようにしてほしいの
0267デフォルトの名無しさん2015/08/05(水) 21:30:58.55ID:/lT/VJHo
画像は矩形なんだから、最終的にピクセル単位で判定するんなら矩形でしょ
円使ったら単純な実装だと矩形に比べて無駄にピクセル単位の判定の頻度が増えるから
全ピクセルが収まるような最小の円を求めるとかしなきゃいけなくて無駄に面倒
まあ普通は複数の円の組み合わせで十分じゃないかな
回転や拡大縮小も特別な考慮がいらないし速いしベクトル計算で統一できてソース綺麗になるし
0268デフォルトの名無しさん2015/08/05(水) 21:31:34.62ID:12Hajjty
ゲームとか作らんし使ったこともないけど System.Numerics.Vectors にマルチメディア拡張命令を直接生成できる構造体があるという話をふと思い出した
サクッとググッてみたら、ビットごとの and or もってるから
これを使えば 128bit まとめてテストできるんじゃないかな
これでたいぶ早くなるかと

#すでに上がっているBitBltの方がもっと早そうなので、オマケ程度に
0269デフォルトの名無しさん2015/08/05(水) 21:40:49.37ID:/lT/VJHo
>>268
最適化は小手先の細工の前にアルゴリズムを工夫するんだよ。
例えば画像を小さな領域に分割しておけば、全部透明な領域は判定しなくていいだろ?
C++&SSE&インラインアセンブラで書き直したりするより遥かに速くなる。
0270デフォルトの名無しさん2015/08/05(水) 21:44:27.09ID:12Hajjty
>>269
俺凄いってそこまでアピールしないと生きていけないのかよ、この屑w

#見ての通りオマケ程度にみてくれという話なんだが
0271デフォルトの名無しさん2015/08/05(水) 21:44:45.24ID:pM9rsz35
>>269
どっちかって言うとビット演算を使う方が王道で、小さな領域に分割云々の方が余程小手先の話に聞こえるけど。
0272デフォルトの名無しさん2015/08/05(水) 21:47:10.94ID:nxXw/daG
いちいち#でオフコメ気取ってるのは何なの?
死ねよクソ/.er
0273デフォルトの名無しさん2015/08/05(水) 21:51:13.43ID:y9IIWzjN
2Dの当たり判定なら、モートン順序が有名
http://marupeke296.com/COL_2D_No8_QuadTree.html
0274デフォルトの名無しさん2015/08/05(水) 21:56:08.41ID:/lT/VJHo
>>271
それはリニアサーチが王道でクイックソートは小手先だと言ってるようなもの
02752742015/08/05(水) 21:58:24.93ID:/lT/VJHo
訂正
クイックソートじゃなくてバイナリサーチの間違い
0276デフォルトの名無しさん2015/08/05(水) 22:02:40.30ID:12Hajjty
うぜぇ無能だな
自分、この手の分野まったくのド素人だが、それでも同じアルゴリズムネタなら >>273 の話の方がハイクオリティーな話だなと分かるし、>>274 無能って分かるんだけどw
>>273 参考になりました、機会があったら採用したい
0277デフォルトの名無しさん2015/08/05(水) 22:03:52.92ID:e4gAPQI9
クソども
仲良くしろよ?
0278デフォルトの名無しさん2015/08/05(水) 22:06:53.46ID:/lT/VJHo
>>273はまさに領域分割であって、
ビット演算がどうのというのは大した問題じゃないんだが
本当に何もわかってないんだな
0279デフォルトの名無しさん2015/08/05(水) 22:10:51.37ID:e4gAPQI9
ゲーム以外で当たり判定が必要になる局面ってあるのかな

もっとUIがインタラクティブ()になったら多用されるのかな
0280デフォルトの名無しさん2015/08/05(水) 22:12:25.26ID:w1UWuDWC
しかも>>273のアルゴリズムって当たり判定の常套手段だしな
0281デフォルトの名無しさん2015/08/05(水) 22:14:01.89ID:/lT/VJHo
>>279
シミュレーション  まあそのまんまだが
もっと身近な例だとマウスでボタンをクリックするのも当たり判定だよ
0282デフォルトの名無しさん2015/08/05(水) 22:16:34.25ID:12Hajjty
モートン順序は高次統計データの範囲限定に使えそうな気がした、次元の呪い除けになりそう
これを三次元に拡張するなら、xyxy... と並べる所を xyzxyz... と並べればいいかななど、一工夫すれば行ける?
高次元でも以下同様な感じで
あとで応用考えたい
0283デフォルトの名無しさん2015/08/05(水) 22:19:00.22ID:pM9rsz35
面倒くさいんで全部は読んでないが、>>273は当たり判定のアルゴリズムじゃなくて
当たり判定をしなくていいオブジェクトをふるいにかけるアルゴリズムじゃないのか?
0284デフォルトの名無しさん2015/08/05(水) 22:19:49.62ID:12Hajjty
>当たり判定をしなくていいオブジェクトをふるいにかけるアルゴリズムじゃないのか?
無能には分からないのさw 無能だから
0285デフォルトの名無しさん2015/08/05(水) 22:21:24.58ID:ezlo0CHQ
>>283
そうよ
正確に言うといろいろあるふるいのひとつにすぎん
0286デフォルトの名無しさん2015/08/05(水) 22:23:16.73ID:pM9rsz35
>>285
だったら少なくとも質問者の役にはあんまり立たないね
0287デフォルトの名無しさん2015/08/05(水) 22:29:15.39ID:w1UWuDWC
>>282
いちいち自己愛高めな奴だなあ
確かに3次元衝突判定にも使うが
多変量解析で木分割してったら次数上がるほど指数関数的に増えるだろ
自分で考えるなんて無駄な事するより学習に時間割いとけよ
0288デフォルトの名無しさん2015/08/05(水) 22:29:35.82ID:e4gAPQI9
>>281
まあカーソルのホットピクセルとかの1ピクセルの当たり判定は除外しようよ
0289デフォルトの名無しさん2015/08/05(水) 22:32:44.74ID:y9IIWzjN
当たり判定アルゴリズム≒いらない物をふるいにかけるアルゴリズム
なぜならあたり判定そのものの速度はそれ以上改善の余地がないので
無駄な計算を省く方向で考える
0290デフォルトの名無しさん2015/08/05(水) 22:37:05.34ID:12Hajjty
>>287
新しいネタあれば使ってみる
やってみて使えそうだったら使うし、使えなさそうなら捨てる、それだけだよ
見た感じシンブルなアルゴリズムに見えるから、これに割く時間的コストは少々で済みそうだし
ほんと、噛みつかないと気が済まない人だねw
0291デフォルトの名無しさん2015/08/05(水) 22:37:53.90ID:HSrSK7kE
なんか早いね。シーシャープ流行ってる?
0292デフォルトの名無しさん2015/08/05(水) 22:41:52.30ID:w1UWuDWC
>>290
解析で探索領域を限定する時に、
データも見ずに事前の分割方法で木分割なんてしないだろ?
それをわかってて言ってるとは思えないから突っ込んでるわけ
0293デフォルトの名無しさん2015/08/05(水) 22:43:17.03ID:12Hajjty
>>292
そんなもんとりあえずぶちかましてみて、問題があったらその時考えりゃいいんだよw
めんどくせー奴だな
0294デフォルトの名無しさん2015/08/05(水) 22:45:08.73ID:y9IIWzjN
>>291
単に誰にでも分かりやすい話題が出ただけでそ

最近、2chへの書き込み量はめっぽう減りましたね
しかし、誰にでも答えられる簡単な餌が投入されると、
直ちにたくさんのレスが帰ってきますので、たくさんの人がWatchしているもよう
たくさんの人が見ているのに、書き込みが少なくて流れにくいということは、
広告やスパムの餌食にあいやすいということでしょうか
0295デフォルトの名無しさん2015/08/05(水) 22:50:15.10ID:4qiJRodC
僕ときれいなお姉さんとの当たり判定を教えてください
0296デフォルトの名無しさん2015/08/05(水) 22:51:58.37ID:w1UWuDWC
>>293
だから基礎からやれってば
0297デフォルトの名無しさん2015/08/05(水) 22:52:12.04ID:HSrSK7kE
>>295
まず駅にゆきます
0298デフォルトの名無しさん2015/08/05(水) 22:57:02.95ID:12Hajjty
>>296
多分この分野でもお前よりだいぶ自分の方が詳しいと思うので(笑)

#時間は有限、無駄には出来ない。すぐできるものはすぐやれ!、これが俺流
0299デフォルトの名無しさん2015/08/05(水) 22:59:18.61ID:p4ECD10b
なら死ねよ今すぐに
0300デフォルトの名無しさん2015/08/05(水) 23:00:36.23ID:BSV0tPUM
話を無駄に長引かせたお前ほど無駄な存在はいないな
0301デフォルトの名無しさん2015/08/05(水) 23:01:26.69ID:3yG9sQVS
#は半コテでも目指してるのか
0302デフォルトの名無しさん2015/08/05(水) 23:01:51.67ID:nxXw/daG
おし、締まったな
ついでにカッコ良く自害してくれや
0303デフォルトの名無しさん2015/08/05(水) 23:03:11.89ID:PXH9N0kW
小学生か中学生か知的障碍者の書いた様なレスばっかだなw
0304デフォルトの名無しさん2015/08/05(水) 23:03:15.88ID:zxDgQD7q
目障りなら#をNGしてくださいってことでしょ
0305デフォルトの名無しさん2015/08/05(水) 23:04:10.44ID:/SddKZ7Q
C#スレで#をNGにするのか
0306デフォルトの名無しさん2015/08/05(水) 23:06:51.80ID:0I3R2SM7
正規表現NGができるなら^#でいいのかな
0307デフォルトの名無しさん2015/08/05(水) 23:07:33.69ID:bdT2SiZU
今まで短形って思ってた・・・矩形なのね。
0308デフォルトの名無しさん2015/08/05(水) 23:08:11.96ID:/lT/VJHo
>>286
領域に分割してピクセル単位の判定をするとして、
一方が完全透明→はずれ
両方が完全不透明→あたり
一方がグレーでもう片方が完全透明でない→該当領域を分割してそれぞれ再度判定
と繰り返していけばピクセル単位の判定ができるはずだから、
ツリーの更新や探索で似たような方法が使えないかな
0309デフォルトの名無しさん2015/08/05(水) 23:14:34.62ID:y9IIWzjN
>>308
それでうまくいくんかね
普通は
親領域で判定してハズレ→完全にハズレ
親領域で判定してアタリの可能性有り→子領域で再判定
だと思うんだが
0310デフォルトの名無しさん2015/08/05(水) 23:19:25.78ID:/lT/VJHo
>>309
それをピクセル単位の判定に適用すれば>>308になると思うんだけど、違ってる?
透明とか不透明とかグレーとかいうのは領域内の透明度の平均値と考えてほしい
0311デフォルトの名無しさん2015/08/05(水) 23:24:17.12ID:w1UWuDWC
>>298
何の高次元を言ってるのかしらんけど
少なくとも文書間距離なんかの近傍探索じゃ使い物にならないよ
そこまでいうなら突き進めばいい、そして戻ってくるな
0312デフォルトの名無しさん2015/08/05(水) 23:25:22.08ID:y9IIWzjN
なるほど
0313デフォルトの名無しさん2015/08/05(水) 23:38:24.81ID:HSrSK7kE
次に服を脱ぎ…なんか荒れてんなあ
0314デフォルトの名無しさん2015/08/06(木) 01:19:21.09ID:QYfkW8HM
finally野郎以降が酷い
エナジードレイン10回食らってもこうはならんわ
0315デフォルトの名無しさん2015/08/06(木) 01:26:49.79ID:WAl/fNJ8
そりゃ、初登場の最初の洗礼が >>16 だからな
0316デフォルトの名無しさん2015/08/06(木) 01:55:10.84ID:rwLMabch
C#相談室(質問に答えるとは言ってない)
0317デフォルトの名無しさん2015/08/06(木) 04:44:04.83ID:Op1qw5HR
美容師カオリのダイエット日記

http://kaori-diet.sblo.jp/
0318デフォルトの名無しさん2015/08/06(木) 09:10:55.30ID:DlVmD4pB
結局AABBは採用しないんか
0319デフォルトの名無しさん2015/08/06(木) 11:26:40.44ID:kBFzylAm
>>315
わろたw
厳しく適切な>>16であったことが今わかる
0320デフォルトの名無しさん2015/08/06(木) 20:22:19.09ID:kl/392J0
C#でこれまで hage_list.txt を test.exe から読み込んで
その内容を画面に表示するプログラムを作っていました。

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


リソースファイルとか何かで昔exeにガッチャンコした事が
あるのですが忘れてしまいました
どなたか方法をご教示くいださい。
0321デフォルトの名無しさん2015/08/06(木) 20:32:44.41ID:MITLwi1y
リソースファイルでggr
0322デフォルトの名無しさん2015/08/06(木) 20:34:44.53ID:Zc/oKMcW
リソースエディタで開けば普通に見えるけどね
0323デフォルトの名無しさん2015/08/06(木) 20:46:00.45ID:DlVmD4pB
埋め込みと暗号化は別に考えないとな
併用は可能
0324デフォルトの名無しさん2015/08/06(木) 20:50:57.18ID:h5fzoUK9
暗号化するんならリソースとして組み込まなくてもいいんじゃねと思ってしまう
0325デフォルトの名無しさん2015/08/06(木) 20:52:36.14ID:WJS3pxUO
なんでリソースなんだ??
データを内部に持つか外部に持つかは内容で決まるものだぞ?

見られたら恥ずかしい程度なら文字列のBASE64表現が簡単でオススメ
0326デフォルトの名無しさん2015/08/06(木) 20:57:51.83ID:U/Ws3l7N
ユーザーに容易に触らせるか触らせないかの違いもあるだろう
0327デフォルトの名無しさん2015/08/06(木) 20:58:09.44ID:WJS3pxUO
>>323-324
昔暗号化やろうとしたけど単体アプリで安全な鍵管理できなくてショックを受けた
0328デフォルトの名無しさん2015/08/07(金) 09:10:01.50ID:6Ol1nxYi
Cの20年前のコーディングルールをC#に適用するのは頼むからやめてくれ
const変数は大文字で書けとか、条件式は左に値を書けとか
コードレビューでの指摘はそんなんばっか。まじで頭痛い
0329デフォルトの名無しさん2015/08/07(金) 09:47:11.85ID:vg93TV/0
てめえの職場の話はマ板でやれ
0330デフォルトの名無しさん2015/08/07(金) 11:08:14.50ID:Yq0yocgf
静的コードチェックツールぐらい使いなよ
0331デフォルトの名無しさん2015/08/07(金) 11:43:48.15ID:3jkMWAMO
>>330
ふつーの会社は中で何するか分からないソフトは使わないよ。
君がテキトーだということはよく分かった。
0332デフォルトの名無しさん2015/08/07(金) 11:46:14.75ID:nibSxy0k
何にもされねーよ
ツール通したらコードが書き換わるとでも思っているのか
0333デフォルトの名無しさん2015/08/07(金) 12:27:17.42ID:Ge1vGbPu
書き換えなくても外部に送信するかもしれない

とかなんとか言って欲しいのか
C#関係ないから失せろカス
京浜東北線の電線で感電して死ね
0334デフォルトの名無しさん2015/08/07(金) 13:15:27.67ID:AXM43nM4
>>320
ソリューションエクスプローラのプロジェクトのプロパティーを開くと、そこにリソースの項目があるので、そのファイルを追加すればいいよ
リソースへのアクセスの仕方は Properties.Resources.TextFile1 みたいな感じでできる

#否定と罵倒しかしない奴は死ねばいいと思うんだ
0335デフォルトの名無しさん2015/08/07(金) 13:21:07.74ID:R/QQtRSb
>>334
お前まだ生きてたの?
死ねって言ったろ
家どこ?
手伝うから
0336デフォルトの名無しさん2015/08/07(金) 13:27:59.28ID:EOKzEcHq
楽しいか?お前の生き方
0337デフォルトの名無しさん2015/08/07(金) 15:15:47.58ID:HWJu9s4e
>>334
ありがとうございます!暴言ばかり吐く>>335みたいなマゴットとは違いますね。
0338デフォルトの名無しさん2015/08/07(金) 18:11:32.21ID:5F35ZKAl
マゴットに失礼
0339デフォルトの名無しさん2015/08/07(金) 19:20:01.12ID:Wf7UnCAa
>>331
コンパイラも自社開発か
そりゃスゲー
0340デフォルトの名無しさん2015/08/07(金) 19:35:13.24ID:7Fy+2m0Y
安倍は許した
http://live.fc2.com/79752690/
0341デフォルトの名無しさん2015/08/07(金) 20:00:32.25ID:Yq0yocgf
>>331
あ、うん、どこだってそうだよね(汗
0342デフォルトの名無しさん2015/08/07(金) 20:07:26.86ID:dQ9fwwsL
>>331がインテルの社員で自社のコンパイラを使ってる可能性もびれそん
0343デフォルトの名無しさん2015/08/07(金) 20:38:07.94ID:TSMSNX7R
>>342
インテルをふつーの会社とはあまり言わないけどな
0344デフォルトの名無しさん2015/08/07(金) 21:19:01.22ID:TzkIo9sF
const変数は大文字で描いた方がなんとなくまわりから浮くから
あぁconst変数なんだなぁと分かる気がするからそうしてる
0345デフォルトの名無しさん2015/08/07(金) 23:17:33.17ID:/BWZNXKg
>>344
気持ちは分からんでもないけど、constかどうかをプログラマが意識する必要性は
ないんだけどね。

ところでconst変数てw
0346デフォルトの名無しさん2015/08/08(土) 00:18:32.35ID:qUvMcN+h
C#ならconstはPascalかな…

Int32.MaxValueだし
0347デフォルトの名無しさん2015/08/08(土) 00:39:43.01ID:Ijf29GRs
そやね
constだけなじみのルールを適用するのはどうかと思う
const大文字を見ると常常思ってた
0348デフォルトの名無しさん2015/08/08(土) 01:04:23.34ID:z+a/XH7F
>>346
MSDNのプログラム例でもそうだね
public const int BufferSize = 1024;
0349デフォルトの名無しさん2015/08/08(土) 01:22:42.61ID:cerAE1Gg
規約は従うためにあるもの
例え規約に小文字で書けとあってもそれに従え
嫌なら辞めろ
0350デフォルトの名無しさん2015/08/08(土) 06:39:05.83ID:2mT64iaQ
.netのソースみたら大文字const結構あるね
private static readonlyも大文字がある
0351デフォルトの名無しさん2015/08/08(土) 07:27:18.92ID:ja+NNaTJ
どういう事?
定数を大文字で書いたらダメなの?
C言語では大文字で書いてたからC#にもそのルール引き継いでるんだけどマズい?
0352デフォルトの名無しさん2015/08/08(土) 08:00:56.43ID:xp2orv6h
>>351
https://msdn.microsoft.com/ja-jp/library/ms229043(v=vs.110).aspx
0353デフォルトの名無しさん2015/08/08(土) 08:08:07.80ID:2mT64iaQ
何回も既出な話題だけど
規約、好み、MSのガイドライン とあって

規約があるなら従うほかないよね?
規約がなければ常識の範囲で好きにしろよ
あんまりMSのガイドラインから外れると他の人が読みにくくなるかもね
他人が絶対読まないんなら(略
0354デフォルトの名無しさん2015/08/08(土) 08:20:44.45ID:cYx2D4V+
>>349
どの規約がいいかどうかの話だろ
規約を守りましょうとかの小学校レベルの話ではないよ
0355デフォルトの名無しさん2015/08/08(土) 08:25:11.96ID:qm4uwrZi
規約は当然守られなければならない。
だが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
354みたいなものバカのことな
0356デフォルトの名無しさん2015/08/08(土) 08:30:42.48ID:xp2orv6h
>>352はクラスライブラリ向けのガイドライン、つまり
互いにお約束の通じないチーム同士の間でも従うべき最低限のルール
チーム内部なら好きにすればいいという考え方もあるが、
一般的には.NET開発における絶対的なルールと考えるべき
実際VSの上位エディションだと問答無用で警告出るし
0357デフォルトの名無しさん2015/08/08(土) 08:45:41.17ID:cYx2D4V+
>>355
> だが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
自己紹介? w
いきなり関係ないことで騒ぐのは授業が理解できない小学生によくある行動
0358デフォルトの名無しさん2015/08/08(土) 08:52:39.89ID:rDuvbo6u
アスペのレスはやたらと「べき」を多用するよな
最低限()、絶対的()
0359デフォルトの名無しさん2015/08/08(土) 09:41:18.59ID:Mi72fTNR
javaから入ったからconst大文字で書いてた。
あとNetBeansなら
if(true){
}
だけどVSだと
if(true)
{
}
になって戸惑った。
0360デフォルトの名無しさん2015/08/08(土) 09:44:10.32ID:gs2aQZWx
細かく設定変えられるけど
0361デフォルトの名無しさん2015/08/08(土) 09:52:45.16ID:Fe3rcXOX
コーディング規約守らせるテクニックとかないの
ラクダケースじゃなかったらビルドエラー出すとか
0362デフォルトの名無しさん2015/08/08(土) 11:20:02.19ID:uyIUSJEf
const int NUM X
const int Num O

こういう事か?
0363デフォルトの名無しさん2015/08/08(土) 12:20:01.30ID:ja+NNaTJ
マジかよ全部書き直しじゃねーかクソが
0364デフォルトの名無しさん2015/08/08(土) 13:53:13.30ID:QwAfSdLt
今時、全置換機能くらいテキストエディタでもあるじゃろ
モダンなIDEならリファクタリング機能とか言うのかのう…
0365デフォルトの名無しさん2015/08/08(土) 14:04:02.19ID:Mi72fTNR
>>363
VSなら変数名変更したら下に矢印出てくるだろ
0366デフォルトの名無しさん2015/08/08(土) 14:08:52.14ID:ja+NNaTJ
>>365
使った事ないんだけどこれって信用できるの?
0367デフォルトの名無しさん2015/08/08(土) 14:12:34.10ID:Mi72fTNR
>>366
メモ帳の置換えと違ってその変数のみが置き換えられる。
例えばフィールドのxとローカルのxがあったとしてフィールドのxをxxにしたらローカルは書き換えられない。
0368デフォルトの名無しさん2015/08/08(土) 14:15:11.18ID:cYx2D4V+
>>366
やってみて差分とって確認してみれば?
0369デフォルトの名無しさん2015/08/08(土) 14:24:41.94ID:ja+NNaTJ
>>367
ありがとう使ってみる
0370デフォルトの名無しさん2015/08/08(土) 16:08:26.01ID:8yeleZKw
>>366
dynamicとプリプロセッサ使っていないなら、ほぼ信用できる感じ
使ってあっても変更したい対象には無関係という事は多いのでかなり使える

マイクロソフトが標準的に使っている規約から外れた規約を社内ルールで使っている場合
全員を説得して回ってマイクロソフト標準に合わせたほうがいいだろうね
IDEがバージョンアップする毎に面倒が増えるから、規約がコスト増の原因になる
規約の目的は面倒事やコストを減らす為なので
0371デフォルトの名無しさん2015/08/08(土) 16:12:24.30ID:h9o0NTln
リネーム使ったことないプログラマってガチでいるのかw
大げさでなく信じられないw
0372デフォルトの名無しさん2015/08/08(土) 16:19:06.87ID:8yeleZKw
>>371
他言語から来た人は知らない人もいるのでは?
ウエブ系の人にこれを見せたら、おったまげた人も結構いたよ
0373デフォルトの名無しさん2015/08/08(土) 16:26:59.15ID:z+a/XH7F
かなりお世話になっているけど、リファクタリングって名前で俺かんけーねえしって人居るのかね

リファクタリング (C#)
https://msdn.microsoft.com/ja-jp/library/719exd8s.aspx
0374デフォルトの名無しさん2015/08/08(土) 16:45:24.01ID:x+KPzjiu
リファクタリング便利よね。
nameof演算子が最初からあれば良かったのに。
0375デフォルトの名無しさん2015/08/08(土) 17:20:04.30ID:8yeleZKw
>>374
あとジェネリックスも最初から欲しかったかな
一旦object型に変換されると、そこですべてが切れてしまうので
ジェネリックスができてから typedef が後から実装できない仕組みだったのも痛かった
当時のtypedef嫌悪は大失敗だったね
0376デフォルトの名無しさん2015/08/08(土) 17:43:22.51ID:AWBqCflR
今日も偉い低レベルな話に花を咲かせてんな
9月までこの調子なの?
ちょっと絶望するな
0377デフォルトの名無しさん2015/08/08(土) 18:29:59.35ID:bub58w7+
ひ、ひぇぇ
高レベルな376様がいらっしゃたぞー

これから高レベルな話してくださるから
傾聴せよー傾聴せよー
0378デフォルトの名無しさん2015/08/08(土) 19:08:49.81ID:GOE31OJa
リファクタリングの名前変更はASP.NET MVCには使えないから糞
0379デフォルトの名無しさん2015/08/08(土) 19:41:42.79ID:6EY1XTBT
2015になって名前変更が全然別物になってるよね
前の方が良かった
0380デフォルトの名無しさん2015/08/08(土) 20:37:26.94ID:8yeleZKw
376がオナニーできなくて悶えてるのかw
0381デフォルトの名無しさん2015/08/08(土) 23:10:42.87ID:Ijf29GRs
意識高い人きてんね
こういう人は面白くないので人が寄ってこなくて
仲間だと思ってた連中の初詣とかに誘われなくてあれってなるんじゃね
0382デフォルトの名無しさん2015/08/08(土) 23:23:23.15ID:m5zrYZQl
意識高いってのとはちょっと違うと思う

何か見下したい病?
0383デフォルトの名無しさん2015/08/08(土) 23:52:44.97ID:3Z/4sEUi
そう言う人を皮肉って言ってるだけじゃ。
0384デフォルトの名無しさん2015/08/09(日) 00:12:32.28ID:7R1hSeQZ
まあ、「意識高い」って言葉が使われる時、ほとんどの場合は「意識高い」って表現を使う側のルサンチマンなんだけどねw
0385デフォルトの名無しさん2015/08/09(日) 00:31:14.85ID:Bf9QBgBr
お、c#スレ復活した
0386デフォルトの名無しさん2015/08/09(日) 03:04:04.03ID:lFKFU4FJ
会社で相手にされなくて、寂しくて、こんな所にやってきてるんだよ
で、俺はできるんだから話を聞けぇってトコロなんだろうよ
多分リアルは自殺物レベルで悲惨なんだろうなw
0387デフォルトの名無しさん2015/08/09(日) 09:55:43.54ID:/6/RtruA
友達も女も居ないけど猫が居るから寂しくないよ
0388デフォルトの名無しさん2015/08/09(日) 20:02:02.17ID:fUCYV9NU
友達と女がいるとうれしさは猫の数倍だよ
知らないということは幸せかな
0389デフォルトの名無しさん2015/08/09(日) 20:10:11.88ID:/6/RtruA
うるせぇ
なら猫を追加するだけ
幸せバイバインだ
0390デフォルトの名無しさん2015/08/09(日) 21:09:12.82ID:4N/Y7Sm0
猫クラスを追加する事による負荷は問題ないのだろうか
友達の女クラスよりは軽いだろうけど
0391デフォルトの名無しさん2015/08/09(日) 21:12:10.14ID:SGsZr1tS
かくしてIT土方の貴重な休日が無駄になっていくのである

おわり
0392デフォルトの名無しさん2015/08/09(日) 22:57:53.03ID:I/IAYU21
別に友達いない=コミュ力なしってわけではないとは思うとか言ってみる。
いや、自分がそうなんだけどな。
0393デフォルトの名無しさん2015/08/09(日) 23:31:19.08ID:fUCYV9NU
コミュ力 = 人と仲良くなる能力と思うとか言ってみる
仲良くなったら友達だろ
0394デフォルトの名無しさん2015/08/10(月) 00:00:32.58ID:XP2wx0li
むしろ必ずしも仲が良くない人とでも意志疎通を行う能力なんだろうけどね本当は。

俺もそうだけど日本人って総じてこれが下手だから下らない飲み会とかやって
「みんな仲間」を演出してないと職場がうまく回らないんだよね
0395デフォルトの名無しさん2015/08/10(月) 00:05:19.00ID:tkIOp5x+
コミュ力という言葉でくくれるほどコミュ力って狭い意味じゃないだろ
飲み会でウェーイもプレゼンも営業トークもコミュ力ないと出来ないが、これらが全部同じ能力とは思えない
自然言語的なコミュ力が高いやつもいれば、UMLみたいな言語のコミュ力が高いやつもいる
アーティスティックな表現力は抜群でも、喋るとバカっぽい人も居る

コミュ力は主にウェーイできる力の事であり、その意味でのコミュ力がないとコミュ障として、不当に扱われる事が多いってのは問題だよな
0396デフォルトの名無しさん2015/08/10(月) 00:25:39.24ID:eozgHhmi
それは違うと思うな
ウェーイできる奴は全部に通ず
すなわち全部同じ能力
対人関係に柔軟さを持っている人間はコミュれる人でありウェーイでもある
ウェーイすらできないならすなわちこれ全てダメであり完全なるコミュ障

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

あるいはやはりウェーイ道を極めて修めるか
0397デフォルトの名無しさん2015/08/10(月) 01:03:38.69ID:PN28vv9M
既にこの時点でコミュが成立してない気がするのは。。。
0398デフォルトの名無しさん2015/08/10(月) 03:01:22.19ID:WsIPX/2a
初心者ですみません

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

unityがメインなんですが、プリプロセッサって全部大文字で書く事なんてあるんですか?
0399デフォルトの名無しさん2015/08/10(月) 03:14:03.52ID:PX+3VVfn
>>398
>>352に書かれているわけだが読まずに質問とは
C#の初心者じゃなくて日本語の初心者ですかチョンですか?
0400デフォルトの名無しさん2015/08/10(月) 04:25:04.74ID:RHMENy6h
書き込み見る端から攻撃しまくるキチガイには居なくなって欲しいですな
0401デフォルトの名無しさん2015/08/10(月) 04:54:29.74ID:e3IdXlk7
リソースファイルとして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"だけです。)をバイナリ化したものです。
0402デフォルトの名無しさん2015/08/10(月) 05:00:02.57ID:RHMENy6h
System.IO.MemoryStream あたりを使うのが一番てっとり早いかと
0403デフォルトの名無しさん2015/08/10(月) 05:03:18.94ID:e3IdXlk7
>>402
早速ありがとうございます!
試してみます!
0404デフォルトの名無しさん2015/08/10(月) 05:26:39.23ID:e3IdXlk7
>>402
出来ました。ありがとうございます!
0405デフォルトの名無しさん2015/08/10(月) 07:21:22.75ID:C7dCXIlE
相手の承認欲求の満足と引き換えに情報もらう場で、
暗黙的な合意と正反対の行動しておいてコミュ力ってw

もちろん情報も出さずに煽ってるのは論外だけどさ、
そんなコミュ力()で主張続けてたら、人居なくなるよ?
0406デフォルトの名無しさん2015/08/11(火) 02:29:03.29ID:t7UpLVsu
継承してあるプロパティを封印とかしたいんですができないでしょうか?
当然、キャストすると矛盾が生じるので、似てるけど継承関係がない扱いをしたいのですが。
0407デフォルトの名無しさん2015/08/11(火) 05:50:36.72ID:USJNgyLH
>>406
AからBを派生させるんじゃなくて、AとBの基底クラスとしてCを作ってからA,Bを派生させるほうが理にかなうと思うが
0408デフォルトの名無しさん2015/08/11(火) 08:18:55.99ID:t7UpLVsu
>>407
いわゆるテンプレートみたいなものなので、継承関係はありません
0409デフォルトの名無しさん2015/08/11(火) 08:22:26.01ID:RnBcDQFJ
共通部分を別のクラスに括り出して移譲
0410デフォルトの名無しさん2015/08/11(火) 09:29:28.39ID:C3iuhTEx
is aじゃなくてhas aにする
0411デフォルトの名無しさん2015/08/11(火) 12:54:53.39ID:t7UpLVsu
>>410
そうします。
でも、いちいちプロパティとかラップするのめんどいですよね。
なんとかなりませんか。
0412デフォルトの名無しさん2015/08/11(火) 13:07:55.82ID:MDlGrES8
>>411
だから>>407が言ってるようにすればいい。
何を言ってるんだ。
0413デフォルトの名無しさん2015/08/11(火) 13:47:10.32ID:+IVNtZk/
>>412
>>407に対して>>408みたいに返す応用力のなさじゃ
手取り足取り説明しないとw
0414デフォルトの名無しさん2015/08/11(火) 14:53:21.55ID:t7UpLVsu
>>412
キャストできたらまずいってーの、継承について勉強しろ
0415デフォルトの名無しさん2015/08/11(火) 14:57:28.66ID:3SX2sjwF
多態性を利用する気がないのならhas aでいいんじゃね?
用もないのに、なんでもかんでも継承するのは良くない
時々そういう人いるけど、コード読みにくくてしょうがない
0416デフォルトの名無しさん2015/08/11(火) 15:12:00.25ID:AH2YHVn8
そして>>411に戻る
0417デフォルトの名無しさん2015/08/11(火) 16:13:22.92ID:g1gPnYXA
>>414
兄弟同士はキャストなんかできない。
何を言ってるんだ。
こんな馬鹿に限って勉強しろとかほざくんだから笑える。

そもそも論を言えば、明らかに互換性があるのにあえてキャストできないようにする意味がそもそも分からない。
0418デフォルトの名無しさん2015/08/11(火) 16:22:07.65ID:3SX2sjwF
分からないのは >>417 が無能だからだよw
0419デフォルトの名無しさん2015/08/11(火) 16:24:59.39ID:2YkwfTs1
と、ろくにコードも読めない無能が言ってますw
0420デフォルトの名無しさん2015/08/11(火) 16:52:11.16ID:t7UpLVsu
>>417
エンジンとコンポーネントで考えましょう。
基本的なことですよ。
0421デフォルトの名無しさん2015/08/11(火) 17:31:46.86ID:C3iuhTEx
自分の言いたいことが理解されないからといって、すぐ相手を馬鹿よばわりしたらあかんよ。
馬鹿って言われたからっいって、すぐ無能とか煽ったらあかんよ。
0422デフォルトの名無しさん2015/08/11(火) 18:29:29.41ID:AWvgSxoB
>>417
そもそも
>継承関係がない扱いをしたい
のだから、互換性が無いのかもしれんぞ

継承関係がないのに、継承してクラス定義する意味がわからんが
0423デフォルトの名無しさん2015/08/11(火) 19:06:04.27ID:3SX2sjwF
多態性使いたいなら、こういうケースでは素直にinterface使えば良いかと
本人見ての通り用は無いとしているみたいだし、それでいいと言われているのに食いつくのを見ていると
ふらっとスレのアレだな

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

て感じだね、例のアイツなんだろうが頭おかしい
0424デフォルトの名無しさん2015/08/11(火) 19:36:37.74ID:DdSX6XRN
>>423
言っちゃ悪いけどあんたが一番頭おかしいように見えるよ。
例のアイツってもう典型的な2ch脳患者の症状じゃん。
って2ch脳の人に言っても無駄っていうか手遅れだろうけどさ。
0425デフォルトの名無しさん2015/08/11(火) 20:44:37.23ID:BYbKL/Wt
もう少しハッピーな話をしろ
お前くらいのエリートなら8/7~8/18くらいは夏休みのはずだろ
0426デフォルトの名無しさん2015/08/11(火) 20:47:38.90ID:RhCa6Veg
僕は7月18日から
0427デフォルトの名無しさん2015/08/11(火) 20:51:01.02ID:flESq3IS
投稿時間みると休んでんじゃないの?
何もすることないんでしょ
生きてて楽しいのかな?
あ、だからここで一日中他人を罵倒してるのか
0428デフォルトの名無しさん2015/08/11(火) 21:55:13.91ID:pRf5qE0j
継承先でプロパティ封印してどんなメリットが…
0429デフォルトの名無しさん2015/08/11(火) 23:34:01.58ID:HeaM7jtr
BCLでもNotSupportedExceptionを投げたりするのがあるけど、まあ仕方がないんだろうけど
あんまり美しくないよなああいうの。
0430デフォルトの名無しさん2015/08/12(水) 02:18:44.84ID:6ZXtaURL
基底クラス作るとか、制限する意味ないとか
ここの人たちの話は良くわからないぞ…

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

面倒ってのがEclipse的な委譲の生成がないかって意味なら
Reshaper(有料)使うか、諦めて無心に手書きするといいよ
0431デフォルトの名無しさん2015/08/12(水) 02:33:12.62ID:6ZXtaURL
あ、でもこの場合、1クラスの委譲のようだから、
制限インターフェース作って、欲しいクラスを継承+制限IFを実装、
そして制限IFにキャストして返すって手順でいいんでは?
0432デフォルトの名無しさん2015/08/12(水) 02:40:22.65ID:XD0FvRJl
難しい事言うとまた質問者に勉強しろと言われちゃうよーん
0433デフォルトの名無しさん2015/08/12(水) 03:14:27.59ID:6lFy7xXj
元の質問者はたぶん、型の弱い言語しか使ってないんだろ
ダイナミック使えば良いと思うんだ
0434デフォルトの名無しさん2015/08/12(水) 03:14:47.82ID:4GoNFhR4
どんだけ俺の考えをきけぇ!!!!!なんだよ
寂しすぎだろw
0435デフォルトの名無しさん2015/08/12(水) 07:59:58.15ID:jWJqOcxH
>>430
後者は公開用と実装で分ける

internalで十分じゃね?
0436デフォルトの名無しさん2015/08/12(水) 08:09:14.50ID:6ZXtaURL
>>435
十分じゃないですよ
2者を分離できませんし、継承関係が欲しい訳じゃないですから
0437デフォルトの名無しさん2015/08/13(木) 10:26:42.13ID:yl8Mdqy/
MVVMでダイアログとかポップアップメニューとか画面遷移ってどう扱うんだ?
VMにMessageBox.Showとか書きたくないよな
0438デフォルトの名無しさん2015/08/13(木) 10:36:01.01ID:JHO9AiGv
>>437
画面遷移サービスみたいなのを用意してインスタンスをアプリケーション全体で共有
ただしシングルトンはやめろ
そういうサービスはVMからはインターフェースを通して扱うようにして、
VMには参照をプロパティやコンストラクタなどで渡す。DIを使ってもいい。
メッセージを使ってビュー経由でやる方法もあるがどこで何やってんのかわけわからなくなりやすいのでお勧めしない。
0439デフォルトの名無しさん2015/08/13(木) 14:53:07.65ID:ZQmwk96y
>>437
prismにTriggerActionって仕組みがあって、ビヘイビアのようなクラスを定義すればメッセージボックスをVMから操作できます
メッセージボックスを開く程度をやるには可也面倒なんだけどね
0440デフォルトの名無しさん2015/08/13(木) 20:47:02.81ID:uEvY/8an
List<T>.Sort()ってなんで安定じゃないんですかね
安定なの作っといてくれりゃいいのに
0441デフォルトの名無しさん2015/08/13(木) 20:52:06.72ID:r6k8TIQq
>>440
LINQのOrderByは安定ソートだよ
0442デフォルトの名無しさん2015/08/13(木) 21:42:16.81ID:uEvY/8an
>>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;
 }
}
0443デフォルトの名無しさん2015/08/14(金) 01:10:47.58ID:u9bN4Lw8
>>442
ToListせずにforeachしたほうがいい
0444デフォルトの名無しさん2015/08/14(金) 15:19:13.92ID:Iycxx57M
>>442
馬鹿な俺には何がしたいんかわからん
list.OrderBy( t => t ).ToList();
だけでええやん
0445デフォルトの名無しさん2015/08/14(金) 15:21:03.68ID:PBffULch
破壊的ソートだろ
0446デフォルトの名無しさん2015/08/14(金) 22:12:21.62ID:2p3m0KlY
>>444
ソートされた新しいインスタンスがほしい場合もあれば
元のインスタンスをソートしてほしいときもあるやん?
0447デフォルトの名無しさん2015/08/15(土) 01:24:13.06ID:xV4UISpz
>>442
これってプリミティブ以外の型でちゃんとソートされるの?
0448デフォルトの名無しさん2015/08/15(土) 02:26:49.44ID:j4iBQT2t
>ソートされた新しいインスタンスがほしい場合もあれば
>元のインスタンスをソートしてほしいときもあるやん?

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

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

>>448
インスタンスを置き換えて返すつもり?
元のリストの参照もってたらソートされないままだろが……
0451デフォルトの名無しさん2015/08/15(土) 13:11:59.71ID:z64TKpL6
初心者です。インターフェースの実装として抽象クラスを定義するコードを見かけたのですが、あえてそうするメリットって何かありますか?自分としとはインターフェース不要じゃないかと思ったのですが。
0452デフォルトの名無しさん2015/08/15(土) 13:19:08.64ID:dPBreRmq
Effective Java 18章 抽象クラスよりインタフェースを選ぶ

を読んで、骨格実装について学んでください
この項目はC#でも同じです
0453デフォルトの名無しさん2015/08/15(土) 13:54:48.31ID:gGc5tBdo
出来る限り疎結合にするというのが大切だから外部との窓口をインターフェースにする。
それより内側の具体的な実装は、内部実装としての作りやすさからたまたま抽象クラスで行っているだけかと。
0454デフォルトの名無しさん2015/08/15(土) 14:38:20.40ID:OY/B/Wmp
抽象クラスって使った事ないわ
使い道あるのかこれ
0455デフォルトの名無しさん2015/08/15(土) 15:08:58.69ID:2z51GaS1
初心者なのでインターフェイスがあれば抽象クラスは別段いらないじゃないか
って正直いつも思ってます・・・
抽象クラスの使い方が分かってないからでしょうけど
0456デフォルトの名無しさん2015/08/15(土) 15:14:23.51ID:3TmrRaVz
vsの簡単フォームツール?のコンボボックスでSelectedIndexが見つかりません。
どこにありますか?
0457デフォルトの名無しさん2015/08/15(土) 15:47:22.93ID:HxCw3c0C
>>455
インターフェースに雛形となる実装がついてるだけだよ。
インターフェースにテンプレートの実装持たせておければいいのに。
0458デフォルトの名無しさん2015/08/15(土) 15:50:11.19ID:2z51GaS1
>>457
よく分からないのですが、そもそも仕様と実装を分離して疎結合するためのもの
だという認識なんですが、それに実装を持たせると分離の意味がなくなるんじゃないのかな
と不思議に思ってます
0459デフォルトの名無しさん2015/08/15(土) 15:58:03.56ID:XFeAKEd8
仕様と実装を分離して疎結合するためのもの=インターフェイス
仕様の中で規定の実装が部分的に定まっているもの=抽象
0460デフォルトの名無しさん2015/08/15(土) 15:59:17.62ID:HxCw3c0C
>>458
その通りです。
なので必要があれば抽象クラスとインターフェースをそれぞれ定義します。
抽象クラスはあくまで実装ですからね。

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

拡張メソッドとかもあるけど、いちいちクラスとインターフェース作りたくねーし、インターフェースの定義の中でなんとかさせてくれという気持ち。
0461デフォルトの名無しさん2015/08/15(土) 16:04:26.73ID:HxCw3c0C
abstractにインターフェースつけると、インターフェースのデフォルト実装が適用されるとかよさそう
04624562015/08/15(土) 16:11:48.76ID:3TmrRaVz
編集不可コンボボックスだと初期値でTextプロパティが使えないのでindexで指定するように書いてあったのですができません・・・
0463デフォルトの名無しさん2015/08/15(土) 16:50:16.42ID:hcwFHcJB
基底クラスが1つしか選べないのが抽象クラスと相性悪いと思う
インターフェースに基底の実装を用意してもインターフェースを2つ実装しようとしただけでダメになる
0464デフォルトの名無しさん2015/08/15(土) 17:19:23.51ID:2z51GaS1
>>459-460
あーなるほど、なんとなく分かりました
共通した仕様だけでなく実装の一部までもが共通して決まっているなら
そこまで定義しても問題ないし保証できるというわけですね

ありがとうございました
04654512015/08/15(土) 17:57:59.98ID:9FDdWcaw
>>452
ありがとうございます。読んでみます。

個人的には、少し冗長で読みにくい印象があったのでした。勉強してみます。
0466デフォルトの名無しさん2015/08/15(土) 17:58:54.53ID:/RqnGk0/
>>462
ふらっと行ったら?
0467デフォルトの名無しさん2015/08/15(土) 20:49:36.11ID:7Ge9P+Ci
普通インターフェースを継承すると、全てのメソッドやプロバティーなどを実装しないといけないが
抽象クラスならば全て実装しなくて良くて、実際に使う派生クラスまでの何処かで実装すればいい

抽象クラスなのは派生クラスでインターフェースの一部機能を実装するからかもしれん
0468デフォルトの名無しさん2015/08/15(土) 21:07:44.19ID:3TmrRaVz
>>466
分かりました
0469デフォルトの名無しさん2015/08/16(日) 22:37:33.66ID:nZvb2qTm
TableLayoutPanelで20行準備してサイズを5%にすると最後の行だけ大きくなるんだけど・・・
0470デフォルトの名無しさん2015/08/17(月) 07:33:43.50ID:KTnE4+Ew
高さが行の数で割り切れないと最後で調整する仕様みたいだね

高さ%行数==行数-1 のとき最後の行が最大になる模様w
0471デフォルトの名無しさん2015/08/17(月) 10:57:45.12ID:RAwbDv5U
TableLayoutPanelみたいなものが必要ならWPF使えよ
WinForms使うなら古臭いWinFormsの流儀から外れてはいけない
0472デフォルトの名無しさん2015/08/17(月) 11:34:00.62ID:/53UNtSq
何だよそのクソ仕様。全体で少しずつ調整しろよ・・・
0473デフォルトの名無しさん2015/08/17(月) 11:38:02.93ID:/53UNtSq
本当だ。割り切れるサイズにしたら直ったw
0474デフォルトの名無しさん2015/08/17(月) 14:13:40.06ID:D7LX3aiM
WPFは使いたくないよな、何が嫌かっていうとそのうち廃れそうな空気が充満している所
0475デフォルトの名無しさん2015/08/17(月) 15:51:23.84ID:eAn+98gr
WinFormsも時代に取り残される一方でしょ
未来があるのはASP.NET MVCだけだよ
デスクトップアプリがいいならMSもVS Code作るのに使ってるelectronがいいんじゃないかな
0476デフォルトの名無しさん2015/08/17(月) 15:57:53.02ID:Fj/4E2oI
Win32APIお勧め
0477デフォルトの名無しさん2015/08/17(月) 15:58:11.51ID:/53UNtSq
javaでGUI作るとかwって言われたからc#始めたのにc#もこれかよ…
0478デフォルトの名無しさん2015/08/17(月) 16:16:36.52ID:eXSE2CJH
そもそもGuiなどというものは流行り廃りが激しく再利用性も低い
使い捨てして乗り継いで行くイメージで作るべきもの
この前提があるからみんな口を揃えてレイヤーを分けろって言うんだね
0479デフォルトの名無しさん2015/08/17(月) 16:19:11.16ID:eAn+98gr
デスクトップアプリという分野自体がもう終わったからね
Web面白いよ?
俺もそうだったが、食わず嫌いしてたら後悔する
0480デフォルトの名無しさん2015/08/17(月) 16:27:51.07ID:w34N0MAp
特定のブラウザ専用ならwebもGUIの道具の一つとしてありかなとも思うが、
各ブラウザの違いやバグ対策みたいなGUIの本質とかけ離れたところにばかり
時間を取られる非生産的な仕事ってイメージしかないね。

仕事でやりたいとは思わないなあ。ストレス大盛りって感じ。
0481デフォルトの名無しさん2015/08/17(月) 19:35:09.97ID:w9n3OemN
最近のmsはインターフェースより
抽象クラスを推奨してるってなんかの本で
読んだんだけど・・・
0482デフォルトの名無しさん2015/08/17(月) 19:45:34.88ID:RAwbDv5U
んなことはない
インターフェース大好きMSが書くソースコードは今も昔もどの言語でもインターフェースまみれ
インターフェースが問題になるのはインターフェースを定義する側と実装する側の距離が離れているとき
MSは内部では本当にインターフェース使いまくってる
MSが一番最近作った新言語のTypeScriptだってインターフェースが基本
0483デフォルトの名無しさん2015/08/17(月) 22:37:51.82ID:FJuxg1JS
みんなHTA使おうよ
0484デフォルトの名無しさん2015/08/17(月) 22:43:25.40ID:Wyfczv4M
シングルトンの作り方で、sataticクラスにしてstaticイニシャライザでstaticな変数に作るのと、
通常のクラスでコンストラクタでstaticな変数に自分をnewするのでは何か違いますか?
0485デフォルトの名無しさん2015/08/17(月) 22:59:02.86ID:+cUtloob
そもそもstaticクラスはインスタンスを作れないのでは?
0486デフォルトの名無しさん2015/08/17(月) 23:00:29.54ID:VtDZ2XCv
>>484
はい。
概念的に、そのシングルトンを持つ存在がシングルトンの実体と別なのか同一なのかという決定的な違いがあります。
形しか見ない低能には区別がつきませんが
0487デフォルトの名無しさん2015/08/17(月) 23:12:20.05ID:q/emGwsq
VS2015のC#でForm1からForm2上のTextboxを変更したいのですがどうすればいいのでしょう

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

まだ駆け出しなので何か根本間違えてしまったりしてますか?
0488デフォルトの名無しさん2015/08/17(月) 23:18:08.90ID:RAwbDv5U
>>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の疑問の通り実質的な違いはない
0489デフォルトの名無しさん2015/08/18(火) 00:09:30.31ID:pnM0xe2/
>>1
デュエル・マスターズ的な非電源TCGの 《 オンラインTCGツクール系 》 ソフト(エディター)の企画。

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

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

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディタ系ソフト群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど、発売済みゲームソフトの存在するケースはベンダーに研究させる。
↓
TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリーグ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。

さ〜て、製作を受けてくれるベンダーが見つかるかな?ww(クス
http://hayabusa6.2ch.net/test/read.cgi/gameama/1438617407/l50
0490デフォルトの名無しさん2015/08/18(火) 04:24:03.38ID:pRZZzM/P
>>487
全体像が見えないのでなんともですが
とりあえずForm2に配置されているtextboxのプロパティーを開いて
Modifiersを private → public へ変更して、Form2クラス外からも見えるようにしてみる?とか
0491デフォルトの名無しさん2015/08/18(火) 04:38:39.80ID:pRZZzM/P
>>479
WEBは面白いけど、eコマース、SNS、ゲームといった仕事をしない人にとっては用のない世界でもあったりする
公開されない用途では、多様な環境への対応は意味のない単なる負担でしかないからね
面白いという理由だけで意味のないコスト発生させても仕方がないのだ
自分がそうだけど
0492デフォルトの名無しさん2015/08/18(火) 05:50:02.90ID:EGG1pcbp
>>487
(Form2Obj.textBox1 as TextBox).Text = "こんにちは";
0493デフォルトの名無しさん2015/08/18(火) 06:40:39.06ID:ffkOBUQn
>>492
エラーが分かりにくくなるだけだからnullチェックしないならasは使うな
0494デフォルトの名無しさん2015/08/18(火) 07:44:01.93ID:EGG1pcbp
>>493
んな事知るかボケ
0495デフォルトの名無しさん2015/08/18(火) 08:09:33.82ID:JFS1mc9t
>>487の回答者はよくもまあ長々と書くもんだなぁ
こんなしょーもないことにあれだけ付き合うって素晴らしい人、もしくはひどい暇人

だけどForm2Obj というフィールド変数の名前はどうよ
0496デフォルトの名無しさん2015/08/18(火) 08:10:48.65ID:JFS1mc9t
>>492
型の問題じゃなくてスコープの問題だからその回答はマヌケ
0497デフォルトの名無しさん2015/08/18(火) 08:21:27.56ID:sLRvpB24
夏休み今日までだから
明日からこの糞くだらない無駄話に参加できなくなって悲しいですわ
0498デフォルトの名無しさん2015/08/18(火) 08:30:04.89ID:O5wCO4NL
>>496
スコープ?まじで?長すぎて全然読んでなかったよ
0499デフォルトの名無しさん2015/08/18(火) 08:38:29.36ID:GgDcmGMQ
>>490
最終的にそれだろうけど
エラーメッセージが違うんだよなー
0500デフォルトの名無しさん2015/08/18(火) 09:05:35.08ID:JFS1mc9t
>>498
あ、ごめん型の問題でもあったねw
おれは知恵袋の方しか見てなくて>>487のレス読んでなかったw

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

■コードを貼る場合はこちら
http://ideone.com/
0501デフォルトの名無しさん2015/08/18(火) 09:29:08.18ID:O5wCO4NL
>>487
コード晒さないにしても一字一句正確に書いてよ

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

TextBox1が先頭小文字になってるから、
Form2.cs
public object textBox1 { get; }
を想像したんだけど
0502デフォルトの名無しさん2015/08/18(火) 09:31:26.11ID:C75F2sdQ
ゲッターやセッターの中でこういう事やるなって処理があれば教えて下さい
0503デフォルトの名無しさん2015/08/18(火) 09:35:25.75ID:O5wCO4NL
(set書き忘れた)
0504デフォルトの名無しさん2015/08/18(火) 09:37:41.70ID:JFS1mc9t
>>502
必要なことならなんでもやっていいのよ
0505デフォルトの名無しさん2015/08/18(火) 10:04:42.64ID:v9B/n+sr
セッターの中でゲッターをあまり呼ばないことぐらいかな?
意図的にやる場合はいいけど、無意識に使っているとバグの元になる
0506デフォルトの名無しさん2015/08/18(火) 10:35:34.34ID:A08QTc66
これをやっとくと便利だな というのはなるべく避ける
これをやっとかないのはどう考えてもアホやろ というのをしぶしぶ入れる
無駄に何回も呼ばれても困らないようにする

というかそもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計
0507デフォルトの名無しさん2015/08/18(火) 12:17:05.48ID:+z7OWFlW
抽象的に言えばやるべきでないのは根拠がない教条主義だな
セッターやゲッターでやってはいけないことがあるんだって発想そのものがよく分からない。
むしろ>>502は何でこういう疑問を持ったんだろう。
0508デフォルトの名無しさん2015/08/18(火) 13:43:22.03ID:sLRvpB24
ベストプラクティスベストプラクティスって糞カスがうるさいから
0509デフォルトの名無しさん2015/08/18(火) 15:27:08.93ID:5lg1jc8O
>>506
> そもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計

こんなク○スレにもまともなやつはいたんだな
ちなみに俺もそれが理由でプロパティみたいなもんは存在からして不要だと思ってる
ゲッターセッターがむしろ書きにくく手間がかかる言語こそが本当に気の利いたOOPL
0510デフォルトの名無しさん2015/08/18(火) 15:43:01.49ID:+rFwHajx
いや、オブジェクトなんぞ元々どぎたなくて美しさの欠片もない代物
0511デフォルトの名無しさん2015/08/18(火) 16:11:49.85ID:IEGJFkcT
オブジェクト指向に美学を求めてもなぁ
0512デフォルトの名無しさん2015/08/18(火) 16:19:58.26ID:+rFwHajx
しかし、オブジェクトに美しさを求めるって、どんだけオブジェクトの事をわかってないんだ?
という感じ、クラスやオブジェクトは元々どぎたないものを「隠す」というだけであって、
別に「美しくする」訳ではない(キリッ
0513デフォルトの名無しさん2015/08/18(火) 16:55:22.43ID:vgvX2pjS
隠すのでも美しくするのでもないよw
っていうかオブジェクトって何だよw

OOの本質はクラスやインスタンスという一種の状態機械を
データや機能の収納箱として利用する、分類や整理の手法だと思う。
0514デフォルトの名無しさん2015/08/18(火) 17:26:54.71ID:IEGJFkcT
OOの本質は、特にありません
モナド則のような厳しいしきたりもありません
本質的に守らなければならないルールは、
リソースリークに気をつけるぐらいでしょうか
みなさん自由にしましょう
0515デフォルトの名無しさん2015/08/18(火) 18:17:06.72ID:C+CrAcbu
この場合、美しさはカンタンに定義できると思うけどなw
「美しさ=汚さの逆」であり
美しくする=汚くしない(ドヤッ
0516デフォルトの名無しさん2015/08/18(火) 18:25:58.85ID:JFS1mc9t
ドヤッとかつけないで正々堂々とレスしようよ
0517デフォルトの名無しさん2015/08/18(火) 18:31:45.16ID:GgDcmGMQ
やっぱりコピペ指向
0518デフォルトの名無しさん2015/08/18(火) 19:08:36.73ID:MvA+WoyG
昔OOの本質はマルチプルインスタンスだって書いてる人もいたけど、
それはOOPを使えば簡単にそれが出来るというだけの話で、
オブジェクト指向の本質ではないと思う。
0519デフォルトの名無しさん2015/08/18(火) 19:22:37.20ID:TP6OV89s
OOPの本質はモジュール化だよね
OOP以前にあったものの小さい版
プロセスとスレッドの関係に似てる
0520デフォルトの名無しさん2015/08/18(火) 19:42:27.95ID:IEGJFkcT
何かに似ているとか、たとえ話とか、そういうのいらないんで
0521デフォルトの名無しさん2015/08/18(火) 19:52:27.38ID:JFS1mc9t
OOPの本質とか夏休みの宿題のネタくらいにしかならないだろ
まじどうでもいい
0522デフォルトの名無しさん2015/08/19(水) 02:06:12.07ID:0nl1pVRH
DataGridViewがマウスのチルトで横スクロールしないのが不便なので
色々試行錯誤したんですがあと一歩のところでうまくいきません。

派生クラス作ってWM_MOUSEHWHEELを拾って
HorizontalScrollBar.Value += 10;
と書いたんですが、バーは動くけど中身のデータ表示部が微動だにしないんです。
ここからさらにバーの動きに連動して中身のグリッドも左右に動かすには
どうしたらいいんでしょうか。
0523デフォルトの名無しさん2015/08/19(水) 08:47:52.85ID:/Qsn/PCA
DataGridView知らないけど
設定後に更新とか再描画させてみた?
Javaだとそういう場合だいたい
コンポーネントに対してrepaint()を手動で呼ぶ
0524デフォルトの名無しさん2015/08/19(水) 09:27:13.54ID:9fa2/Guo
俺も知らないけどHorizontalScrollingOffset使うって書いてあるよ
05255222015/08/20(木) 05:08:37.71ID:IiHrtFdq
>>523
>>524
ありがとうございます
HorizontalScrollingOffset += 10;
これで思い通りの動きになりました。

再描画系は
Refresh()
Update()
Invalidate()
を試してみましたがどれもダメでした。
HorizontalScrollBar.Valueはあくまでバーの位置を指定するだけで
グリッド部分には影響しないのかもしれません。
0526デフォルトの名無しさん2015/08/21(金) 18:42:46.11ID:YBnVLwK5
zip/rar ファイルを扱うために SevenZipSharp.DLL を使用しています。
スレッド内で SevenZip.SevenZipExtractor を作成し、展開はできるのですが、
スレッド外で SevenZip.SevenZipExtractor を作成し、スレッド内で展開しようとすると
System.InvalidCastException の例外が出てしまいます。

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

もしくは、それができる zip/rar 展開用(MemoryStreamに解凍できるもの)ライブラリ
があれば教えてください。
0527デフォルトの名無しさん2015/08/21(金) 18:48:48.63ID:NPCxxztI
そもそもスレッド内外ってなんだ(哲学
UIスレッドの話なら非同期メソッドつかえ
Begin〜の奴
05285262015/08/21(金) 20:14:20.47ID:YBnVLwK5
すみません、こんな感じです。

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() の形でやりたいのですが例外が発生してしまいます。
0529デフォルトの名無しさん2015/08/21(金) 21:04:36.41ID:n472Qw2U
ネイティブDLLの仕様だろ
Cならそういうのはよくあること
SevenZipExtractorのコンストラクタはStreamを引数に取るオーバーロードもあるんだから、
Streamだけスレッド外で作っとくとかでファイルのキャッシュくらいどうとでもなるだろ
0530デフォルトの名無しさん2015/08/21(金) 21:53:16.84ID:+BYzVuol
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とれない
}
05315262015/08/21(金) 22:36:17.52ID:YBnVLwK5
>>529
FileStreamで組んでみましたが、SevenZipExtractorを閉じる時にストリームも一緒に閉じられてしまうようで、
毎回MemoryStreamにコピーしなければなりません。
そうすると遅延軽減のための処理が余計な時間をくってしまいそうです。

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

>>530
ストリームがとれないと厳しいですね・・・
0532デフォルトの名無しさん2015/08/21(金) 23:13:26.69ID:+BYzVuol
ArchiveFileInfoをキーにしてMemoryStreamをDictionaryにでも突っ込んどいて
FileExtractionFinishedのe.FileInfoでMemoryStreamを取り出すとかじゃだめなんかね
いや、まぁてきとーに思いついただけだから・・・
0533デフォルトの名無しさん2015/08/21(金) 23:31:20.10ID:YNgc8We+
http://akabeko.me/blog/tag/%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F/page/2/
こちらのサイトで"MeteringStream というクラスは NAudioDemo のものを流用している。"と書いてあったのですがNAudioDemoをダウンロードしたのですがどのファイルを参照についかすればいいか分かりません。
どれを追加すればいいのでしょうか?
0534デフォルトの名無しさん2015/08/21(金) 23:36:45.66ID:Je5mj4J0
>>533
ふらっとで叱られた子じゃん

351 名前:デフォルトの名無しさん[sage] 投稿日:2015/08/18(火) 19:50:36.75 ID:JFS1mc9t
NAudioでぐぐって懇切丁寧に説明してくれてるサイトが見つかるのにそれ見ないでグダグダ言ってたりしないよな?
0535デフォルトの名無しさん2015/08/21(金) 23:39:42.47ID:n472Qw2U
>>533
そのレベルでの試行錯誤は時間の無駄だからちゃんと本読んで出直してきなさい
0536デフォルトの名無しさん2015/08/22(土) 00:12:23.71ID:/ddVcb/Z
javadocのような物が乗ってるサイトはないのでしょうか?
サンプルソースばかりでクラスの継承関係やメソッド、引数、戻り値などが分からないので。
できれば日本語でお願いします。
0537デフォルトの名無しさん2015/08/22(土) 00:15:34.86ID:5hyMMp2f
C#相談室(相談に答えるとは言ってない)
0538デフォルトの名無しさん2015/08/22(土) 00:16:33.52ID:u4KBIQ2T
え、一体どこのサイトを見てんの?
MSDN見てる?
0539デフォルトの名無しさん2015/08/22(土) 00:22:31.03ID:6V9DEjWD
どぼんでも見てんじゃねえの
0540デフォルトの名無しさん2015/08/22(土) 00:41:51.73ID:/ddVcb/Z
ここ
http://akabeko.me/blog/2009/12/c-%E3%81%A7%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F-1/
0541デフォルトの名無しさん2015/08/22(土) 00:54:00.36ID:oxql1dUV
なんだNAudio君か
ID変わったら分かるわけねえだろ

で、リファレンスは無いらしいよ
ましてやこんなマイナーライブラリで日本語でなんて夢のまた夢だね
諦めて畑でも耕してろよ田子作君
0542デフォルトの名無しさん2015/08/22(土) 01:01:47.13ID:KIpdc5GT
>>541
これNAudio 本体のソースあるだろ・・・何が解らないのかマジで意味が判らない
0543デフォルトの名無しさん2015/08/22(土) 15:19:12.99ID:/ddVcb/Z
色々調べたら.NETはHTMLではなくXMLでドキュメントを出力すると書いてあったのですが付属のXMLはどうやってみればいいのでしょうか?
0544デフォルトの名無しさん2015/08/22(土) 15:22:26.90ID:ixHtKeVz
>>539
ドボンわかりやすくて好きなんだけど評判悪いの?
0545デフォルトの名無しさん2015/08/22(土) 15:46:33.05ID:FsGTTI8e
大雑把だからねあのサイト
0546デフォルトの名無しさん2015/08/22(土) 15:55:11.13ID:3HC4qH6u
>>543
sandcastle とかの話?
0547デフォルトの名無しさん2015/08/22(土) 15:58:13.44ID:sBJvd1d/
>>543
XML無いんだろ?じゃあ見れないよ
0548デフォルトの名無しさん2015/08/22(土) 16:07:06.30ID:oDfmtetu
>>544
どこの世界にも、自分は何もしないで他人の貢献にケチをつけるだけの卑しい馬鹿はいる。
0549デフォルトの名無しさん2015/08/22(土) 16:49:23.39ID:gTtGqll8
>>544
わりと古い情報が残ってる
0550デフォルトの名無しさん2015/08/22(土) 16:56:24.11ID:/dRiP8l8
そんなの一カ所だけじゃなくて複数箇所見て比較すれば済む話なんじゃ。。
多少問題があっても有効な情報も多数あるサイトならあった方が便利だと思うんだけど。
0551デフォルトの名無しさん2015/08/22(土) 17:07:23.50ID:/ddVcb/Z
>>547
NAudio.XMLがついていましたがどのような形式で書いてあるのかが分かりません
0552デフォルトの名無しさん2015/08/22(土) 17:15:56.97ID:+n0G/6wG
xml形式だよ
0553デフォルトの名無しさん2015/08/22(土) 17:37:51.84ID:KIpdc5GT
>>549
1.1〜2.0の頃のネタばかりだから昔はお世話になったけど、今は検索でヒットしてもスルーしちゃうわ
0554デフォルトの名無しさん2015/08/22(土) 17:51:26.44ID:JpeLxAWc
ドボンってIDisposableなオブジェクトでも基本usingしないというありえないコードばかりなので
0555デフォルトの名無しさん2015/08/22(土) 18:00:11.86ID:sBJvd1d/
>>554
そりゃそのまま使っちゃだめだよ
0556デフォルトの名無しさん2015/08/22(土) 18:09:11.16ID:TF79Y1M/
>>554
前も書いたけどあそこはそこまで酷いコードはない。
0557デフォルトの名無しさん2015/08/22(土) 18:18:17.85ID:TF79Y1M/
っていうか、ちゃんと記事読んだことがあれば、あそこの管理人がそんな馬鹿じゃないことぐらいは
分かると思うんだけど。

2chって何かを貶めることで自分が一人前だと錯覚したがってるとしか思えない馬鹿多いけど痛々しいよ。
0558デフォルトの名無しさん2015/08/22(土) 18:25:43.07ID:zOssAmca
>>544

>>536 に対して >>538 で、そういったリファレンスならMSDNだろ的な指摘して
>>539 はサンプル的なサイト見てんじゃないかと言っただけだろうと思う。
ドボンが悪いとかは書いてない。
0559デフォルトの名無しさん2015/08/22(土) 18:27:46.34ID:yRr1oZWk
msdn.microsoft.comのAPIリファレンスとリフレクタ(今はILSpy)だけで
すべてやりくりしてきた俺、ドボンを知らず低見の見物
0560デフォルトの名無しさん2015/08/22(土) 18:34:01.47ID:/al9OGnB
>>557
後半
あるあるある
0561デフォルトの名無しさん2015/08/22(土) 20:23:16.96ID:JpeLxAWc
>>557
いや、当人がどんな人物であったかとは関係なく、
あのコードを垂れ流しているというのは犯罪に近いよ。
分かってる人にはいいけど、初心者にはあまりいい影響を与えない。

何かを公開して流布している責任というものがある
0562デフォルトの名無しさん2015/08/22(土) 20:41:11.99ID:9JN1kuOn
言論の自由があるので仕方ない
0563デフォルトの名無しさん2015/08/22(土) 21:22:44.29ID:/dRiP8l8
そもそもネットの記事を鵜呑みにするヤツの方に問題があるんでわ。
0564デフォルトの名無しさん2015/08/22(土) 21:28:50.69ID:Z73ESiAy
>>561
わかる
でもそれは仕方ない
「にわかな奴ほど語りたがる」の法則は今だ根強い

糞かどうかの判断がつかないから顔面に糞つけて糞頬張りながら糞うpするんだよ
0565デフォルトの名無しさん2015/08/22(土) 21:35:41.70ID:3HC4qH6u
>>561
具体的にどれよ
url 教えてくれ
0566デフォルトの名無しさん2015/08/22(土) 22:46:49.90ID:FpzfkEmP
>>559
.NETのソースならよく読むけど、逆コンパイルするほど気になるソフトってなんかある?
0567デフォルトの名無しさん2015/08/23(日) 01:33:58.42ID:kX8AQ+CF
>>561
犯罪的なコードって何でしょう?
0568デフォルトの名無しさん2015/08/23(日) 03:28:16.91ID:AQ6+ZwTX
>>554
あそこはVB.NETがメインで、Usingが使えるようになる前からのコードがあるからだよ
Disposeしろって注意書きは時々みかけるし、そもそもあそこ初心者のためのサイトじゃないと思うが
0569デフォルトの名無しさん2015/08/23(日) 10:55:36.67ID:BEYfXVp0
Dispose厨のレベルの低さに泣ける
何でもかんでも明示的に破棄するのはアホのやる事だぞ
マネージドって言葉の意味少しは考えろよ
0570デフォルトの名無しさん2015/08/23(日) 11:11:07.80ID:U8H/JFYc
Dispose厨ってのは
MSDNも読まずにマネージドリソースの解放にDisposeを使っちゃう
アホなクラス設計者のことですよね?
0571デフォルトの名無しさん2015/08/23(日) 11:15:15.60ID:QlQ/u5s/
人を非難する前にマネージドリソースとは何か明確に定義せよ
0572デフォルトの名無しさん2015/08/23(日) 11:15:48.70ID:CLEYS0FF
>>569
どゆこと?

>>570
>マネージドリソースの解放に
それはGCがやるもんだが
0573デフォルトの名無しさん2015/08/23(日) 11:49:28.77ID:BEYfXVp0
クリティカルなリソースはusingを使うべきだ
パフォーマンス問題になるならusingを使っても良い
しかしそれ以外ではusingを使うな
CLRに全てを委ねてプログラマをリソース管理の責務から解き放つのだ
0574デフォルトの名無しさん2015/08/23(日) 12:05:44.69ID:9aqT3FI6
メモリ以外のリソースはすべて・・・・
0575デフォルトの名無しさん2015/08/23(日) 12:17:42.22ID:CLEYS0FF
>>573
全く分からん
0576デフォルトの名無しさん2015/08/23(日) 13:15:02.38ID:JQjk+2hP
マネージドリソース
それは(ライブラリの中のコード含めて)ネイティブを使わずに記述できるもの
ファイルやTCPソケットはこれに該当しない
クリティカルとか言ってる馬鹿は放置
0577デフォルトの名無しさん2015/08/23(日) 13:20:50.40ID:9aqT3FI6
メインメモリ以外のリソースはすべてアンマネージドだ
0578デフォルトの名無しさん2015/08/23(日) 13:22:15.46ID:prCrabVF
usingを使えるってことはIDisposableなわけで、つまりそのオブジェクトがアンマネージドオブジェクトを含んでいたりラップしているのが普通だ
IDisposableをやたら使うなならともかく、usingを使うなってのは意味がわからんな
0579デフォルトの名無しさん2015/08/23(日) 13:33:23.13ID:/F5UpcuB
ファイルやTCPがマネージドとか言い切ってる奴大丈夫かよ
0580デフォルトの名無しさん2015/08/23(日) 13:36:39.19ID:bbkyb+Wi
8月以降このスレで大丈夫そうな書き込みは見てませんよ
ここまで無脳と馬鹿のコラボばっか
0581デフォルトの名無しさん2015/08/23(日) 13:43:35.74ID:zGFxmPuI
ちょっと上にあった「ニワカほど語る」法則が炸裂してんだろ。
確かにDisposeだのマネージドだのニワカくせー話題だわ。
0582デフォルトの名無しさん2015/08/23(日) 15:33:29.02ID:JLY6V2Uz
無脳なのは573と579と581ぐらいじゃないか
0583デフォルトの名無しさん2015/08/23(日) 15:44:14.12ID:1KB/gLgO
ファイルみたいな共有リソース掴んでない限りGCされるまでメモリを消費するだけだし、Disposeする必要のない場面もあったりする
呼んで損はないから、明らか不要なとき以外は呼ぶが吉だけどね

WPF版のドボンみたいなサイトがほしい
0584デフォルトの名無しさん2015/08/23(日) 15:54:39.63ID:Rmxdvxky
>Disposeする必要のない場面もあったりする

へー、どんな場合だよ
ただしawaitのTask以外で
0585デフォルトの名無しさん2015/08/23(日) 15:58:35.35ID:cYtxjCYh
WPF(笑)

存在そのものが意味不明なフレームワークは隔離スレで大人しくしてなよ
お呼びじゃないから
0586デフォルトの名無しさん2015/08/23(日) 16:04:54.83ID:UzzkwRGD
>>584
GDI+関係はかなりあるよ。
Win9x時代はOSの制約上確実に呼ぶ必要があったが今は必ずしも必要ないもの
0587デフォルトの名無しさん2015/08/23(日) 16:19:52.74ID:bbkyb+Wi
頭がとろけたような具体性のかけらもない会話
0588デフォルトの名無しさん2015/08/23(日) 16:24:59.06ID:hc4Y2Ev5
無脳だと認めたら終わってしまうくらい他に何かが無いのに、これ以外にできることが無い奴なんだろうな
暴れすぎやで
> 573,579,581
0589デフォルトの名無しさん2015/08/23(日) 17:28:44.31ID:MIhiF6BJ
リソースクラスにはDisposeパターンを適切に実装する
実際にDisposeする時期はCLRに任せて人間は管理しない
これ.NETの世界じゃ基本中の基本だよ
管理不要でパフォーマンスへの影響もないリソースを工数かけて人間の手で管理したがる
救いようのない馬鹿としか言いようがない
0590デフォルトの名無しさん2015/08/23(日) 17:37:04.51ID:CLEYS0FF
はぁ??
0591デフォルトの名無しさん2015/08/23(日) 17:43:43.11ID:MIhiF6BJ
>>590
やれやれ
論理的な反論ならまだ救いようがあるが、
無学が原因で理解が及ばない、ってだけでケチを付けるなよ
それもう敗北宣言に等しいぞ
0592デフォルトの名無しさん2015/08/23(日) 17:48:20.40ID:0gT6iToJ
>>586
kwsk
StringFormatとかIDisposableだから律儀にusingしてるけど
0593デフォルトの名無しさん2015/08/23(日) 17:50:34.03ID:0gT6iToJ
起動してすぐ終了するようなツールしか作らないならファイナライザ任せでもいいかもね
0594デフォルトの名無しさん2015/08/23(日) 17:54:13.26ID:hc4Y2Ev5
リソースの意味が微妙な感じの流れだから、それは置いとくとして
ファイルなどを取り扱う場合はちゃんとDisposeしないとファイルが開きっぱなしになって、他所からアクセス不能になって困る事がある
必ずクローズすれば良いが、例外などで予想外の進行をした場合に備えて using で確実なDisposeをしておいた方が良いだろう
面倒だがDisposeがあるなら必ずDisposeするべきでしょう

C++などの場合と比べてファイナライザ(デストラクタ)の実行順序が当てにならないので、あてになる順序をきちんと作る必要がある場合も利用されるでしょうから
0595デフォルトの名無しさん2015/08/23(日) 17:57:04.83ID:bbkyb+Wi
あの、ふらっとでやってくれる?
そういうの
0596デフォルトの名無しさん2015/08/23(日) 18:01:14.22ID:hrfhzpqC
ニワカなやつほど(略
0597デフォルトの名無しさん2015/08/23(日) 18:04:40.51ID:MIhiF6BJ
>>594
当然
適切な終了処理が必要なものは、そう書く必要がある
しかし、そういった処理が不要で、CLRに任せておけば良いように作られたリソースクラスでは必要がない
むしろ不必要な記述でコードを汚染するだけなので、書いてはいけない
すでに自動化されているものは、機械に任せるのが正解なのである
0598デフォルトの名無しさん2015/08/23(日) 18:04:49.28ID:hc4Y2Ev5
595,596
煽りたいだけなら、今すぐネット切って死んでしまえば良い
0599デフォルトの名無しさん2015/08/23(日) 18:09:32.22ID:hc4Y2Ev5
>>597
Disposeを書くという事は、今後そのライブラリを作った人が
そのように使う必要があるよう変更するかもしれないという余地が残っているのです
みんなで作業するときトラブルなどが発生しないように取り決めた事ですから、可能な限り従う事がよろしいでしょう
0600デフォルトの名無しさん2015/08/23(日) 18:13:39.60ID:bbkyb+Wi
煽りたくないけど低レベル過ぎて邪魔だよ
どっから湧いてるの?
0601デフォルトの名無しさん2015/08/23(日) 18:17:14.27ID:idej2sB9
>>600
お前も煽ってるだけで何も貢献してないけどな
0602デフォルトの名無しさん2015/08/23(日) 18:17:59.99ID:GkEjDFKz
俺のDisposable講義は始まったばかりだぜ
聞きたくない奴は帰りな
0603デフォルトの名無しさん2015/08/23(日) 18:21:04.69ID:GkEjDFKz
MSDNやそこらのブログに散々書いてあるようなことしか言わないぜ
耳タコだと思うが勘弁な
俺は喋りたいんだ
昨日今日知ったばかりなんでな
だから聞いてくれ
0604デフォルトの名無しさん2015/08/23(日) 18:23:20.43ID:MIhiF6BJ
>>599
そんな糞みたいな仕様変更をする破壊工作員は処刑が必要
ぶっちゃけコード直してる場合じゃない
最初のバージョンから、Disposeが必須であると、明記されているなら使うべきだし
明記されてい無いなら、Disposeを必須にするような変更は行ってはならない
馬鹿でもわかる話だが知らなかった?
0605デフォルトの名無しさん2015/08/23(日) 18:27:38.13ID:NRN2Fhep
お前の頭から修正しとけよ
もうリカバリ不能かも知れんがな
0606デフォルトの名無しさん2015/08/23(日) 18:34:31.35ID:MIhiF6BJ
ふぅ〜
まいったね
反論すらできないところまで追い詰めちゃったか
論理的な、とまでは言わないから、せめて安い暴言じゃなくて反論を頼むよ
0607デフォルトの名無しさん2015/08/23(日) 18:36:25.70ID:UiYX5d8M
そもそもリソースクラスって何だよ
0608デフォルトの名無しさん2015/08/23(日) 18:36:31.29ID:nxY8tWuM
ちょっとこのスレDisposeしてくる
0609デフォルトの名無しさん2015/08/23(日) 18:41:24.76ID:bbkyb+Wi
Disposeの実装が糞で駄目なパターンだな
0610デフォルトの名無しさん2015/08/23(日) 18:41:34.58ID:UiYX5d8M
それに呼ばないのが基本中の基本としつつもIDisposableの代表例であるFileStreamを例外にするってどういう事だよ
長々と書いているが結局呼ばなくていい場合があると言いたいだけか?
0611デフォルトの名無しさん2015/08/23(日) 18:44:40.15ID:JbH8lT1Q
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
0612デフォルトの名無しさん2015/08/23(日) 18:50:22.66ID:53h6zSH3
CLR再起動
0613デフォルトの名無しさん2015/08/23(日) 18:50:45.39ID:hc4Y2Ev5
>>604
それでは共同作業になりませんね、そこまで自我を通したいなら自分一人で作業するしかないでしょう
取り決めは大事
0614デフォルトの名無しさん2015/08/23(日) 18:53:42.93ID:MIhiF6BJ
>>613
共同作業を円滑にするために、常にDispose必須、とかいうオレオレルールを排除しなければならない
理由はもう説明したな
0615デフォルトの名無しさん2015/08/23(日) 18:59:05.24ID:53h6zSH3
今度は共同作業のマナー論ですか
君らはまず場を弁えることを学ぶのが先決では…
0616デフォルトの名無しさん2015/08/23(日) 19:02:58.05ID:8rh7GHk2
>>592
Font, Brush, Penなんかは自分で作った物(システムリソースじゃない)であっても
今のWindowsではいちいちDisposeしなくてもまず何の問題もない。

そうは言っても習慣で書いちゃうけどね。
0617デフォルトの名無しさん2015/08/23(日) 19:09:30.05ID:2AMvri3n
>>616
そうなんだ

でも呼ばないと高コストなファイナライザでの解放になっちゃうしね
0618デフォルトの名無しさん2015/08/23(日) 19:24:52.17ID:qzhEyH2V
今unityでゲームを作っているのですが、累計の記録ってどう書けばいいのでしょうか?
今まで対象のオブジェクトが何回タップされたか記録したいです。
playerprefsを使えばできますか?
0619デフォルトの名無しさん2015/08/23(日) 19:25:54.56ID:idej2sB9
unityスレで質問しなよ
0620デフォルトの名無しさん2015/08/23(日) 19:36:46.47ID:hc4Y2Ev5
Disposeがどうしても嫌なら、勝手に俺ルールを作り出さず素直にファイナライザに書けばいいんだよ
そういうルールで作ろうという事になっているんだから
それで問題なければそれで上手くいく、そうでないものは決められた極力ルールに従う事

そうしてファイナライザのみにすると具合が悪い話が必ず出てくると気付くはず
例えば、ファイルオブジェクトのように、ロック握っている奴とか
例えば、アンマネージ側の参照カウンタがカウントダウンされなくて予想外のメモリーリークしたとか
例えば、C++のつもりでデストラクトの順序を考えていたら予定外の順序でファイナライザが起動してクラッシュしたとか
0621デフォルトの名無しさん2015/08/23(日) 19:44:15.23ID:0gT6iToJ
>>616
システムリソースじゃないってほんとかい? GDIオブジェクトとしてタスクマネージャに表示されるんじゃないの?
でも大概描画=なんども呼ばれるシナリオだから
そのたびに破棄しておいたほうがメモリ的にも安心じゃね?
0622デフォルトの名無しさん2015/08/23(日) 19:45:43.68ID:MIhiF6BJ
>>620
何回言えばいいのかな
呼び出しが必要な必要と使用に明記する
明記されない以上は明記しなくても問題ないように実装する
それが社会のルールだ
呼ばないとダメになる場合があるのにそれを仕様に明記しないでDisposeが呼ばれるオレオレルール(出典不明)を前提に作るな
クズが死ね
0623デフォルトの名無しさん2015/08/23(日) 19:53:17.04ID:JbH8lT1Q
>>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++使い)
0624デフォルトの名無しさん2015/08/23(日) 19:58:35.53ID:nxY8tWuM
このスレを読んだら初心者の私もウルトラスーパーハイパーミラクルアルティメットDispose名人になれました!
0625デフォルトの名無しさん2015/08/23(日) 20:01:04.88ID:MIhiF6BJ
>>623
deleteしなくても良いであってるよ
自動化したのに手作業が必要なんて馬鹿みたいだろ
0626デフォルトの名無しさん2015/08/23(日) 20:08:50.19ID:9aqT3FI6
でも、ファイナライザは論理アドレスが圧迫されてGCが発動しないと呼ばれないよ
メモリとシステムリソースは別物だから、
開放のトリガーを論理アドレスの枯渇に頼るのは良くない作法なのでは
0627デフォルトの名無しさん2015/08/23(日) 20:09:16.04ID:hc4Y2Ev5
初心者の頃 Disposeし忘れて、ライブラリの書き直しが大変な事になったのでは GetEnumerator() で取ってきたIEnumerableのDisposeのし忘れかな
ファイルオブシェクトをこっそり握っていて、ファイルがロックされたままだったのを
色々システムを結合した後に気づいて、泣きそうになった
C++から移行した後、嵌ったのは
class A
{
 ~A() {}
}
class B
{
 A a;
 ~B() {}
}

var tmp = new B();
こういったケースかな、C++であれば必ず a のデストラクタが後だが C# だとどちらが先になるか分からなくなる
C++と違いデストラクタではメンバは迂闊に触れないという事実を思い知らされた
0628デフォルトの名無しさん2015/08/23(日) 20:18:42.77ID:hc4Y2Ev5
おっと、GetEnumerator() で取って来れるのは IEnumerable ではなくて IEnumerator でした
Disposeがリソースと関係なく必要になるケースはC++と違いデストラクタがまともに使えないという事情から来ることも多々あります
0629デフォルトの名無しさん2015/08/23(日) 20:20:23.58ID:ZkLCFLWu
まだやってやがる
死ねよマジで
それともあれか、手伝って欲しいのか?
殺してやるから住所教えろや
0630デフォルトの名無しさん2015/08/23(日) 20:26:42.76ID:0gT6iToJ
>>629
おまえの住所先に書けやバカヤロウ
0631デフォルトの名無しさん2015/08/23(日) 20:27:29.87ID:bbkyb+Wi
見なかったことにしてやるからさっさと執行してくれや
0632デフォルトの名無しさん2015/08/23(日) 20:31:02.28ID:MIhiF6BJ
おうかかってこいやチキン野郎
0633デフォルトの名無しさん2015/08/23(日) 20:50:07.75ID:JbH8lT1Q
>>625
コンセプトとしてはその通りだけど、ID:hc4Y2Ev5が言っているのもまた然りだと思うよ。

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

確認してみたけど、C#のデストラクタは起動を予約してGCから起動するという仕様のように見える。
> http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_011/csharp_abc03.html
確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
だから>>627-628の言うことはあっている。620の3つのケースもあり得ると思う。
理由は指摘の通り、C#ではデストラクタの起動順/タイミングが規定できないからだね。
0634デフォルトの名無しさん2015/08/23(日) 20:50:20.22ID:1KB/gLgO
>>584
特定の方法でインスタンス作った時にだけ意味があるというのは割りとある
例えば、FormをShowした時とかは自動でDisposeされるから不要
0635デフォルトの名無しさん2015/08/23(日) 21:31:38.21ID:hc4Y2Ev5
>確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
ファイルオブジェクト的な物を使う側ではなく作る側で、実際にいろいろやってみて面倒な事になってるなと思ったのは
フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね
アンマネージの場合はこの辺は実にすっきり記述できるんですが、マネージでは厄介です

初心者の時
~Class() { Dispose(); }
なんて事をあまり深く考えずにやってました、そして謎の異常終了を発生させてましたね
Disposeが呼び出されずにデストラクタが呼び出されたら、できることはもはや安全停止だけです
まともな終了処理は最早できません
0636デフォルトの名無しさん2015/08/23(日) 21:35:34.12ID:OpHxID+X
C++のノリでデストラクターを間違った使い方して
GCの洗礼を受けたのはわかった
0637デフォルトの名無しさん2015/08/23(日) 21:37:58.50ID:aJXfAZiV
もうskypeで議論して最終的に友情をめばえさせたら?
C#である必要もないし
0638 ◆QZaw55cn4c 2015/08/23(日) 21:38:38.49ID:GHcBJPT0
C++ でも delete this は普通やらない‥
0639デフォルトの名無しさん2015/08/23(日) 21:40:51.66ID:hc4Y2Ev5
デストラクタ的な機能が欲しければC#ではDisposeしか手段が無いんです
ファイナライザは使えません、その処理はシステムに任せることはできないのです
それが分かっていないと安易にDispose不要という考えが出てしまいます
0640デフォルトの名無しさん2015/08/23(日) 22:03:58.87ID:pgaNpm//
はいはいちごいねー

死ね
0641デフォルトの名無しさん2015/08/23(日) 22:09:13.04ID:oScCmTRi
おい待てよ
Dispose不要派は
1.ファイナライザーでやればいいんだぜ
だけじゃなくて
2.解放など軟弱もののやること だってボクの環境で問題になったことないんだもん
の方が多数派だろ
0642デフォルトの名無しさん2015/08/23(日) 22:11:48.27ID:rrCWAeC5
>>641
うるせえ喋んなカス死ね
0643デフォルトの名無しさん2015/08/23(日) 22:13:14.66ID:nxY8tWuM
ここまで全部俺の自演
0644デフォルトの名無しさん2015/08/23(日) 22:16:59.42ID:1KB/gLgO
>>633
IDisposableを実装している場合は、明らかに不要な場合以外は使い終わった後にすぐDisposeすべき
PenもBrushも中にGDIのハンドルを抱えてるわけで、アンマネージドのシステムリソースやメモリを必要以上に使ってしまう
ファイナライザは残っていると仕様上開放が先延ばしになって長時間メモリを占拠するから、想定よりコストは高い

>てか、gcnew って delete しなくていいためのものじゃなかったんかー!
WindowsがすべてGCの管理上で動くようになればな。GC管理外のデータはプログラマが責任を持たざるをえない
0645デフォルトの名無しさん2015/08/23(日) 22:21:09.75ID:hc4Y2Ev5
コストに関しては、昨今はシビアなノーパソでもない限りは自分はあんまり気にしなくなってたりしますw
ロジック的にDisposeが必要不可欠な物の方を意識したいところです
0646デフォルトの名無しさん2015/08/23(日) 22:24:17.01ID:prCrabVF
そういやVS2015から、IDisposable選択して右クリック→クイックアクションで、
Disposeのひな形吐き出してくれるんだよな。便利になったものだわ
0647デフォルトの名無しさん2015/08/23(日) 22:29:32.06ID:MIhiF6BJ
最初から何度も言ってるがこれが正解な

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

クライアントは殆どが3なんだわ
Disposeなんか要らないんだよ
これが今日のまとめね
0648デフォルトの名無しさん2015/08/23(日) 22:33:20.72ID:hc4Y2Ev5
3. 機能的に問題ないうえに負荷も軽微→元クラスのIDisposeを除去せよ
これが正解です
0649デフォルトの名無しさん2015/08/23(日) 22:37:13.05ID:YS/VElDC
1日かけて成果物3行って舐めてるのか貴様ら
0650デフォルトの名無しさん2015/08/23(日) 22:37:24.13ID:JbH8lT1Q
>>639
仰るとおり、C++→C#へのポーティングではC#のデストラクタには期待できないから、
いちいち手動で順番も考慮してDispose()しかなさそうだ。
ただこれはだいぶ手間だから、何らかの上手い解決策が既にありそうだけどね。

仕様から言って、C#ではデストラクタの起動順を期待するコーディングをしてはいけない。
ただ、
> フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね (635)
これはよく分からない。(これが発生する可能性がシステム的にあることは分かる)
とはいえ、C#って多重継承できないし、アンマネージドとマネージドを混ぜてぐちゃぐちゃにしたりすることがなければ、
これって無いよね?
(逆に言えば、マネージドコードだけならこういったことは発生しない、と思っている。
そして本来はアンマネージドを大量に使うことこそが問題。ポーティングならある程度致し方ないにしても。)
0651デフォルトの名無しさん2015/08/23(日) 22:37:59.91ID:hc4Y2Ev5
ここにはゲーム等、ハイパフォーマンスが必要になる人もいるでしょう
その時Disposeしなくても問題ないと開発元に確認できた、Disposeしない方が高速である事が確認された
そして、それをする事でソフトの商品価値が向上する、この条件でDisposeしないを選択するのが正しいと思う
それ以外は必ずやらなければ駄目です
0652デフォルトの名無しさん2015/08/23(日) 22:38:00.89ID:HkRU0Alf
機能的に問題ないがDispose使わないとボトルネックになるなんて
どんな状況だよ
0653デフォルトの名無しさん2015/08/23(日) 22:38:38.88ID:MIhiF6BJ
>>649
行数にこだわるのは老害の証
現代のプログラマは中身を見ないと
0654デフォルトの名無しさん2015/08/23(日) 22:39:55.83ID:+kgkAxfw
>>647-648
「だから何」レベルのまとめはQiitaにでも書いといて
あと死ね
0655デフォルトの名無しさん2015/08/23(日) 22:41:15.09ID:prCrabVF
なんかしらんが、このレベルの話題が一番盛り上がるよな
上でも下でもこうはならん
0656デフォルトの名無しさん2015/08/23(日) 22:42:20.89ID:bbkyb+Wi
毛の壁を笑えんよこれは
0657デフォルトの名無しさん2015/08/23(日) 22:45:56.71ID:hc4Y2Ev5
>>650
マークスイープでは順序を決めることができないんですよ
循環した参照がある場合どこから削除すべきかという判断材料がなくなる、ならば最初から順番は無視という判断なのだと思います
実際ガベコレ毎に順序は出鱈目です、気を付けてください
C++の場合、例えば循環参照があったらメモリーリークですが、プログラマのレベル高いから平気だよねってコンセプトではない訳です

それにしてもC++の芋ずる式デストラクタは気持ちいいです・・・
0658デフォルトの名無しさん2015/08/23(日) 22:53:59.24ID:MIhiF6BJ
>>650
マネージドだけでも普通に発生する
バッファが回収可能になるのと所有者インスタンスがFRQにぶち込まれるタイミングはほぼ同時
どっちが先に処理されるかは誰にもわからない
0659デフォルトの名無しさん2015/08/23(日) 22:58:36.70ID:MIhiF6BJ
というのは嘘だ
0660デフォルトの名無しさん2015/08/23(日) 22:59:24.15ID:rRq+bYgY
>>659
そうかい
では死ね
0661デフォルトの名無しさん2015/08/23(日) 23:01:02.88ID:MIhiF6BJ
>>660
しゃぶれよ
0662デフォルトの名無しさん2015/08/23(日) 23:02:56.73ID:5fcokCbE
バカには難しかったかな
クラスAのオブジェクトaはクラスBのオブジェクトbを参照しているとする
A a = new A();
a = null;
ここでaとbが同時に解放対象になって、aとbの解放順序が非決定的
0663デフォルトの名無しさん2015/08/23(日) 23:04:45.05ID:9aqT3FI6
何でそんなサンプルコードが必要だと思ったの?
0664デフォルトの名無しさん2015/08/23(日) 23:06:20.29ID:JbH8lT1Q
>>657
見た目はマークスイープだけど、中身は参照カウント方式だったはず。(だからそれなりに順を追ってGCされる)
というのを中の人が書いたドキュメントがあったはずだが、検索しても今はでてこない。
ブクマによると多分以下なのだが、アーカイブになっていてどれなのか分かりませんorz

Microsoft .NET Framework の自動メモリ管理 Part I
http://msdn.microsoft.com/ja-jp/library/bb985010.aspx
0665デフォルトの名無しさん2015/08/23(日) 23:07:02.82ID:hc4Y2Ev5
C++の人は、ここをミスしやすいと思うし、見ている印象結構C++からやってきた人多そうだから
悪くないサンプルだと思うのですが・・・
0666デフォルトの名無しさん2015/08/23(日) 23:10:23.32ID:MIhiF6BJ
>>662
と思うじゃん?
0667デフォルトの名無しさん2015/08/24(月) 00:08:47.57ID:genYk8wg
さてまとめるか。
「不必要にDisposeを量産するバカが多いため
usingを怠る悪習が蔓延した」
0668デフォルトの名無しさん2015/08/24(月) 00:31:00.45ID:e5Jihg5N
IDisposeを持つオブジェクトを握るオブジェクトはIDisposeを持つしかない
不用意でなくても普通に増えるしかないよ
IDisposeを持つ物は Stream や Task があるがどれも基本的なクラスばかりで避けては通れない
0669デフォルトの名無しさん2015/08/24(月) 00:35:53.34ID:4CFfNfbx
>>662
さすがにそのケースでのリークはないよね?

Array等の中身として参照を持っているだけなら、
そもそもデストラクタがどちらから呼ばれても問題ない。

継承関係なら自動でやってくれるはず。
自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、
デストラクタがいつ呼ばれるかは問題ではない。
(自作クラスの一つのデストラクタだけで済むように構成する。
ただしリソース解放が必要ならDisposeを実装しないとタイミングが読めない。)

菱形継承で先に基底クラスが解放されたりするのは問題になるけど、C#にこれはない。

だから問題になるのは、一度しか呼ばれないアンマネージド側で
マネージドのデストラクタが呼び出し済みなのを期待している時で、多分これだけだよね?
マネージド側は放置しててもなんだかんだでいつかはGCされるはず。
それが嫌ならDisposeしろって事で。
だから、アンマネージドを先に全部解放するようにすれば、問題は発生しないと見た。
0670デフォルトの名無しさん2015/08/24(月) 00:36:24.75ID:4CFfNfbx
なお、MSDNのデストラクターにまんま書いてある。
> デストラクターがいつ呼び出されるかはガベージ コレクターによって決定されるため、プログラマは制御できません。
> 一般に C# では、ガベージ コレクションを使用しない言語で開発する場合ほど、メモリ管理を必要としません。
> .NET Framework のガベージ コレクターが、オブジェクトに対するメモリの割り当てと解放を暗黙的に管理します。
> ただし、ウィンドウ、ファイル、ネットワーク接続などのアンマネージ リソースをアプリケーションでカプセル化するときは、
> デストラクターを使ってこれらのリソースを解放する必要があります。
> アプリケーションで貴重な外部リソースを使用している場合は、
> ガベージ コレクターがオブジェクトを解放する前にリソースを明示的に解放する手段を用意することをお勧めします。
> この処理を行うには、オブジェクトに対して必要なクリーンアップを実行する Dispose メソッドを IDisposable インターフェイスから実装します。
> これによって、アプリケーションのパフォーマンスを大幅に向上させることができます。
> このようにリソースを明示的に制御する場合でも、
> デストラクターは、Dispose メソッドの呼び出しが失敗したときにリソースをクリーンアップするための安全装置になります。
> https://msdn.microsoft.com/ja-jp/library/66x5fx1b.aspx
0671デフォルトの名無しさん2015/08/24(月) 00:42:37.88ID:e5Jihg5N
C#の場合デストラクタでやっていいことは、static関数の呼び出しくらいだろうな
class型フィールドの内容に触ることはできない、触ってよいのは int や enum といった値のフィールドだけ
それ以外の操作をしたければDisposeを使うしかない
順序良く呼び出されたとしてもこれでは何もできない
0672デフォルトの名無しさん2015/08/24(月) 00:51:10.64ID:OjRQ25eS
ID:4CFfNfbx
この人は何言ってるかわからなくて、頭くらくらしますよね
そもそも話が通じてないし
0673デフォルトの名無しさん2015/08/24(月) 01:04:15.56ID:e5Jihg5N
C++からのポーティングが引き返せないところまで来ているのかもw
笑っちゃいけないか、ご愁傷様かな(ナムナム
0674デフォルトの名無しさん2015/08/24(月) 07:38:39.63ID:FEQDPFGC
なんか、マネージド/アンマネージドコードとマネージド/アンマネージドリソースがごっちゃになってる人がいるように見えるのは気のせいだろうか。
0675デフォルトの名無しさん2015/08/24(月) 07:41:36.51ID:xNseMvgF
蒸し返すなゴミクズ
0676デフォルトの名無しさん2015/08/24(月) 09:19:55.49ID:h+mHYijt
まだ続けるの?
0677デフォルトの名無しさん2015/08/24(月) 09:50:06.14ID:xNseMvgF
もうウンザリ
0678デフォルトの名無しさん2015/08/24(月) 10:58:39.56ID:/7MwCGkP
嫌なら見るな
0679デフォルトの名無しさん2015/08/24(月) 11:48:38.94ID:Q0ZjIosN
いや、低レベルな話がしたいならふらっと行けよ
だからテメエは無脳なんだ
0680デフォルトの名無しさん2015/08/24(月) 12:27:15.22ID:e5Jihg5N
一番低レベルなヤツ -> 679
0681デフォルトの名無しさん2015/08/24(月) 13:03:00.83ID:kR1o4QUh
ここが隔離スレだ
0682デフォルトの名無しさん2015/08/24(月) 15:21:00.93ID:/7MwCGkP
なんでいつも単発IDなんですかね
0683デフォルトの名無しさん2015/08/24(月) 15:48:52.90ID:CmRZDEoS
単発が嫌なら見るなよ
0684デフォルトの名無しさん2015/08/24(月) 15:52:52.92ID:mvfSohk+
>>682
IDがきちんと出るようにするだけの技術力がないから…
0685デフォルトの名無しさん2015/08/24(月) 20:40:58.44ID:UIihvy++
C#って内部実装変えただけでも依存するアセンブリビルドしなきゃなの?
0686デフォルトの名無しさん2015/08/24(月) 20:45:58.83ID:xp4qRvA3
必要なし
0687デフォルトの名無しさん2015/08/24(月) 21:02:14.07ID:aDhIIP+g
ザマリン標準化まだ時間かかりそうですか
0688デフォルトの名無しさん2015/08/24(月) 21:25:54.27ID:vU2SL/AS
Xamarinは目先の金儲けしか頭にないから期待しても無駄
0689デフォルトの名無しさん2015/08/24(月) 21:46:54.78ID:8rH+FULH
>自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、

これ正しいの?
0690デフォルトの名無しさん2015/08/24(月) 22:31:14.60ID:vU2SL/AS
そのファイナライザ内だけで完結するんならそりゃそうだろ
・AとBが両方ともアンマネージリソースを抱えている
・AがBを参照している
・ネイティブライブラリの仕様でBはAより先に解放しなければならないと決まっている
こういう状況では当然単純にAとBのファイナライザに頼るわけにはいかない
Bにはファイナライザを実装しないでAのファイナライザ内でBのリソースを解放し、
その後にAのリソースを解放するといった工夫が必要になる
0691デフォルトの名無しさん2015/08/24(月) 23:17:12.96ID:4CFfNfbx
>>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なら描画しまくるアプリ(ゲーム等)でなければあまり気にしなくてもいいのでは。
0692デフォルトの名無しさん2015/08/24(月) 23:21:14.35ID:agiYVVps
>リークはどうやっても発生しないように思える

こういう馬鹿がプログラミングの真似事をするとロクなことがない
0693デフォルトの名無しさん2015/08/24(月) 23:23:09.51ID:163KCsEM
簡潔に一度だけ言うね
ID:4CFfNfbxはあと三年ROMってから
それからカキコしようね
0694デフォルトの名無しさん2015/08/24(月) 23:26:49.44ID:OjRQ25eS
これさー
メモリ以外のリソース、たとえばウィンドウハンドルやGDIオブジェクトetcがさー
枯渇とまでいかなくても、使いすぎと感知したタイミングでGCが発動する仕組みが.Net側にあれば、
usingとか、ファイルなんかの特殊な事例以外では、要らなくなるのでは?
GC発動のトリガーがメモリだけに依存しているから、いろいろ心配になるわけで
0695デフォルトの名無しさん2015/08/24(月) 23:27:45.15ID:vU2SL/AS
ファイナライザ内で別のオブジェクトにアクセスするのは基本的には問題ないぞ
その別のオブジェクトがファイナライザを持ってる場合には
既にファイナライザが呼び出されて無効になっている可能性があるからダメというだけ
ファイナライザを持ってるオブジェクトから参照で辿れるオブジェクトはどのみち全部一度復活して
GCを妨害してしまうから、アクセスすることが特にGCの妨げになるということもない
一番悪いのは「ファイナライザを実装すること」自体な
0696デフォルトの名無しさん2015/08/24(月) 23:57:38.17ID:e5Jihg5N
ファイナライザに実装すべきなのは、安全装置だけだろう
例えばアンマネージドのハンドルを握っている場合
ハンドルはIntPtrだから、別のクラスに入れるといったことをせず直接フィールドに配置しているなら
アクセス可能だから、ここでリ参照カウンタをダウンすれば一応解放は可能
fopenみたいなものを相互運用している場合もハンドルとstatic関数をdllから呼び出せるなら
バッファのフラッシュは諦めるとしてもファイルを閉じることくらいはできる
いずれも最終手段レベルだね
0697デフォルトの名無しさん2015/08/25(火) 00:04:34.64ID:uHUYRmLo
>>691
リーク問題については、あまり期待しないほうが良い
Excelの相互運用なんかをすると、当マイクロソフト製なのに結構厄介だし、洩れまくるし
自作でやってもなかなか糞な事になる
0698デフォルトの名無しさん2015/08/25(火) 00:42:16.41ID:FzRJlm7d
すいません言い直します。

・C#では、正しく構成されたクラスを使用している限り、本質的なリークは発生しない。
(明示的にDisposeしなくてもいつか回収される《=Finalize時にDisposeが呼ばれる》)

じゃないかな?
もちろん.NET謹製のはリークしない。
自作クラスでアンマネージリソースを使う場合、MSDNによると、
・Disposeを実装し、SafeHandleでアンマネージリソースをラップする。←こっちがオススメ
・Finalizeを実装する。
のどちらかをやっておけばいいはず。
> https://msdn.microsoft.com/ja-jp/library/498928w2(v=vs.110).aspx

だからリークしてるのであれば、自作クラスの構成がまずいのだと思うのだが。
もちろんクラスの構成はC++流(デストラクタ)ではなくC#流(上記)にしないといけない。
0699デフォルトの名無しさん2015/08/25(火) 00:50:30.42ID:wg5Da8me
ListAとListBの中身を1つずつ比較して、ListBの内1つがListAに無かったらそのオブジェクトを追加し
同じものがあれば追加しないと言う機能を作りたいのですが、foreachだと例外が出て、
for文だと無限ループになってしまいどうやっても上手く実装できませんでした。
一体どうすればListの中身を1つずつ比較して問題なく追加する事が出来るのか教えていただけないでしょうか
0700デフォルトの名無しさん2015/08/25(火) 00:57:16.45ID:bwlYR2I5
問題が起こる、最小のコードをアップしなさい
0701デフォルトの名無しさん2015/08/25(火) 01:11:01.00ID:wg5Da8me
色々書き換え続けて最終的にコンパイルすら通らなくなったんですが多分こんな感じです。
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]);

}}
0702デフォルトの名無しさん2015/08/25(火) 02:03:56.13ID:bwlYR2I5
for( a: A )
for( b: B )
{
0703デフォルトの名無しさん2015/08/25(火) 02:07:01.06ID:bwlYR2I5
擬似コードですが、これでどうでしょう
for( a: A )
{
  bool found = false;
  for( b: B )
  {
    if( a == b ){ found = true; break; }
  }
  if( !found ){ B.push_back( a ); }
}
0704デフォルトの名無しさん2015/08/25(火) 02:56:24.98ID:wg5Da8me
よく考えてみたら1つずつ比較してる最中、違った瞬間に追加するってコードになってました。
それで調べたら配列の中を比較するIndexofという機能をついさっき知って実装したところ、上手く動きました。
0705デフォルトの名無しさん2015/08/25(火) 04:17:23.94ID:ljTVrax0
ListB = ListB.Union(ListA).ToList();
0706デフォルトの名無しさん2015/08/25(火) 07:28:11.84ID:uHUYRmLo
>>698
shared_ptr weak_ptr の使い分けのように仕組みを意識して使わないと
システム任せだと無理があるんだよ、SafeHandleを使えば万事解決という訳にはいかない
そろそろ諦めなはれ、アンマネージと相互運用したければ覚悟決めるしかねーですw
0707デフォルトの名無しさん2015/08/25(火) 10:56:12.32ID:y1FTBoUo
アンマネージドとかどういう場面で使うんですか?
C言語とかの領域ですよね?
本見てもどういう場面で使うのか乗ってないんですが
0708デフォルトの名無しさん2015/08/25(火) 11:03:08.95ID:aUx99M6r
アンセーフ?
0709デフォルトの名無しさん2015/08/25(火) 11:33:21.01ID:Wpti2W5K
SafeHandleってサーバーで複数のドメインが1プロセスに同居するような特殊なシステムでない限り何の意味もないんだけどな
使いたがる連中のなかでそれを正しく理解してるのは少ない
0710デフォルトの名無しさん2015/08/25(火) 11:43:43.66ID:lyj94kL0
まあ、C#は元々トロイからね、別に頑張って速くしたりするのは無駄だよね?(´・ω・`)
0711デフォルトの名無しさん2015/08/25(火) 12:20:15.95ID:ya7qPQ7D
トロイ?ゆうちゃん?
0712デフォルトの名無しさん2015/08/25(火) 12:57:13.30ID:UmUy/CWK
>>707
普段コンビニとか外食でメシを食ってるひとが
まな板と包丁買ってきて自分で魚をさばくような話

君はずっとグルメガイドを見てればいい
0713デフォルトの名無しさん2015/08/25(火) 13:09:56.76ID:uHUYRmLo
Dispose不要なんて自分ルールを広めようとしてもそうはいかないから
早めにルールに従ってDisposeをキチット実行するよう修正しましょう
そうしないと後の修正で口から泡を吹く羽目になりますよって話ですw
0714デフォルトの名無しさん2015/08/25(火) 13:33:31.83ID:yb6n8Wdy
死ね単芝
0715デフォルトの名無しさん2015/08/25(火) 18:38:02.96ID:cRNFEmJ6
頭の中がVB6で止まっているのでしょう
0716デフォルトの名無しさん2015/08/25(火) 18:40:19.98ID:cRNFEmJ6
VB6に対して失礼でした
0717デフォルトの名無しさん2015/08/25(火) 21:16:04.98ID:11iB37Vu
>>698
FromHandleとか逆にハンドルを取得する系はIntPtrしか受け付けてくれないから、不要になった時にうまく解放しないといけないのが割と面倒
理解不足も含めて、メモリリークさせてるサンプルはよく見かける

あとは、メインフォームとか静的なイベントに参照にぎられてるとかもちゃんと意識しないと危険
0718デフォルトの名無しさん2015/08/25(火) 22:00:39.66ID:FzRJlm7d
>>706,717
個人的にはDisposeを使う方がお行儀がいいのは認める。
ただ、C#の思想としては、「タイミングは規定できないが、解放はシステム側で保証するから、
面倒なことを考えずに具だけに集中しろ」ということなのだと思う。
だから、クラスをきっちり書けば出来そうな気もするし、それに向けて整備していっているはず。

とはいえ、俺はGUI(描画)に使っている程度で、そんなに本格的に使っていない。
だから命中していないだけで、言われているケースがありそうだというのはなんとなく感じる。
0719デフォルトの名無しさん2015/08/25(火) 22:03:49.42ID:bwlYR2I5
>解放はシステム側で保証するから

メモリに関してだけはそのとおりですね
0720デフォルトの名無しさん2015/08/25(火) 22:07:38.08ID:FzRJlm7d
>>707
アンセーフはこれ。見にくくなるが速くなる。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html

アンマネージドはVC++の機能で、SSEとかを使いたいときに使う。
0721デフォルトの名無しさん2015/08/25(火) 22:13:15.62ID:Y9IbSqw2
>>719
バカはリソース解放の必要性が理解できないので説明するだけ無駄
0722デフォルトの名無しさん2015/08/25(火) 22:17:53.09ID:JrnVqkd7
>アンマネージドはVC++の機能で、SSEとかを使いたいときに使う。

はぁ……
何言ってんのこいつ
C++から来てなんでも知ってるつもりのバカヤロウじゃん
0723デフォルトの名無しさん2015/08/25(火) 22:41:07.48ID:bwlYR2I5
たぶん句読点の位置がおかしい
アンマネージドは、VC++でSEEとか使いたいときに、使う
が正解なのかしら
知らんが
0724デフォルトの名無しさん2015/08/25(火) 22:41:34.05ID:bwlYR2I5
SEE → SSE
ごめんね
0725デフォルトの名無しさん2015/08/25(火) 23:06:00.33ID:Wpti2W5K
>>720
これはアンマネージコードではなくアンセーフコード
アンセーフコードもマネージコードには違いない
ちなみにこのリンク先の例はunsafeだから速いのではなく、GetPixel/SetPixelのAPIがクソ遅いだけ
.NET2.0以降ならLockBitsがあるから一旦配列に丸ごとコピーして処理後に書き戻せばunsafeなんか使わなくても十分に速い
0726デフォルトの名無しさん2015/08/25(火) 23:08:27.34ID:rPHzO56e
C++君って先月くらいからいるけど、いつ死ぬの?
0727デフォルトの名無しさん2015/08/25(火) 23:29:15.56ID:uHUYRmLo
>>726 が死ねばいいんだよ、お前が一番屑だから
というかC++の上がり人はどう考えても一人じゃないだろ
見た感じ多くはゲーム系の人かな
0728デフォルトの名無しさん2015/08/25(火) 23:35:33.69ID:uHUYRmLo
GetPixel/SetPixelが遅いというよりも、プロセス間通信が仕組み的に粒度が小さい処理に向いてないという感じかな
0729デフォルトの名無しさん2015/08/25(火) 23:42:25.80ID:87HoKT0r
>>720
これはひでえな
LockBits使えば十分だろ
0730デフォルトの名無しさん2015/08/25(火) 23:44:06.08ID:IDnYKic2
いつの時代の何を解説するためのサンプルかぐらい読めよ...
0731デフォルトの名無しさん2015/08/25(火) 23:57:53.14ID:FzRJlm7d
これな。十分速いが、それでも倍違うけどね。
http://daisy64.blogspot.jp/2009/01/getpixel.html

マネージドコードの例は不要だと思って省略した。
実際は#pragma unmanagedと#pragma managedでソース上で関数単位で切り替える。
0732デフォルトの名無しさん2015/08/26(水) 00:16:40.27ID:LkVTB1JB
>>731
お前は何を言っているのか
そのリンク先の例はunsafeも含めて全部れっきとしたマネージコードだ
C++/CLIの#pragma unmanaged (これは本当にネイティブコードになる)とは全く違う
0733デフォルトの名無しさん2015/08/26(水) 00:22:51.89ID:LkVTB1JB
>>731
よく見たらこのサンプル意味不明だな
r, g, bの値を使ってないから、最適化で消えてると思われる
実質的にはunsafe全く関係なくてMarshalCopyの時間を測ってるだけだね
07347312015/08/26(水) 02:05:24.84ID:N7Jdy9nG
731内、
× マネージドコード
○ アンマネージドコード

最適化がかかって全部抜けるのならGetPixelのコードが最速になる。
そうなってないんだから、抜けてはいない。
0735デフォルトの名無しさん2015/08/26(水) 02:09:45.86ID:KP8nmGdk
メソッド呼び出しが、最適化で勝手に削除されるわけねーだろ
何の副作用が有るか、わかりゃしないのに
0736デフォルトの名無しさん2015/08/26(水) 02:13:08.08ID:KP8nmGdk
分かっていると思うけど、
逆に言えば、メソッド呼び出しが無いのなら、
無駄な計算は最適化で削除されうるってことだぞ
0737デフォルトの名無しさん2015/08/26(水) 08:04:18.96ID:0fCLXGvh
相変わらずレベルの低い話
0738デフォルトの名無しさん2015/08/26(水) 08:27:19.17ID:pUWj3Ef8
ああ、思い出した

レベル連呼クンって前にもいたよね
0739デフォルトの名無しさん2015/08/26(水) 08:29:29.18ID:gbsTgmpf
VB6スレと同じ人達が話してるのかい
0740デフォルトの名無しさん2015/08/26(水) 08:59:00.05ID:DnnAf/8j
VB6スレなんてあったっけ
0741デフォルトの名無しさん2015/08/26(水) 09:15:42.60ID:ElP7lUPJ
C#精神病院 Part88
0742デフォルトの名無しさん2015/08/26(水) 11:18:16.79ID:dP9T8Aj9
>>718
そこまで崇高な理想を持って開発されてるとは思えないが
タイミングがわからないおかげで使用中のハンドルが開放される可能性への対策も必要になるし
あと、マネージリソースだけじゃなくて、固定したGCHandleを持ってればGCのパフォーマンスへの影響もでかい
0743デフォルトの名無しさん2015/08/26(水) 17:11:34.36ID:qrjLQtVJ
DataGridViewでユーザーが列幅を変更する場合列の境界をドラッグ
しますが、横スクロールバーが表示される程列数や個々の幅がある
場合に最後の列幅が変更できません。
どのようにマウスで変更するのでしょうか。
0744デフォルトの名無しさん2015/08/26(水) 20:08:44.10ID:N7Jdy9nG
>>735,736
メソッドの部分は必ず実行され、その後の部分は最適化されているかも、ということで了解した。
LockBits/unsafeの比較は当てにならないね。
異常に速度差があるし、メソッド以外は全部抜けているかも。
0745デフォルトの名無しさん2015/08/26(水) 20:16:21.46ID:N7Jdy9nG
>>742
> 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したほうがいいのは事実だが)
0746デフォルトの名無しさん2015/08/26(水) 20:56:01.03ID:LkVTB1JB
>>745
ファイナライザでKeepAliveするのは意味がない
KeepAliveしたところで参照している他のオブジェクトのファイナライザが先に呼び出される可能性は防げないし、
ファイナライザの実行が終わる前にthisやその他参照しているオブジェクトがGCに回収されてしまうようなことは無いからね
0747デフォルトの名無しさん2015/08/26(水) 21:39:21.41ID:pUWj3Ef8
>>745
もう来んなよ
0748デフォルトの名無しさん2015/08/27(木) 08:03:55.06ID:Sd5tuK/H
お前が来るなよw
0749デフォルトの名無しさん2015/08/27(木) 17:01:34.76ID:H9Zj5Bn1
internalなインターフェースでも、internalで実装出来ないのね。
なんでだろ。
明示的実装だとeventは自動実装してくれないのね。
ちょっと不便。
0750デフォルトの名無しさん2015/08/27(木) 18:33:33.61ID:4ooez7+r
以下のようなことをしたいのですが、
メソッド名が重複するため上手くいきません。
ある変数のスーパークラスを上書くようなことはできないのでしょうか?

public abstract class A{
public abstract MyClass instance {get;}
}
public abstract class B<T> : A where T ; MyClass{
public T MyClass instance {get;}
}
0751デフォルトの名無しさん2015/08/27(木) 18:40:58.45ID:3m4FcQPk
>>750
全部捨てろ
そんなことをしようとせずに済んだ世界を想像し
可能ならば来た道を戻って設計しなおすといい
0752デフォルトの名無しさん2015/08/27(木) 18:44:49.92ID:CaKJnHAU
>>751だけ読むと凄くカッコイイ
0753デフォルトの名無しさん2015/08/27(木) 18:45:04.56ID:0465F1pc
つーかMyClassとわかってるならTにする意味ないでしょ
0754デフォルトの名無しさん2015/08/27(木) 19:34:06.84ID:M7ObSeqi
何がしたいんだかよくわからん
MyClass はなんだかの形で定義?
class B<T> は、もはや修正してエラーもなくせない
メソッド名が重複するという問題にたどり着けんw
0755デフォルトの名無しさん2015/08/27(木) 21:05:28.92ID:4ooez7+r
TはMyClassの継承関係です。
AとかBじゃ分かりにくいですね。

public abstract class 田中{
public abstract 行動 instance {get;}
}
public abstract class 修行した田中<料理> : 田中 where T ; 行動 {
public 料理 instance {get;}
}

はじめからTつければいいじゃんとか思うかもしんないけど、
ジェネリックの共変性とかの問題があったりしてこんな実装になってます。
0756デフォルトの名無しさん2015/08/27(木) 21:16:20.73ID:dljCNrWS
まず用語とやりたいことと質問を整理してくれる?
お前の示したコードにメソッドも変数もないし、空想上の文法を示して以下のようなこと、で伝わると思うの?
0757デフォルトの名無しさん2015/08/27(木) 21:19:19.33ID:crZaWZ5K
いや…これはシンプルに無視案件だろ
こいつに関わってもなんの実りも無い
0758デフォルトの名無しさん2015/08/27(木) 21:27:08.41ID:hme97lr4
>>755
public interface I田中{
行動 instance {get;}
}
public abstract class 修行した田中<料理> : I田中 where 料理 ; 行動 {
override 行動 I田中.instance { get { return this.instance; } }
public 料理 instance {get;}
}
何がしたいのかさっぱり分からんがこういうことか?
0759デフォルトの名無しさん2015/08/27(木) 21:35:49.89ID:lF/OrL4X
山田かもしれん
0760デフォルトの名無しさん2015/08/27(木) 21:46:52.77ID:4ooez7+r
public abstract 行動 strategy {get;} を
public override 料理 strategy {get;} に上書きしたいです。

まとめるとこうです。
1.オブジェクトの行動を戦略ポリモーフィズムで実現したい
2.継承クラスから戦略をジェネリックに呼び出したい
3.基底クラスの戦略呼び出しは継承クラスの戦略を呼び出す(abstract)
4.ジェネリックの共変性(.net3.5を利用)の問題で3を基底<T>およびメンバTとするのは、
  その他のオブジェクトでキャストが膨大に発生するため、ジェネリックを持たない基底クラスを用意した 
0761デフォルトの名無しさん2015/08/27(木) 21:56:46.79ID:4ooez7+r
>>758
そういうことです!
たぶんできました!ありがとうございます
0762デフォルトの名無しさん2015/08/27(木) 22:22:03.15ID:pO3unHFi
エスパー乙
0763デフォルトの名無しさん2015/08/27(木) 23:39:03.06ID:sO/8ZJev
ようわからんから寝るわ
明日は定時にあがって彼女とデートだ
0764デフォルトの名無しさん2015/08/28(金) 00:22:50.64ID:DVJpBS2x
ここ数年定時で上がった事無いや。
せめて残業30時間未満希望。
0765デフォルトの名無しさん2015/08/28(金) 06:40:20.71ID:Sz74PPpb
とりあえず "料理 ; " の ';' は何だよって感じの所の修正をして欲しかったな
エラーが「メソッド名が重複」になるようなコードにしてから、問い合わせろよって感じ
わけわかんねーよw
0766デフォルトの名無しさん2015/08/28(金) 06:55:57.02ID:Sz74PPpb
>>760
どうしてもそのようにしたければ、二段階に分けてやればいいんじゃねかな
インターフェイスが正解だが
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のソースを読んでいたらこういうのに出会ったよ
以前のバージョンで公開してしまったが、互換性を維持しつつ改めて中身隠して継承したいという感じの部分で
0767デフォルトの名無しさん2015/08/28(金) 10:09:33.73ID:bO0aCwDR
>>766
それだと基底クラスにキャストされているときに呼ばれると基底のメソッドが呼ばれてしまうので今回の要件ではまずいです。
0768デフォルトの名無しさん2015/08/28(金) 11:43:18.34ID:Sz74PPpb
>>767
基底クラスの変更はBBaseの方でやるの、二段階に分けるという事
0769デフォルトの名無しさん2015/08/28(金) 15:45:12.11ID:O/DjZ5xn
BBase<T>からその上位のBのinstanceを呼べないのでまずいです。
0770デフォルトの名無しさん2015/08/28(金) 15:48:24.22ID:Sz74PPpb
なんでそこが問題やねんwww
まぁ、互換性がうんぬんとかクリティアルな問題がある訳じゃなさそうだし interface 版でいいと思う
それでやれば良かろう
0771デフォルトの名無しさん2015/08/28(金) 17:04:25.71ID:bO0aCwDR
>>770
そこがクリティカルだと何度も申し上げていますが。
解決したのでもういいです。
0772デフォルトの名無しさん2015/08/28(金) 17:05:03.05ID:ZmO5l3R/
へーすごいじゃん
0773デフォルトの名無しさん2015/08/28(金) 19:26:06.38ID:jkdHSky5
式木が全然わかんねぇ
動的に検索条件変えるのにつかいたいが
0774デフォルトの名無しさん2015/08/28(金) 19:27:16.67ID:GiTthi+A
bbaseってのはババアのSE(システンエンジニア)のことですよね?
0775デフォルトの名無しさん2015/08/28(金) 19:58:34.57ID:Lygpatgh
リソースの解放順序をコントロールするクラスを1回作ってしまえばDisposeの明示的呼び出しは完全に不要になるね
0776デフォルトの名無しさん2015/08/28(金) 20:01:28.39ID:LXLt4eax
またDispose君か
フランスパン目に突き刺して死ね
0777デフォルトの名無しさん2015/08/28(金) 20:05:55.57ID:CjkSJ7ex
>>773
アホなことは考えるな
普通にクエリビルダ使え
0778デフォルトの名無しさん2015/08/28(金) 20:49:33.85ID:Sz74PPpb
>>775
いや、そこは普通にDispose使えよ、得体のしれないことするなw
0779デフォルトの名無しさん2015/08/28(金) 20:55:43.87ID:ls1PRuKg
アンマネージドなリソースをIDisposableなオブジェクトでラップするのは基本だろ

え?
>755はそういうことを言いたいんじゃないの?
0780デフォルトの名無しさん2015/08/28(金) 21:38:47.88ID:8lfDGDPP
Disposeを明示的に呼びだしている時点でおかしい
0781デフォルトの名無しさん2015/08/28(金) 21:38:51.18ID:cLOGe/lp
>>775
意味がわからない
FormのDisposeはどうやったら不要になるの?
0782デフォルトの名無しさん2015/08/28(金) 21:43:04.20ID:Lygpatgh
リソース全部にいちいちDispose呼ぶ派って最近C言語からC#に移ってきた人?
0783デフォルトの名無しさん2015/08/28(金) 21:53:36.50ID:IPCW/fdR
using使ってもDisposeは呼びたくなる
0784デフォルトの名無しさん2015/08/28(金) 21:55:20.42ID:ls1PRuKg
ツマンネ
0785デフォルトの名無しさん2015/08/28(金) 22:19:38.38ID:jMAaefta
むしろc#やり込んで分かって来てからの方がIDispose使う頻度上がったけどな。
Disposeパターンちゃんと分かって無さそうだし、GC.SuppressFinalize()も使ったことないんだろうな。
0786デフォルトの名無しさん2015/08/28(金) 22:21:47.32ID:La0rg2tq
Dispose漫談
0787デフォルトの名無しさん2015/08/28(金) 22:36:10.25ID:k07is2fO
IDisposableを継承したオブジェクトを、
自分のクラスにコンポジションすると、
自分自身もIDisposableを実装する必要が出てきます
このように、どんどんと、IDisposableは伝染していきます
IDisposableの要らないクラスは、
メモリ以外のリソースを全く含まない、クラスだけです
終いには、IDisposableだらけになります
インテリジェントなクラスほど、IDisposableになります
これがGCの現実です
0788デフォルトの名無しさん2015/08/28(金) 22:38:35.26ID:ls1PRuKg
それで?
0789デフォルトの名無しさん2015/08/28(金) 22:41:22.64ID:La0rg2tq
へーすごいじゃん
0790デフォルトの名無しさん2015/09/02(水) 11:45:01.96ID:QWgZ6B7l
荒れてる時に失礼します

2ヶ月くらいの初心者ですが
http://lab.tricorn.co.jp/toda/1088

ここにStateとStrategyの違いが書いてますが、構造上の違いは無いため
見分けるにはクラス名で見分けるしかないと書かれていますが、そうなのですか?

別にこの記事を批判してるわけじゃなく、私自身StateとStrategyの違いが
イマイチよく分からないだけです
0791デフォルトの名無しさん2015/09/02(水) 15:37:43.17ID:MYIvkVg2
以下を実装しようと思っていますがフォーム外の
マウスの座標をどうすれば補足し、メインフォーム上にレンダリングすれば
良いかわかりません。どの様に実装すればよいでしょうか?

1.フォームを起動する。

2.[座標調査]ボタンをクリック

3.マウスをフォームの外に移動したら
「1.」の中央に配置されたラベルにX座標・Y座標を表示する。
0792デフォルトの名無しさん2015/09/02(水) 15:43:14.58ID:rdkBQaJ6
Cursor.Positionでスクリーン座標でのマウスカーソル位置が取れる。
タイマで定期的に取るようにすればいいんじゃない?
0793デフォルトの名無しさん2015/09/02(水) 16:16:36.49ID:MYIvkVg2
>>792
サンキュー
0794デフォルトの名無しさん2015/09/02(水) 21:43:47.52ID:+Iu6xlmH
Stateは離散的な状態によって、振る舞いを大きく変えるオブジェクトを実装するためのパターン
Strategyは動的に処理を切り替える為のパターンで、ぶっちゃけただの多態性の事だ
Strategyは基本的すぎてパターンと呼ぶほどのものではない
他の殆どのパターンでも漏れなくStrategyを使っている
0795デフォルトの名無しさん2015/09/02(水) 22:24:38.83ID:2IVkMjjH
stateなんてstrategyを外か内のどっちから差し替えるぐらいの違いしかないし、デザインパターンとか偉そうに呼ぶもんでもない。

むしろ、switchで済むもんをstateパターン!とかドヤ顔でやるやつを生み出すクソパターンのひとつだわな。
0796デフォルトの名無しさん2015/09/02(水) 23:16:57.02ID:OPX/Zhtw
デザパタって、
○○パターンで行こう、みたいなときもあれば
書いたあとに、あれ?これ△△パターンだな……みたいなこともあるし

参考程度でいいんでないかい?
0797デフォルトの名無しさん2015/09/02(水) 23:21:25.69ID:ZlVQUP4Q
デザパタってのは本読んで賢くなったと勘違いしたバカが
ことあるごとにパターン名連呼するだけのもの
0798デフォルトの名無しさん2015/09/02(水) 23:22:34.56ID:AIAHCYFs
>>797
2ch脳全開だなw
よくそういう被害妄想を恥ずかしげもなく開陳できるよなw
0799デフォルトの名無しさん2015/09/02(水) 23:32:33.81ID:nxxrL6I9
しかし、>>797の解釈のほうが少しだけ健全
デザパタを知ったように語る連中にくらべての話なw
0800デフォルトの名無しさん2015/09/03(木) 09:12:04.06ID:BI1c3JMp
デザインパターンは共通言語みたいなもんだろ。
0801デフォルトの名無しさん2015/09/03(木) 09:31:49.44ID:j51sLT8G
俺の周りのやつにはデザインパターンが通じない
0802デフォルトの名無しさん2015/09/03(木) 10:45:14.16ID:AQrjy02M
>>797
デザパタってそういうもんじゃないの
〜パターンって言うだけでああ、あれねってなるから
いちいち詳細説明の手間(タイムコスト)が省ける
0803デフォルトの名無しさん2015/09/03(木) 12:50:32.25ID:UAzBQfVm
まず、手間(タイムコスト)とか言い直す無駄な手間かけるのやめろよ
0804デフォルトの名無しさん2015/09/03(木) 12:54:06.21ID:Z05hlE1P
>>803
小学生か。
俺は802じゃないけど、そういうのは無駄でも言い直しでもない。
曖昧さを減らすためのテクニックだ。
ヴァカじゃないのか
0805デフォルトの名無しさん2015/09/03(木) 13:00:22.16ID:Mtr7VddV
そこまでのもんかよw
0806デフォルトの名無しさん2015/09/03(木) 13:02:50.82ID:NQZSp0fr
命令口調君って馬鹿だな
0807デフォルトの名無しさん2015/09/03(木) 13:03:00.42ID:bflO1psv
(言い争いも無駄なのでは?)
0808デフォルトの名無しさん2015/09/03(木) 13:18:47.27ID:6M6obrOu
>>803
クスッときたw
なぜなら俺も同じ感想を抱いていたからw
0809デフォルトの名無しさん2015/09/03(木) 15:37:10.76ID:dGS6eFW0
>>795
逆だろ
むしろ、stateパターンで書けるもんをswitchとかドヤ顔でやるやつを生み出さないためのパターンのひとつ。
0810デフォルトの名無しさん2015/09/03(木) 15:43:23.59ID:eSbMz5iN
stateはあまり使うべきではないパターンの一つだろ
オブジェクトに変化する状態を持たせるのはなるべく避け、どうしても必要なところはなるべく明示的に、ってのが今風
0811デフォルトの名無しさん2015/09/03(木) 16:18:18.81ID:Z05hlE1P
まあどっちにしろ馬鹿の一つ覚えの乱用は良くないね。
ケースバイケースで判断するしかない
0812デフォルトの名無しさん2015/09/03(木) 20:51:50.87ID:AjZjPQkB
質問させてください。
フォームを透明にするとデスクトップが見えると思います。
さらにラベルを半透明にすればデスクトップが透けて見えると思います。

ですが、ラベルを半透明にしてもフォームの透過色になってしまいます。
これの解決策はないでしょうか。
0813デフォルトの名無しさん2015/09/03(木) 20:53:39.88ID:50OgoD3Z
ステートはゲームとパーサー以外に使い道はないね
0814デフォルトの名無しさん2015/09/03(木) 21:26:51.16ID:4OSMUinY
>>813
お前の狭い井戸の中の話はチラシの裏にでも書いとけ
0815デフォルトの名無しさん2015/09/03(木) 21:30:09.14ID:Mtr7VddV
>>812
ふらっと行け
0816デフォルトの名無しさん2015/09/03(木) 21:36:44.84ID:t0UOlUCH
とかくカタログ化のメリットをうたわれるが
それは理想でしかない
デザパタの理解の時点で不備が残るから
パターン名を出して語り合ってもチグハグなまま
断片的な理解で語って延々すれ違うのが関の山
0817デフォルトの名無しさん2015/09/03(木) 21:37:48.99ID:AjZjPQkB
>>815
すみません、初心者なのですが、フラットとはなんでしょうか
0818デフォルトの名無しさん2015/09/03(木) 21:59:03.17ID:AjZjPQkB
>>817 >>815
フラットがなにか分かりました、聴いてきます、ありがとうございます
0819デフォルトの名無しさん2015/09/03(木) 22:30:08.90ID:oJAsYsjQ
>>810
これどういうこと?
むしろifとかswitch推奨ってこと?
0820デフォルトの名無しさん2015/09/03(木) 22:35:31.33ID:4OSMUinY
>>819
まともなソフト組んだことのない奴の戯れ言なのでスルーでいい
0821デフォルトの名無しさん2015/09/03(木) 22:59:38.02ID:UAzBQfVm
10個のケースで処理は単純と
2個のケースで処理が複雑の場合どちらもクラス化するとは限らないし、switchでも関数でもオブジェクトでも見通しがいいのを選べばいい。

なぜなら、テストがあれば容易に修正が可能だからだ。
0822デフォルトの名無しさん2015/09/03(木) 23:07:40.59ID:8yoLLFnu
>>819
最近は関数型からの流れで、クラスはイミュターブルにするべきだという流派が勢いを増しつつある
その考えに従うなら、stateパターンだろうがifだろうが自分自身のstateを勝手に変更するようなクラスは好ましくなくて、
差し替えやすくするにしてもコンストラクタでStrategyを渡しなさい、となるわけ

それからStrategyに比べてStateはその親が持ってる内部情報に強く依存することが多いので、
差し替えのメリットはあまりなくてコードが読みにくくなるだけの場合が多かったりする
0823デフォルトの名無しさん2015/09/04(金) 01:05:37.68ID:lzz57wGL
スイッチけ消せ派の二割ぐらいがコードの見やすさ以外のメリットを挙げられない日本のアイテー産業界の実情
0824デフォルトの名無しさん2015/09/04(金) 09:18:55.15ID:nWrrDgsE
>821
テストは製品の品質を担保するためのものだろ
修正の容易さとは関係ない
0825デフォルトの名無しさん2015/09/04(金) 12:00:23.91ID:UHAkjTxW
>>824
マジで言ってんのか?
0826デフォルトの名無しさん2015/09/04(金) 12:21:37.40ID:jQreaVPT
通りすがりの俺も>>825と同じセリフを吐きたい
0827デフォルトの名無しさん2015/09/04(金) 12:24:18.11ID:uljmVnmx
>>824
リファクタリングは名著だから一回くらい目を通しておいたほうがいいぞ
0828デフォルトの名無しさん2015/09/04(金) 12:26:25.43ID:/OouKiwm
まあ低レベルなジャパニーズドカタとって自動テストを継続的に維持するのは不可能だからね
後々の修正以前に、新規開発を最期までグリーンを維持しながら完遂することすら奇跡
0829デフォルトの名無しさん2015/09/04(金) 12:28:22.50ID:wAnp+SYa
旧石器時代レベルのマだな
0830デフォルトの名無しさん2015/09/04(金) 12:29:33.09ID:wAnp+SYa
テストを検収通すためのエビデンスとしか捉えてないっていうね
0831デフォルトの名無しさん2015/09/05(土) 00:34:41.72ID:AEZT9dHU
テストはあくまで修正の確認だろ
テストがあれば結果が保証される=安全な修正の場が提供される=修正がしやすい場が提供される

けれど、修正元のコードが容易に修正しやすいものかとは別問題でしょ

何だか、根本的に履き違えているみたいだな、俺が

勉強し直してきます。
顔真っ赤なんです。分かってください。
場違いなんでこれで最後にします
0832デフォルトの名無しさん2015/09/05(土) 00:37:38.28ID:FwcsIAPo
>>831
動いてるものを弄ることの恐ろしさを知らないだろ
修正なんて結果の保証ができるかが全てと言っても過言ではない
0833デフォルトの名無しさん2015/09/05(土) 00:45:48.20ID:AEZT9dHU
>832
そういってるんだけど
噛みつき方がおかしい
0834デフォルトの名無しさん2015/09/05(土) 01:21:45.82ID:+/wEUIWT
テストケースが用意してあって、いくら修正しても結果が合わないコードとか遭遇してみたいわ
0835デフォルトの名無しさん2015/09/05(土) 06:31:10.03ID:Jq+GEKLJ
>>802
タイムコスト削減どころか患者扱いされるパターンが一般的
http://peace.2ch.net/test/read.cgi/tech/1441012744/133-142
0836デフォルトの名無しさん2015/09/05(土) 07:44:13.00ID:FwcsIAPo
>>833
修正作業≒影響範囲と結果の確認作業
ということだよ
ソースコードの修正そのものは大した問題ではない
0837デフォルトの名無しさん2015/09/05(土) 10:07:42.28ID:McuB2/kQ
>>831
修正って一言で言うからおかしくなる

1. 修正する箇所の決定
2. コードの修正
3. 修正箇所のテスト
4. リグレッションテスト

1. 〜 2. を修正って言えば >>824
1. 〜 4. なら >>821
が正しい
0838デフォルトの名無しさん2015/09/05(土) 10:29:22.47ID:yNAOhLZf
そんな必死扱いて話続けるなよ
ショックだったのか?
0839デフォルトの名無しさん2015/09/05(土) 11:28:54.82ID:McuB2/kQ
>>838
>>838
粘着してるのはお前だけ
0840デフォルトの名無しさん2015/09/05(土) 11:40:46.30ID:nF0Xae6t
ITドカタには3,4が存在しないから同じ
問題なのは
5.リリース後に修正ミスが見つかるリスク
0841デフォルトの名無しさん2015/09/05(土) 11:43:57.82ID:yNAOhLZf
そうかい
これ以上続けるならDisposeと同じように連投自演で荒らしてやる
分かったらおとなしくしてろ
0842デフォルトの名無しさん2015/09/05(土) 11:49:32.74ID:yNAOhLZf
あるいはC#に関係があって、ふらっとでやるような話でない話をしろ
雑談がしたければ雑談スレかマ板に行け
0843デフォルトの名無しさん2015/09/05(土) 12:04:12.51ID:d+nPX/+M
命令口調指摘厨
↓
0844デフォルトの名無しさん2015/09/05(土) 12:05:53.42ID:9PP8hJsT
┃↑
┗┛
荒らしは去れ
はよ仕事さがせよ
0845デフォルトの名無しさん2015/09/05(土) 12:14:46.00ID:ZNHlex0/
「命令口調君って馬鹿だな」さんは、そろそろこのスレ10年近い大ベテランだぞ。
昨日今日現れたようなぽっと出の若造と一緒にしていい存在ではない。
0846デフォルトの名無しさん2015/09/05(土) 12:41:58.24ID:d+nPX/+M
んじゃ質問おねしゃっす

静的クラスと普通のクラスをstaticに持つのと、
どう使い分けしたらいいでしょうか。

べつにシングルトンにする必要はないオブジェクトですが、
プロセスではひとつしかインスタンス化しません。
0847デフォルトの名無しさん2015/09/05(土) 12:47:44.60ID:+EPImSa2
質問をお願いします、だと?!
0848デフォルトの名無しさん2015/09/05(土) 12:48:22.79ID:pfZ6OLhC
>>846
>普通のクラスをstaticに持つ
ってどういう意味?
0849デフォルトの名無しさん2015/09/05(土) 12:49:23.73ID:dHzp+WDi
一般的には、アプリケーションのルートで普通にnewし、それを必要とするクラスにその都度渡すのが適切
全体で共有するからといってstaticでグローバル変数にしてしまうのは良くない
テストしにくくなるからね
0850デフォルトの名無しさん2015/09/05(土) 13:35:50.94ID:d+nPX/+M
ご説ごもっとも
でも今回はstaticにします。

static class Hoge{}

or

class Hoget{}
...
public static Hoge hoge = new Hoge();


下の方が拡張性があるとかないですか
0851デフォルトの名無しさん2015/09/05(土) 13:41:33.34ID:5uKQXugM
俺にはそれらが比較する物に見えない
0852デフォルトの名無しさん2015/09/05(土) 14:08:16.36ID:trE2W9oi
>>850
毎回直接hogeにアクセスするなら拡張性はない
拡張性をもたせるなら、Hogeにインターフェイスを実装して、他のクラスはそのインターフェイスを通して利用するようにする
実際のHogeのインスタンスは外から渡す
0853デフォルトの名無しさん2015/09/05(土) 15:14:06.63ID:OLenB+FK
849みたいな馬鹿はどうしようもない
クラスの持つ概念が何かを考えずに、
コンパイル通るかしか考えないんだろう
0854デフォルトの名無しさん2015/09/05(土) 15:29:17.88ID:ygimYbNM
でもSingletonがあるとテストしにくいのは事実だよね
まぁきちんとインターフェースを切り出してモック作りゃいいだけなんだけどな
0855デフォルトの名無しさん2015/09/05(土) 15:42:26.30ID:+/wEUIWT
static classの必要性を感じない。
コンストラクタをプライベートにすればいいだけだし。
0856デフォルトの名無しさん2015/09/05(土) 15:53:29.93ID:MzCBpk1s
Javaのstaticクラスとごっちゃになりそう
0857デフォルトの名無しさん2015/09/05(土) 17:53:50.96ID:trE2W9oi
>>853
849だけど、毎回newしろと言ってるんじゃないよ
Applicationオブジェクト(と寿命が一致するオブジェクト)のフィールドとして持つということ
0858デフォルトの名無しさん2015/09/05(土) 18:10:54.10ID:5uKQXugM
DI!DI!
.NETのDIライブラリって何がデファクトなの
0859デフォルトの名無しさん2015/09/05(土) 18:38:14.83ID:uKtK2YVi
拡張メソッドや小物の汎用メソッドはスタティックだな
0860デフォルトの名無しさん2015/09/05(土) 19:12:43.32ID:LfnRuzOf
いまだにVS2010使ってるが何か問題ありますか?
0861デフォルトの名無しさん2015/09/05(土) 19:36:56.63ID:Ozz2pk1l
それで困ってないなら問題ないんじゃ
0862デフォルトの名無しさん2015/09/05(土) 19:40:50.40ID:unwmwqiG
>>860
.NET Framework 4.5使わないならいいんじゃね
0863デフォルトの名無しさん2015/09/06(日) 09:57:58.21ID:4IVIRjvm
expressじゃなきゃいいんじゃない
0864デフォルトの名無しさん2015/09/07(月) 18:59:07.66ID:8RjKVv09
http://dobon.net/vb/dotnet/system/getinstalledfonts.html
でフォントの一覧は取得出来たのですが、この中から等幅フォントだけを
取り出す方法を探しているのですが分かりません。
知っている人教えてください。
0865デフォルトの名無しさん2015/09/07(月) 21:00:41.16ID:xgRymLq/
等幅フォントというカテゴリーが実在するかが問題だな
0866デフォルトの名無しさん2015/09/07(月) 21:10:18.07ID:WzVfDTMU
Aとiの文字幅でも比較しろよ
0867デフォルトの名無しさん2015/09/07(月) 21:14:00.57ID:mOIVmWnr
日本語のフォントフェイス名が「MS ゴシック」だったら等幅
この判定が最強
0868デフォルトの名無しさん2015/09/07(月) 21:58:27.85ID:zUrSP80h
>>864
ググってみたが結構面倒臭そうだな...
https://social.msdn.microsoft.com/Forums/windows/en-US/5b582b96-ade5-4354-99cf-3fe64cc6b53b/determining-if-font-is-monospaced?forum=winforms
0869デフォルトの名無しさん2015/09/08(火) 12:09:21.14ID:HZZtDHiw
>>868
情報ありがとうございました。ここのやり方で出来ました。感謝です。
0870デフォルトの名無しさん2015/09/10(木) 10:31:35.12ID:Zqb1tFho
linq.jsの質問したいんだが、いいかい??
jsスレよりLINQ好きはこっちのほうが多いと思うんで
0871デフォルトの名無しさん2015/09/10(木) 10:34:40.84ID:OdK7pfyp
スルーされても涙をこらえられるなら、断ってんだし聞いてもいいんじゃね。
0872デフォルトの名無しさん2015/09/10(木) 11:47:11.60ID:G800rjof
LINQスレでいいんじゃね?
0873デフォルトの名無しさん2015/09/10(木) 12:09:30.83ID:Zqb1tFho
LINQスレあったのね
そっちに書いてきます
0874デフォルトの名無しさん2015/09/10(木) 12:17:14.28ID:XXlgiA9F
jsならlodash使ったほうがいいよ
機能が豊富で利用者も多い
0875デフォルトの名無しさん2015/09/15(火) 00:22:45.76ID:fYJZeKZK
文字列の暗号化を行うクラス名おしえてください
.NET Frameworkにあるやつでお願いします!
0876デフォルトの名無しさん2015/09/15(火) 01:02:02.00ID:8nVq9fpM
System.Security.Cryptography.AESとかRSA
0877デフォルトの名無しさん2015/09/15(火) 02:50:53.79ID:jPIqDLQl
charをチャーと発音すると
ダサいですか?
(´・ω・`)
0878デフォルトの名無しさん2015/09/15(火) 02:55:10.80ID:8L2kzhog
外人マはキャレットって発音してた
getcharの発音はカッコよかった
0879デフォルトの名無しさん2015/09/15(火) 07:08:29.36ID:gJJz7de7
キャレットだと意味が変わるような・・・
0880デフォルトの名無しさん2015/09/15(火) 07:16:22.30ID:fovtyU1w
キャラクターの略じゃなかったのか?
0881デフォルトの名無しさん2015/09/15(火) 07:37:34.11ID:c6kBSd9X
>>877
ギター弾く人だろ
0882デフォルトの名無しさん2015/09/15(火) 11:12:05.00ID:XyyEatel
気絶するほど悩ましい
08837432015/09/15(火) 15:21:22.42ID:nRNQ5gNy
返答頂けないようなのでふらっとの方で聞いてみます。
0884デフォルトの名無しさん2015/09/16(水) 00:01:51.90ID:Uf++h6JZ
シャアでしょ
0885デフォルトの名無しさん2015/09/16(水) 10:40:14.99ID:7sbTeZHX
キャスバル兄さん!
0886デフォルトの名無しさん2015/09/16(水) 12:49:48.36ID:ayKx8SBE
基底クラス(スーパークラス)の参照型に、派生クラス(サブクラス)を渡すことはできないのでしょうか
C++では出来ました

一から作るならこんな設計しませんが、C++で作られたライブラリをラップする際に困ります
0887デフォルトの名無しさん2015/09/16(水) 13:09:05.15ID:R6jOKYfj
>>886
できるよ
0888デフォルトの名無しさん2015/09/16(水) 13:18:16.97ID:gYRc3sT6
この手の質問は何か隠し事をしている気がするんだよ
0889デフォルトの名無しさん2015/09/16(水) 13:21:42.04ID:807nK7Mg
というかよく質問理解できるな
参照型に渡すとか俺には意味不明だ
0890デフォルトの名無しさん2015/09/16(水) 17:35:09.33ID:koLGUr+e
C++のコードを晒してみれば
0891デフォルトの名無しさん2015/09/16(水) 19:16:26.11ID:+CviF6rc
単にout付きで互換の型渡せるかって程度の話じゃないの
それかC++だと値としてオブジェクト渡せるから、
わざわざ参照と付け加えてるかのどちらか
0892デフォルトの名無しさん2015/09/16(水) 20:00:45.32ID:koLGUr+e
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 );  // コンパイルエラー

こういうことかな?
0893デフォルトの名無しさん2015/09/16(水) 21:03:54.81ID:gm0njNEv
いや、普通に基底クラスのフィールドやプロバティーにサブクラスを突っ込めるかという質問でしょ
C#のフィールドは、ヒープメモリーのアドレスが入っているポインタ(ちょっと違うが)だという意味ではC++で言う参照型でしょ
08948862015/09/16(水) 22:42:14.05ID:F1cbGVxL
分かりにくくてすみません。
こういうクラスがあって、
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

しかし書き換えないという保証ができないと言われて……
0895デフォルトの名無しさん2015/09/16(水) 22:47:50.03ID:koLGUr+e
(C++)
void hoge(Foo1 &foo1);

の相当は

(C#)
void hoge( Foo1 foo1 ){};

だにょ
foo1の参照そのものは上書きされないよ
メンバーはいじれるよ
0896デフォルトの名無しさん2015/09/16(水) 22:53:24.86ID:gm0njNEv
Interface IFoo
{
}

class foo1:IFoo
{
}

class foo2:foo1
{
}

hoge(ref IFoo foo2) でどう?
0897デフォルトの名無しさん2015/09/16(水) 23:04:03.46ID:FKycpPH3
>>895
C#やC++/CLIのハンドル渡し(C#ならFoo foo, C++/CLIならFoo^ foo)に相当するのはC++のFoo* fooだよ
0898デフォルトの名無しさん2015/09/17(木) 00:42:11.48ID:PQCx+Vd2
テキストボックス1〜テキストボックス100みたいなのを配列みたいに扱えますか?
0899デフォルトの名無しさん2015/09/17(木) 00:47:54.38ID:pD0MAiOr
PanelやGroupBoxにまとめて入れてControlsでアクセスする
自分で手で配列に入れるのはやめろ
0900デフォルトの名無しさん2015/09/17(木) 04:08:04.20ID:4HLEYCrX
ラーメンクラスを作る場合、
パラメータとメソッドは
どういった具合にしたらいいんですか?
(´・ω・`)
0901デフォルトの名無しさん2015/09/17(木) 04:23:23.59ID:Q0AcoQbB
ラーメンクラスの目的によるとしか
0902デフォルトの名無しさん2015/09/17(木) 04:42:43.98ID:cshgYIFM
3分待つ機能と食べる機能は全ラーメンクラスに継承しろ
0903デフォルトの名無しさん2015/09/17(木) 06:29:30.95ID:mooKI9/d
addトッピングメソッドとトッピングパラメータ(List型?)は基底クラスに持つべき
0904デフォルトの名無しさん2015/09/17(木) 06:53:55.88ID:WDJU3Zw5
>>900
bool Wait(int minit)
0905デフォルトの名無しさん2015/09/17(木) 10:42:31.84ID:Z358njol
ラーメンは全てインスタントラーメンかカップラーメンである

というわけでもないでしょ
0906デフォルトの名無しさん2015/09/17(木) 11:33:26.73ID:ptLmoXeB
ツマンネ
0907デフォルトの名無しさん2015/09/17(木) 11:41:24.96ID:rrdPtXos
>>906
オモシロイヤツヲヒトツタノムヨ
0908デフォルトの名無しさん2015/09/17(木) 20:52:11.24ID:Gg0L/PBZ
旧ADOにあったRecordset.GetStringは廃止されたの?
昔(.NET1.1?)はADO.NETにもあったはず…
0909デフォルトの名無しさん2015/09/17(木) 22:35:12.65ID:W5SHLev9
Hogeデータプロバイダ名前空間の中
HogeDataReader.GetString()
0910デフォルトの名無しさん2015/09/17(木) 22:44:44.40ID:PQCx+Vd2
>>898
これおしえてください!
0911デフォルトの名無しさん2015/09/17(木) 23:10:36.06ID:CxP5vej7
一旦配列に入れてしまえば後は自由でしょ
0912デフォルトの名無しさん2015/09/17(木) 23:36:24.55ID:4dvMz6Vq
>>909
たしかそれだったと思うけど、今のSqlDataReader.GetStringは、列番号必須で区切り文字指定のない全く別物…

>>911
Webページへの高速出力が目的なので、ループ出力より高速じゃないと意味ない…

そのかわり1.1の頃より速くなってるから、なんでもループ処理でOKよってことなのかな
当時は圧倒的に速度が違ったけど
0913デフォルトの名無しさん2015/09/17(木) 23:37:32.60ID:4dvMz6Vq
>>911
ん?>>910へのレスかw
失礼しました
0914デフォルトの名無しさん2015/09/18(金) 01:22:36.27ID:aVZSqO61
>>911
object型の配列に部品を格納する感じですか?
0915デフォルトの名無しさん2015/09/18(金) 02:29:27.98ID:YsR93Rd4
c# コンポーネント 配列 でググりなさい
0916デフォルトの名無しさん2015/09/18(金) 07:18:13.22ID:fS8raEaD
>>910
>>899で答え出てるだろ
プログラミングの基本的な指針として、地道な手作業は可能な限り避けるのがよい
0917デフォルトの名無しさん2015/09/18(金) 13:12:04.38ID:aVZSqO61
>>915
>>916
ありがとうございます。
0918デフォルトの名無しさん2015/09/18(金) 22:22:58.29ID:cJiNMIaZ
多次元配列をコピーするのって、一つずつforループでやるしかないのでしょうか?
0919デフォルトの名無しさん2015/09/18(金) 22:28:49.66ID:fS8raEaD
Cloneするだけ
まあその前に初心者なら多次元配列は捨てた方がいい
0920デフォルトの名無しさん2015/09/19(土) 00:27:37.44ID:ImfPowRm
>>918
LINQを使え!
0921デフォルトの名無しさん2015/09/19(土) 01:27:07.29ID:2AI6YCMk
逆引き系の本を一冊買うとしたら、何かお勧めありますか?
主にUnityで使うつもりなのでVisualC#に偏っている必要は全くないのですが
0922デフォルトの名無しさん2015/09/19(土) 03:14:00.13ID:Zufot1+5
そういうのはもう書籍の時代じゃとっくにないよ。
web検索禁止の職場(そんなのあるの?)ぐらいしか需要ないし。
0923デフォルトの名無しさん2015/09/19(土) 05:23:44.41ID:2AI6YCMk
もしかして、Webで逆引き書籍に近いものがあるんですか?
0924デフォルトの名無しさん2015/09/19(土) 06:36:09.44ID:nNq1xWLG
C# hogehogeする方法

でぐぐれば大抵はみつかるでしょ
0925デフォルトの名無しさん2015/09/19(土) 18:39:56.56ID:ONkilyrE
同じ品質の情報をまとめて仕入れるには本が一番手っ取り早いだろ
0926デフォルトの名無しさん2015/09/20(日) 02:02:40.73ID:rYu6JiJC
>>918
職場のバカがDeepCopyとかいうメソッドを作ったのでどんなバカなコード書いてるのかと覗いてみたら
シリアライズして逆シリアライズしていた。
このバカはきっと「俺天才?」とか思ってるんだろうと思った
0927デフォルトの名無しさん2015/09/20(日) 04:57:39.45ID:GwThY85s
>>921
職場にVS2005時代の秀和システムの逆引き本があって
毎年新人がそれ参考にするんだよ。それどころか、読めと薦める奴すらいる。
それはゴミだ、捨てろと言っても誰も聞かない。
09282532015/09/20(日) 07:15:00.84ID:O6Xw3ijC
>>927
お前が捨てればいいし
そもそももっとまともな本買えばそんな本誰も見向きしなくなるだろ
まともな本があるかどうかは知らんけど
0929デフォルトの名無しさん2015/09/20(日) 12:53:26.70ID:b8irudVx
>>918
ジャグ配列をコピーするプログラムをLINQで組んでみた

http://ideone.com/73tdUp

a2をあらかじめnewしとかないといけないのが問題だけど
これもLINQに入れれればいいな
0930デフォルトの名無しさん2015/09/20(日) 14:36:59.39ID:GwThY85s
>>928
共用図書として管理されてて、棚卸しがあるから勝手に捨てられん。
会社は本を買ってくれない。業務や自己研鑚に必要な本も自腹購入。
0931デフォルトの名無しさん2015/09/20(日) 14:43:13.35ID:PY77Iv4D
>>926
何か問題あるの?
Webで探せばすぐ出てくるコードだが。
0932デフォルトの名無しさん2015/09/20(日) 15:07:04.60ID:O6Xw3ijC
>>930
そんなアホ会社に勤めてる自分を恨めよ
0933デフォルトの名無しさん2015/09/20(日) 15:13:53.07ID:atv7oNrq
やめてください
そういうのはマ板でやってください
0934デフォルトの名無しさん2015/09/21(月) 17:32:41.08ID:Qf1YaYyL
そんなその逆引き本ってゴミなん?
0935デフォルトの名無しさん2015/09/21(月) 18:56:36.66ID:isL5PIxi
ネット禁止の職場だと神
0936デフォルトの名無しさん2015/09/22(火) 22:52:37.30ID:9Yiwc7mM
VS2005を使う必要があるなら構わないが
最新の環境で10年前のC#本は最早疫病神だろ。
0937デフォルトの名無しさん2015/09/22(火) 23:34:32.61ID:yQAByzEz
またいつものそういう絵に描いたようなダメな奴の発想のご開陳ですか。

逆引き本の類はC#の本というよりBCLの本で、BCLはC#ほど変化があるとは思えない。
だからそのまま使える部分も多いと思うけど。
0938デフォルトの名無しさん2015/09/22(火) 23:45:20.37ID:ukiPrkhN
思う思うってうるせえんだよ何一つ断定的ないカスが。
0939デフォルトの名無しさん2015/09/22(火) 23:47:05.01ID:+2wZ1QC+
ダメなのは本ではなくコピペグラマ
そういう意味では本の方がコピペできない分だけマシ
0940デフォルトの名無しさん2015/09/23(水) 00:43:49.47ID:JvX9Z5l/
うちの職場はコピペ指向が主流
0941デフォルトの名無しさん2015/09/23(水) 00:59:08.66ID:hI1vJLTN
コピペで済ます奴ほどラムダ式やLINQやTaskを避ける謎習性
自分の見たことない、理解できない文法はコピペがためらわれるらしい
傍から見てて笑っちまうよ
0942デフォルトの名無しさん2015/09/23(水) 01:02:59.07ID:DJdG/okP
>>941
コピペの理由が「今まで実績あるソースだから」だもんな
同じコード見る身にもなってみろと・・・
0943デフォルトの名無しさん2015/09/23(水) 01:03:09.50ID:vQpke5kW
むしろコピペされたコードの大部分を理解出来ていないだろ
理解出来ないものをコピペするから始末に負えない
0944デフォルトの名無しさん2015/09/23(水) 01:23:59.67ID:X+JzAFdp
最近はタイプセーフより、シリアライズ可能なようにするのが俺ん中でブーム。
判定は文字列や数字。
コピペも多くなるけどね。
オブジェクト思考と関数型の重み付けはセンスを問われるね
0945デフォルトの名無しさん2015/09/23(水) 01:59:25.10ID:vuM6eIZV
プロジェクトの途中でいきなり妙な宗教に目覚めるのだけ止めてくれたらあとは何でもいい
0946デフォルトの名無しさん2015/09/23(水) 09:13:51.73ID:kAhgYRFO
コメントでプログラムの内容の意図をしっかり書いてくれればコピペでも何でもいい
0947デフォルトの名無しさん2015/09/23(水) 09:27:57.00ID:DOrhv1Zg
>>946
> コメントでプログラムの内容の意図をしっかり書いてくれれば

そんな奴はコピペなんてしない
0948デフォルトの名無しさん2015/09/23(水) 12:28:14.16ID:brsC0ei6
テスト結果をエクセル方眼紙で図形とか多用して美しいレポートに仕上げてくる奴に限って
ソースはコピペまみれ
0949デフォルトの名無しさん2015/09/23(水) 12:47:19.41ID:pVjwfoZv
それを言うなら、2chくんだりでクダ巻いてる奴なんか例外なく無能。
0950デフォルトの名無しさん2015/09/23(水) 16:20:04.65ID:4xka67Z0
それは否定できない
0951デフォルトの名無しさん2015/09/23(水) 16:27:06.58ID:xXat8bOk
コピペそのものの何が悪いかに言及できるやつはいない
0952デフォルトの名無しさん2015/09/23(水) 16:45:48.88ID:4xka67Z0
何故その書き方になるのか理解しないでコピペされるのは嫌だよね
0953デフォルトの名無しさん2015/09/23(水) 16:58:49.24ID:lW5FhXsG
嫌というか、コピペしたまんまでエラー処理とかもろくに組み込んでないコードを持ってこられても。
実際ネットに転がってるコードなんて目的の動作をさせることのみに焦点を絞ってるんだから。
挙げ句にコピー元がバグってるんだからボクは悪くないもん!とか言われた日には。
0954デフォルトの名無しさん2015/09/23(水) 17:24:32.25ID:xkmM0J9H
レビューの時に答えられないコード持ってくんなチンカス
0955デフォルトの名無しさん2015/09/23(水) 17:29:59.86ID:DOrhv1Zg
>>951
マジレスしとくと、
本来同じ機能を実現するルーチンが複数になることで不具合修正や機能追加時の変更漏れが発生しやすくなる
って言うのが一番でかいと思う
0956デフォルトの名無しさん2015/09/23(水) 19:22:36.11ID:z8WDBc2F
それは自分のソース内のコピペであって
今話してるのは外からのコピペだと思うんだが
0957デフォルトの名無しさん2015/09/23(水) 20:24:34.98ID:srG8yqao
サンプル改造して使うのはどこでもアタリマエにやる
問題は改造できんやつだ
0958デフォルトの名無しさん2015/09/23(水) 20:37:36.98ID:Edj0jzP7
>>957
結局コピー元の動作を理解できていないという問題に行き着くんだわ
0959デフォルトの名無しさん2015/09/23(水) 20:47:09.15ID:DAYusJ9Y
どうでもいい話だけど、コピペが問題になるのは、

(1) コピペ部分がブラックボックスとして成立してないか、または

(2) (そのコードを管理する人間にとって)ホワイトボックスでない場合
0960デフォルトの名無しさん2015/09/24(木) 04:47:23.85ID:EdI1Xy7C
よくパスワード保存して次回から省略する機能ってあるじゃないですか
暗号化してconfigファイルに保存しようかと思ったんですが、
configファイルをコピーしちゃえばデコード後のパスワード知らなくても通っちゃうじゃないですか
普通どうするんでしょう?
0961デフォルトの名無しさん2015/09/24(木) 05:22:56.13ID:CMBCqBI4
PCごとに固有になるようにする
09629602015/09/24(木) 06:20:27.73ID:EdI1Xy7C
>>961
PC固有の情報はないという噂ですが…
暗号化キーをMACアドレスにしておき、その事実を隠しておけば、
とりあえずまっとうな会社と認められるでしょうか?
0963デフォルトの名無しさん2015/09/24(木) 07:45:02.78ID:jOCdVqmS
普通は、単純にそのユーザーしかアクセスできない場所に置く。あるいはそういう場所に置いた
秘密キーで暗号化する。
0964デフォルトの名無しさん2015/09/24(木) 07:59:52.17ID:TiSlAdHm
まっとうではないと判断されるな
0965デフォルトの名無しさん2015/09/24(木) 08:10:23.88ID:EdI1Xy7C
>>963
そのユーザーしかアクセスできないことを信用していいなら暗号化する必要もないのではないでしょうか?
0966デフォルトの名無しさん2015/09/24(木) 08:20:40.51ID:QTVnOSJ6
自分が最初に何を言ったか覚えているのか?
0967デフォルトの名無しさん2015/09/24(木) 09:08:56.95ID:P59Gpqf+
firefoxはオープンソースじゃなかったっけ
見てみればいい
0968デフォルトの名無しさん2015/09/24(木) 09:21:57.08ID:hqSpqpAb
>>965
気づいたか。パスワードを保存するセキュアな方法は存在しないので全力で回避する事。
0969デフォルトの名無しさん2015/09/24(木) 09:40:28.95ID:EdI1Xy7C
>>967
調べました
コピーされたらおしまいという事態を防ぐために、マスターパスワードという機能があるそうで、毎回入力が必要みたいです
コピーが心配なら毎回入力しろということですね
ということは自動パスワードの暗号化はあまり意味がないということになりますが、firefoxも一応暗号化してますね
ということで心配するのやめました
0970デフォルトの名無しさん2015/09/24(木) 09:44:34.01ID:EdI1Xy7C
>>968
ローカルにある以上アタックも可能ですし、破られるかどうかは気にしてません
クレームが付かない常識的な仕様や方針を知りたかっただけです
firefoxの仕様見て、「保存してもいいけど保存したら危険です」のアナウンスでいいような気がしました
0971デフォルトの名無しさん2015/09/24(木) 15:35:15.84ID:p27rUZR0
・・・あのな
安全のためにパスワードを入力するという方法を採るわけだ
それを省略すればイコール安全ではないとなぜわからない
0972デフォルトの名無しさん2015/09/24(木) 16:28:03.06ID:9oqv3+gF
その安全性を何処まで保証すべきかってのとの天秤だよな。

中に何が入ってるかによるし、ライセンスキーとかの類いならキーの値段とユーザ数の天秤だろうし。
社用で使用するメールの閲覧パスワードだって一度入力して保存したまま覚えてないヤツなんてごまんといるだろうけど、
それが大きな問題になることなんてあんまりないし。
で、たいていの場合はそんなこと気にする価値がそのソフトにあるかと聞かれたら ? ってなるモノの方が多い。

PC 単位でのセキュリティでいいなら、その昔触ってたライセンス管理付きのソフトで、
HDD のシリアル番号+キーの種別を示すテキストをハッシュ化してそれを部分的に抜き出したモノなんてのを使ってたことがあった様な気がする。
保存先は無造作にソフトのインストールフォルダにファイル作ってたような。。
0973デフォルトの名無しさん2015/09/24(木) 16:39:17.98ID:l6wjQdp1
ログインユーザーだけが読めるようにしとけばいいよ
暗号化はうっかり表示させた時、後ろで誰か見てたら困るべ
0974デフォルトの名無しさん2015/09/24(木) 16:46:51.58ID:fjowUJxZ
>>973
パスワードの最大のメリットは、何かあった時「お前が悪い」で済ませられることにある
0975デフォルトの名無しさん2015/09/24(木) 17:49:25.63ID:zDZwJSqO
>>970
普通にそれでいいと思う。

工夫すれば特定の環境下でのみデコード可能な暗号化なんてこともできるんだろうけど、
そのコストを正当化できる用途がどれだけあるのかなと。
0976デフォルトの名無しさん2015/09/24(木) 18:03:00.11ID:hqSpqpAb
DPAPIでユーザーまたはPC固有の鍵で暗号出来るじゃん
0977デフォルトの名無しさん2015/09/24(木) 22:09:03.96ID:InMIs/J4
なんだこの糞画質は
0978デフォルトの名無しさん2015/09/25(金) 16:58:01.03ID:KJgftwp5
ここで聞くのがいいのかどうかわらないけど
EFのコードファーストでlocalDB作るにはどうしたらいいんだ?
既定では普通にSQLserverで作られてしまう
0979デフォルトの名無しさん2015/09/25(金) 17:17:23.99ID:IwY+2yrf
connectionStrings 設定すりゃいいんじゃなかったかな
0980デフォルトの名無しさん2015/09/25(金) 23:21:13.33ID:4d8u8vME
EFググるとSQL serverの情報ばっかりよな
oracle11gだとコードファーストできなかった

12cから対応してるらしいが
0981デフォルトの名無しさん2015/09/26(土) 00:48:35.55ID:0uPNs2Ie
よく読んでないけどこれかな
ttp://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html
0982デフォルトの名無しさん2015/09/26(土) 06:08:42.03ID:dJryEewA
980超えました
0983デフォルトの名無しさん2015/09/26(土) 11:33:01.32ID:KGnBWXC1
次スレは>>970が立てる事になっている
0984デフォルトの名無しさん2015/09/26(土) 15:18:03.90ID:lPgGeQyi
WebbrowserでPostするデータがUTF-8でURLエンコードされて送信されるのですが
これをSJISでURLエンコードする場合はどうすればいいのでしょうか?
0985デフォルトの名無しさん2015/09/26(土) 16:18:19.26ID:qD4Po1Vl
他の言語でもずっと気になってたんだけど
引数ってメソッドに代入する前に計算してそれを放り込むのとメソッドの行で直接計算式書くのって
見た目的にきたねえのと余計な変数ができること以外なんか違いあるの?
0986デフォルトの名無しさん2015/09/26(土) 16:30:03.74ID:uTIKCoPr
あまりないと思うが、引数の評価順を変更する必要に迫られた場合
変数に格納しておくしかない
0987デフォルトの名無しさん2015/09/26(土) 16:43:14.88ID:w+tHyIOy
c#同士でプロセス間通信行いたいんだがググってもよくわからん
ipcを使うとかsendmessage使うってのは見かけたんだが二つの違いがわからない
0988デフォルトの名無しさん2015/09/26(土) 17:06:44.01ID:uTIKCoPr
IpcChannelはNamed pipesを使ってデータを送受信する
SendMessageはMessage queueを使ってデータを送受信する
C#(.NET)同士ならIpcChannelを使う方がいい
理由は楽だから
0989デフォルトの名無しさん2015/09/26(土) 17:39:41.05ID:v7fSGmLa
>>984
送信前にsjisに変換しろよ
0990デフォルトの名無しさん2015/09/26(土) 17:42:15.41ID:v7fSGmLa
>>985
>メソッドの行で直接計算式書くのって
そんな書き方は俺は認めない
0991デフォルトの名無しさん2015/09/26(土) 17:45:00.67ID:bE/QWpmW
>>985
他で使ってなければローカル変数はJITの最適化で消えるのでパフォーマンスには影響しない
一時変数に入れてるとデバッグで途中の値を見たいときに楽
0992デフォルトの名無しさん2015/09/26(土) 19:34:34.34ID:QAy/TSxu
次スレマダー
0993デフォルトの名無しさん2015/09/26(土) 20:45:56.05ID:XoMNa86j
>>990

hoge.Foo(a + b)

ですむところを

tmp = a + b
hgoe.Foo(tmp)

を強制するのか
そんなコーディングルールはいやだなぁ
0994デフォルトの名無しさん2015/09/26(土) 20:49:24.70ID:aOm8ykiX
デバッグしたい時に書き換えればいいと思う
0995デフォルトの名無しさん2015/09/26(土) 20:56:29.83ID:XoMNa86j
ウォッチウインドウで計算式入れれば良いんじゃないかと
0996デフォルトの名無しさん2015/09/26(土) 21:03:52.04ID:VMIaqxNe
VSのデバッガは優秀だから問題ないけど、スクリプト言語使ってると
エラーが出た行番号は出てるけどその行のどの式が原因なのか分からない場合がある
そういうときとりあえず一時変数に入れて行を分けたりするね
0997デフォルトの名無しさん2015/09/26(土) 21:11:12.67ID:XoMNa86j
ここはc#のスレ
0998デフォルトの名無しさん2015/09/26(土) 21:30:30.74ID:1RpaQohZ
でもラムダ式って一般に呼び出し部にベタで書くし、
それに慣れたら数式も普通に書いちゃうでしょ。
気に入らないかもしれないけど、慣れるしかないのでは。
0999デフォルトの名無しさん2015/09/26(土) 21:43:42.81ID:Eb5jOjH8
C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443271409/
1000デフォルトの名無しさん2015/09/26(土) 21:48:18.67ID:VMIaqxNe
>>998
ラムダ式はそれ自体がエラーになったりすることは無いからね
ラムダはその評価結果が問題であって、ラムダ式自体の値には特に意味が無い
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
レス数が1000を超えています。これ以上書き込みはできません。