C#, C♯, C#相談室 Part88 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/07/25(土) 16:14:05.15ID:I42JqLkfhttp://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:fLVu21Zo0003デフォルトの名無しさん
2015/07/26(日) 11:30:04.61ID:46Fm2wcCやさしいおじさんが聞いてあげるから言ってみな?
0004デフォルトの名無しさん
2015/07/26(日) 11:39:51.33ID:N2oZlVgp0005デフォルトの名無しさん
2015/07/26(日) 16:15:48.72ID:xa5HdSSx0006デフォルトの名無しさん
2015/07/26(日) 17:26:44.71ID:lXSfNNdxその情報を元にウイルスでも作ろうと思ってたんじゃないの
0007デフォルトの名無しさん
2015/07/26(日) 17:39:28.63ID:l9VGeSW8そんな頭があれば既に作ってるだろうw
0008デフォルトの名無しさん
2015/07/26(日) 19:23:11.46ID:kjrWspdcその匂いがプンプンするね
今日日セキュリティソフトを自作したところでそんな怪しげなもの誰一人使わない
犯罪目的のクズ野郎だろ
0009デフォルトの名無しさん
2015/07/26(日) 19:36:43.53ID:vtqRL+nm2ch脳全開だな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:ARLADCs40014デフォルトの名無しさん
2015/07/29(水) 10:50:05.68ID:Sn/ML9/sいくら効率が悪いといっても、こんなにしてしまうくらいならシンプルにlock式にした方が良い気がするんだよな・・・
何時までこの強引なシングルスレッドモデルを使う気なんだろうか
0015デフォルトの名無しさん
2015/07/29(水) 10:53:42.82ID:Sn/ML9/s新しくて使えるものなら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使えなくて困ったんだな確か...
0019デフォルトの名無しさん
2015/07/29(水) 11:23:56.70ID:5YdTwoj1Abort有る無しに関わらず使いたくないな。
0020デフォルトの名無しさん
2015/07/29(水) 14:35:01.41ID:Sn/ML9/sなんでこんな変態的な事しようなんて考えたんだろMSの中の人は・・・
http://www.kanazawa-net.ne.jp/~pmansato/parallel/parallel_synccontext.htm
0021デフォルトの名無しさん
2015/07/29(水) 14:36:16.21ID:Sn/ML9/sやり過ぎだ・・・
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:i8OV3HLL0025デフォルトの名無しさん
2015/07/29(水) 16:00:51.85ID:Sn/ML9/s大量のドキュメントなしに全貌が理解できないなんてのは最低です
提供される要素は巨大ライブラリじゃないんだから・・・
0026デフォルトの名無しさん
2015/07/29(水) 17:41:02.30ID:RzPhPosxだからと言ってpromiseもどきに退行する気もないが
0027デフォルトの名無しさん
2015/07/29(水) 18:09:37.81ID:Sn/ML9/sasync void のケースで、完了を待たないという事をしっかりと理解しておく事だな
待たないから、awaitを使って書かれたコードより先にそれを囲っているfinallyを実行してしまう
前者にしても後者にしても、サブルーチンやイベント呼び出しに含まれていたりするケースはバグが潜在しやすいね
こりゃ、初心者に啓蒙活動するもの大変だ
後でアンチパターン集作らないと・・・どっかサイト作っている人いないかな、作るのメンドイ
0028デフォルトの名無しさん
2015/07/29(水) 18:15:27.82ID:kqrCR8QI0029デフォルトの名無しさん
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:aeHXtAal0031デフォルトの名無しさん
2015/07/29(水) 18:31:26.26ID:7PHxXKam今日中にID:Sn/ML9/sを銃殺しておくように。
0032デフォルトの名無しさん
2015/07/29(水) 18:32:40.51ID:v5HDQPvF0033デフォルトの名無しさん
2015/07/29(水) 18:44:23.60ID:Sn/ML9/sお前らに何一つ理解できているとは思えないけどなw
0034デフォルトの名無しさん
2015/07/29(水) 19:02:27.32ID:eAAheHcVじゃ、飛び込もうか
電車がきたよ
0035デフォルトの名無しさん
2015/07/29(水) 19:28:29.68ID:ozMfiNSeバカ
0036デフォルトの名無しさん
2015/07/29(水) 21:50:33.64ID:G+YolpHZ別の言語に移植できるのかこんなの
0037デフォルトの名無しさん
2015/07/29(水) 21:59:45.14ID:A0PWsVoV0038デフォルトの名無しさん
2015/07/29(水) 22:22:48.27ID:F3xhAPP9なんだかんだC#のやり方は正しい
0039デフォルトの名無しさん
2015/07/29(水) 22:30:49.56ID:ubdcnWrb0040デフォルトの名無しさん
2015/07/29(水) 22:59:35.19ID:JV2gkNFI0041デフォルトの名無しさん
2015/07/29(水) 23:13:48.97ID:eAAheHcVtry~catchの融通の利かなさまでおんなじw
0042デフォルトの名無しさん
2015/07/30(木) 01:34:31.84ID:1osdJ7bTわざわざC#のasyncの仕様読んだ
ただの非同期処理を知らない初心者がブーたれてただけだった…
0043デフォルトの名無しさん
2015/07/30(木) 01:36:30.16ID:1osdJ7bT0044デフォルトの名無しさん
2015/07/30(木) 06:07:53.43ID:TTNL8OnSそんな知識で反応するとか酷過ぎるw
Boostはかなりきれいに整備されてるだろ
難しくはあるが複雑ではない
そして、あんまり落とし穴のような問題は無い
0045デフォルトの名無しさん
2015/07/30(木) 06:40:30.06ID:1osdJ7bTなんでそんな使った事もないのバレバレなレスが出来るんだwwwww
spiritとか黒魔術の塊なのに
最近は浅い知識で知ったかぶりするのが流行ってるのか?
0046デフォルトの名無しさん
2015/07/30(木) 06:47:38.85ID:1osdJ7bT平均的Javaプログラマすらわかるような、当たり前すぎてビビる話されてドヤられても困るわ
0047デフォルトの名無しさん
2015/07/30(木) 06:50:57.70ID:JffQwXQ60048デフォルトの名無しさん
2015/07/30(木) 06:52:34.22ID:TTNL8OnS黒魔術と難解性と複雑さの違いは理解し解こうなw
ついでに言うと知っているし、かつて使いまくってたし
今は開発全部C#に移って、だいぶご無沙汰だけどね
#あれは、構文解析機として独立したライブラリで、各種テンプレートの中でも他所への影響が少ない簡潔なライブラリだよ
0049デフォルトの名無しさん
2015/07/30(木) 07:13:49.61ID:1osdJ7bT中身Phoenixそのままだぞww
最悪そのままスレッド内で例外処理すりゃいいだけの話と、
書き損じたら読めないエラー出す上に、
使う側にも魔術要求するバッドノウハウの塊を一緒にすんなw
0050デフォルトの名無しさん
2015/07/30(木) 07:16:43.41ID:TTNL8OnS使ってみたけど難しすぎて全然分からなかったと言えよw
簡潔かどうか把握できるところまで辿り着けませんでしたと
0051デフォルトの名無しさん
2015/07/30(木) 07:31:38.69ID:1osdJ7bTアホか使ってるから言ってんだよw
そんな中身のないレスしかできない時点で、
使ってもいないのがよくわかるw
0052デフォルトの名無しさん
2015/07/30(木) 07:37:48.65ID:TTNL8OnSasync/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている
spiritのように完璧な基礎を基盤に順次積み上げているようなライブラリを挙げたりはしない
0053デフォルトの名無しさん
2015/07/30(木) 07:47:59.99ID:qgoNGP4Y0054デフォルトの名無しさん
2015/07/30(木) 07:56:59.31ID:1osdJ7bT>async/awaitの問題点の質は、参照カウンタ式のスマートポインタの問題点とよく似ている
んー?ちょっと理解できないので、ぜひ説明してみてくれ
ちなみにspiritは中身phoenixで、
普通にboost::mplも使ってるので基礎全然ではない
資産の積み重ねであると認めている時点で簡潔でもない
0055デフォルトの名無しさん
2015/07/30(木) 08:05:57.29ID:TTNL8OnS内容物を封じ込めきれない場合、くるんで隠しちゃダメなんだよ
バグだらけになる、スマートポインタが流行ったときに散々議論された話
C++の場合、それ以上に生ポインタがやばいので、チーム全体のスキルを上げてだましだまし使うという選択肢も考えられるが
C#は初心者でも使う言語だからな C++ のようにメンバー全員エキスパートとか期待できない、このあたりもヤバイ
おまえ説明しろとか言っているだけで自分で考える気もなければ、調べる気もなさそうなのでこのあたりまでな
spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
そのあたりを理解していけば多少は分かってくるかと
0056デフォルトの名無しさん
2015/07/30(木) 08:11:05.97ID:HdXuYlDO0057デフォルトの名無しさん
2015/07/30(木) 08:13:51.40ID:L13dholr最初から別言語でやれ
0058デフォルトの名無しさん
2015/07/30(木) 08:22:49.93ID:1osdJ7bTスキル問題の何が質的に同じなんだよ
頼むから少しはasync/awaitとスマートポインタの比較をしてくれ
>spirit説明しても君のレベルでは理解できないかと、とりあえず関数型言語やプログラムの証明に関する知識とか
>そのあたりを理解していけば多少は分かってくるかと
これもぜひ説明してほしいねw
TMPが関数型言語みたいなもんって話から証明は飛躍させすぎじゃね?w
0059デフォルトの名無しさん
2015/07/30(木) 08:28:21.77ID:TTNL8OnSこれで分からないなら、スマートポインタの問題についての知識すらなさそうなので、論外という事にさせてくださいなw
0060デフォルトの名無しさん
2015/07/30(木) 08:34:06.14ID:1osdJ7bT本当ただ否定するためだけの言い訳ばっかりだな
お前は中身についてまともに議論できないのに、複雑だの何だの言ってたのか?
0061デフォルトの名無しさん
2015/07/30(木) 08:37:28.13ID:TTNL8OnSその言葉そっくりそのままお返しですw
議論できるだけの基礎知識あるなら普通に返すよ、喧嘩腰にもしない
0062デフォルトの名無しさん
2015/07/30(木) 08:38:22.31ID:1osdJ7bTasync/await関係ないじゃん
何を問題視しているのかわからないね
そんなに嫌いならPromiseでも使ってろと
0063デフォルトの名無しさん
2015/07/30(木) 08:40:07.48ID:1osdJ7bT複雑さを語る割に中身は語らず、例にもスマポとかその程度で
それでいて万人に通じないTMPが簡単と言っちゃう
意味不明すぎるわ
0064デフォルトの名無しさん
2015/07/30(木) 08:40:31.54ID:JffQwXQ6何も新しいことはない
C系言語をスタックフレームの実行モデルから脱却させるという無謀な試みと一緒にするなよe
0065デフォルトの名無しさん
2015/07/30(木) 08:48:52.83ID:1osdJ7bTasync/awaitって言う糖衣構文が難しいと言う割に
TMPが簡単とか言ってるから首をかしげてるだけだよ
その上、問題を非同期処理の複雑さにすり替えてて性質が悪い
0066デフォルトの名無しさん
2015/07/30(木) 08:50:33.32ID:TTNL8OnS初心者がC++を初めて最初に驚愕するライブラリだけに、一番最初にこんなもの挙げると程度が知れるんですよ
次はもう少し賢そうに振る舞おうねw
0067デフォルトの名無しさん
2015/07/30(木) 08:54:43.00ID:G7yjDdda全然大丈夫ではなさそうだ
双極性障害(躁病)であろう
0068デフォルトの名無しさん
2015/07/30(木) 08:56:33.54ID:1osdJ7bTいくらレッテル貼ろうがboostは複雑だよ
もちろん読めなくはないが、話している内容との差がありすぎる
というかお前さん結局、async/awaitの中身に言及しなかったな
0069デフォルトの名無しさん
2015/07/30(木) 09:14:46.97ID:TTNL8OnSこれに対してどうすべきかという話
スマートポインタの場合は、見た目解放されるべきポインタが何時までも残存する事があるよね
見た目と実際が予想どおりにならない時、中身が隠ぺいされていたらお手上げ
また、見た目に分からない以上、ちょっとしたことでバグは潜在してしまう
初心者が触る時に至っては、問題すら認識できなくなる
C++の場合は、まぁincludeファイルでも観ればエキスパートなら対処可能だろう
C#の場合は言語レベル隠ぺいだからちょっと大変だねILでもみればなんとかなるが、これやれるのはごく一部かな
そして、ILが見れても、その挙動を知るには、ほとんどドキュメントのない内部用ライブラリの挙動を知る必要がある
よほどの実力がないと、問題を起こした時の対処は困難極めるだろう
内容物を隠すのなら、ガベージコレクタくらい確りしたものである必要がある
参照カウンタのスマートポインタには心配が残るが、ガベージコレクタを心配してコードする人はいないだろう
0070デフォルトの名無しさん
2015/07/30(木) 09:37:38.62ID:9H67jH/Q0071デフォルトの名無しさん
2015/07/30(木) 09:53:27.70ID:Bcr2sdZI>async/awaitは、書き方、呼び出し方次第で見た目の実行順序と実際の実行順序が変わって危険
意味が分からない。これはasync/awaitに限った話なのか
非同期処理ってそういうもんじゃないのか
0072デフォルトの名無しさん
2015/07/30(木) 09:55:56.44ID:L13dholr真面目に相手しなくていいよ
0073デフォルトの名無しさん
2015/07/30(木) 10:00:59.23ID:Z0rCKaW0これ以上煽るな
0074デフォルトの名無しさん
2015/07/30(木) 10:07:13.89ID:TTNL8OnSasync/awaitでなければ、意識する必要はないかもね、完全に意識下に置かれるから
とりあえず色々ライブラリを移行しまくっていて、食らいまくりなのはこれ、finallyの中身が最後であってほしいがそうはならない
問題点はライブラリの event が Task を戻り値としないために管理外にすっぼ抜けてしまう
導出したライブラリで頻発する
殆どのケースでは問題なく見た目通りの順序だから、普段は安心しきってしまってバグ混入と
finallyにはセマフォなどの制御があったりするから、処理が衝突したりする、しかしエラーはない
普段は正常に動いているふりをするので問題に気づくのにも結構かかった
他にもいろいろあるよ
try
{
1番
await 3番
4番
}
finally
{
2番
}
0075デフォルトの名無しさん
2015/07/30(木) 11:02:42.02ID:AGRRcWLu0076デフォルトの名無しさん
2015/07/30(木) 11:09:17.38ID:AGRRcWLutry{
Task.Factory.StartNew( ... ).ContinueWith( ..., TaskScheduler.FromCurrentSynchronizationContext() );
}
finally{
...
}
0077デフォルトの名無しさん
2015/07/30(木) 11:47:18.26ID:HdXuYlDOこの図でも見て落ち着け
0078デフォルトの名無しさん
2015/07/30(木) 19:27:24.30ID:FRlaAlkY複雑で使いにくい言語やライブラリは必然的に利用者が少ない
つまり普及度で比べれば自ずとどちらが洗練された良いものかが客観的にわかる
君たちの感想や妄想で比較するのはナンセンスなのにダラダラとくだらない議論を続けるなよ
さてboost::spiritとasync awaitはどちらがより普及している良い開発ツールなのか?
もう答えは見えたね
0079デフォルトの名無しさん
2015/07/30(木) 19:49:24.54ID:AGRRcWLu0080デフォルトの名無しさん
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>finallyの中身が最後であってほしいがそうはならない
どんな場合にそうならない?
0083デフォルトの名無しさん
2015/07/30(木) 21:37:25.07ID:YQW0UVty82は忘れて
0084デフォルトの名無しさん
2015/07/30(木) 22:04:34.70ID:YQW0UVtyVisual Studio 2015のリリースノートにはawaitのfinally周りが改良された
と書かれているけど直ってない?
0085デフォルトの名無しさん
2015/07/30(木) 22:11:47.51ID:AGRRcWLuどう治るんだよハゲ
0086デフォルトの名無しさん
2015/07/30(木) 22:38:17.31ID:l4sc3Y5pこれでしょ。
https://www.visualstudio.com/ja-jp/news/vs2015-vs.aspx
> Await が catch ブロックと finally ブロックでも機能するようになりました。このため、一部の非常に巧妙な回避策を使用する必要がなくなりました。
0087デフォルトの名無しさん
2015/07/30(木) 22:41:31.61ID:AGRRcWLu治るもクソもないだろハゲが
0088デフォルトの名無しさん
2015/07/30(木) 23:14:50.63ID:S/Rfe7uQ日本語も読めない>>87は哀れだな
0089デフォルトの名無しさん
2015/07/31(金) 01:13:31.81ID:gTceL3gJ>finallyの中身が最後であってほしいがそうはならない
って言ってますねモロに
0090デフォルトの名無しさん
2015/07/31(金) 08:19:22.46ID:ueomFH8YC#erってこんな
0091デフォルトの名無しさん
2015/07/31(金) 08:22:11.89ID:HYWsCY4P0092デフォルトの名無しさん
2015/07/31(金) 09:31:14.46ID:09Ldny0J0093デフォルトの名無しさん
2015/07/31(金) 09:35:02.77ID:a7ClvwIj0094デフォルトの名無しさん
2015/07/31(金) 10:50:37.05ID:IdVy18vn0095デフォルトの名無しさん
2015/07/31(金) 14:37:14.32ID:gQtzllmk0096デフォルトの名無しさん
2015/07/31(金) 21:56:52.32ID:5JIfYwes0097デフォルトの名無しさん
2015/07/31(金) 22:32:23.44ID:D+nD3a7Oペニサー
ペニセスト
0098デフォルトの名無しさん
2015/07/31(金) 22:48:45.97ID:9Dpcu8YK0099デフォルトの名無しさん
2015/07/31(金) 23:04:31.22ID:gTceL3gJだいぶアレな人だね
0100デフォルトの名無しさん
2015/07/31(金) 23:23:49.25ID:gPjpb1D1自分が何を言っているのか
考えた方が良い。
0101デフォルトの名無しさん
2015/08/01(土) 02:05:01.82ID:Y3XWk9yX言語としても今一番微妙なポジションにあるからね。
このまま行くと消滅路線。
0102デフォルトの名無しさん
2015/08/01(土) 02:23:11.88ID:T8vYSDDC本を読んで勉強したのですが、よくわからないです。
どうしたらアプリを作れますか?
0103デフォルトの名無しさん
2015/08/01(土) 02:31:45.31ID:QSZH+PJpそれがアプリだ
0104デフォルトの名無しさん
2015/08/01(土) 02:39:02.21ID:T8vYSDDCできればゲームを作りたいです・・・。そんなに凝ったものじゃなくていいんですが。
まず何から始めたらいいんでしょうか?
0105デフォルトの名無しさん
2015/08/01(土) 02:53:06.53ID:QSZH+PJpまずはテトリスからだな
「C# テトリス」でググレ
いろいろでてくる
0106デフォルトの名無しさん
2015/08/01(土) 03:58:15.72ID:T8vYSDDChttp://dixq.net/forum/viewtopic.php?t=14298&p=113977
のソースコードを動かしてみたら、エラーが113個出ました。
50分でテトリス作ってみたとかあるんですが、本当にそんなことができるんですか?
8月中にできないとやばいんですが・・・
0107デフォルトの名無しさん
2015/08/01(土) 04:18:39.98ID:kwRHUfwj0108デフォルトの名無しさん
2015/08/01(土) 08:20:21.83ID:yECmM48cキャラ変えたり、音変えたり、ルール変えたり、好きにすれ
0109デフォルトの名無しさん
2015/08/01(土) 13:27:36.22ID:R9VQSBfmむいてない
2度とプログラムなんかやるな
0110デフォルトの名無しさん
2015/08/01(土) 13:53:48.80ID:UUE723C3動的なゲームではなく、まずはFormでも使ってウィンドウにhello worldと表示するだけのプログラムを作ってから質問してくれ
0111デフォルトの名無しさん
2015/08/01(土) 14:25:14.32ID:aojbSuUFたくさんゲームのプログラムが載ってるゾ
0112デフォルトの名無しさん
2015/08/01(土) 18:00:25.27ID:QVboZV4Vstringはどうやってパフォーマンスを担保してるの?
immutable
0114デフォルトの名無しさん
2015/08/01(土) 19:44:47.02ID:4FytA4pZStringは値型じゃないし
何がなにやら
0115デフォルトの名無しさん
2015/08/01(土) 19:46:39.35ID:UepidV+b0116デフォルトの名無しさん
2015/08/01(土) 20:38:03.25ID:xLNzW59XimmutableはCoWでもむしろパフォーマンス悪いだろ
0117デフォルトの名無しさん
2015/08/01(土) 22:14:12.34ID:aojbSuUF0118デフォルトの名無しさん
2015/08/01(土) 23:49:12.00ID:QVboZV4V意味不明
>>115-117
stringは特別に最適化されたGC処理されるって事?
0119デフォルトの名無しさん
2015/08/01(土) 23:58:38.39ID:kwRHUfwj0120デフォルトの名無しさん
2015/08/02(日) 01:21:35.36ID:uppJpE2lGCとは全く無関係ではないが、この場合焦点がボケてるね
0121デフォルトの名無しさん
2015/08/02(日) 06:31:34.45ID:dgw1R64KItaniumの.NETをまだ使ってる奴がいたらどうすんだよ
x86 CPUが強いメモリモデルだからって無茶すんなタコ
0122デフォルトの名無しさん
2015/08/02(日) 12:06:07.57ID:WsWDxjYJデザインパターン入門[マルチスレッド編]くらい読めよ・・・
0123デフォルトの名無しさん
2015/08/02(日) 12:17:15.75ID:qgcm2xe/StringBuilderを使っても引数に渡す文字列は結局オブジェクトだからオブジェクト数の削減にはならない
CLRでは文字列とGCの相性は最悪と言える
0124デフォルトの名無しさん
2015/08/02(日) 12:25:36.10ID:tdoSvti6ぼく初心者、これの意味が分からない
0125デフォルトの名無しさん
2015/08/02(日) 12:25:39.75ID:LFE7g0os0126デフォルトの名無しさん
2015/08/02(日) 12:27:03.30ID:LFE7g0os0127デフォルトの名無しさん
2015/08/02(日) 12:44:13.40ID:qgcm2xe/ちょっとしたビジネスロジックに含まれる文字列計算でもすぐに第一世代を圧迫するので平気ではありません
>>126
マネージメモリのみを使う他のクラスのオブジェクト同士で比較すると
オブジェクトの生成が大量発生する文字列はgcと相性が悪いです
0128デフォルトの名無しさん
2015/08/02(日) 12:47:30.80ID:+O2Hc9iF言いたいことが言い終わったなら世間からGCされて死ねよ
俺がお前の家に行ってFinalizer実行してやろうか
0129デフォルトの名無しさん
2015/08/02(日) 12:56:45.82ID:LFE7g0os言っている意味が分かりません
0130デフォルトの名無しさん
2015/08/02(日) 13:06:24.68ID:wlM1NnFc↑これの意味からして分からんのだが
0131デフォルトの名無しさん
2015/08/02(日) 13:10:24.61ID:qgcm2xe/残念ながら第二世代へ昇格してしまうオブジェクトがあるので直ちに解放されるという認識は甘すぎます
0132デフォルトの名無しさん
2015/08/02(日) 13:15:42.32ID:LFE7g0os文字列で溢れかえるのは、文字列をたくさん作ったからであって、
そのプログラムの仕様なんですが、彼にはそれが分からないんですね。
GCの無い言語でもdeleteがたくさん発生するわけで、同じことなんです。
GCの有る無しは関係ないということが分からないんです
0133デフォルトの名無しさん
2015/08/02(日) 13:54:15.30ID:HOry/lAS0134デフォルトの名無しさん
2015/08/02(日) 14:09:04.38ID:qgcm2xe/Cであればメモリを即時解放できます
スタックに文字列を格納したり
ヒープの再利用も容易いです
あなたの理解は素人レベルですよ
0135デフォルトの名無しさん
2015/08/02(日) 14:25:14.82ID:LFE7g0os即時開放=同期処理というだけですが、それがどうかしたんですか?
論理アドレス空間が断片化するのは無視ですか?
0136デフォルトの名無しさん
2015/08/02(日) 14:30:15.00ID:qgcm2xe/ここまでとは…
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/理解が足りていないのですね
文字列は他のクラスよりはるかに多くのインスタンスを必要とされるものです
ゆえに文字列を通常のGCに当てはめて処理するのは愚かであると言えます
文字列は文字列に最適化された別のメモリ管理システムを使って管理すべきなのです
0140デフォルトの名無しさん
2015/08/02(日) 14:50:35.31ID:LFE7g0os文字列のようなGCの得意分野を持ち出して、向いていない、とか言い出すから分からなくなる。
0141デフォルトの名無しさん
2015/08/02(日) 16:12:28.48ID:+B7/KlLQimmutableならなおさら、操作の度に細かいインスタンス出てくるので、
ヒープメモリの管理に割く処理なんて無い方が良い
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:MUxSxVtD0145デフォルトの名無しさん
2015/08/02(日) 17:26:37.18ID:4jhYOwvvここは何のスレか言ってみろ
C#はGC使うんだよ
0146デフォルトの名無しさん
2015/08/02(日) 17:39:16.04ID:SLv/zRdd0147デフォルトの名無しさん
2015/08/02(日) 18:14:35.59ID:/ORiOewrうちの会社の連中、そんなもん使わなくてもコーディングできると言って聞きません。
外部社員でラムダ式が使える奴も見たことない。
これが普通なんですかね?
0148デフォルトの名無しさん
2015/08/02(日) 18:16:16.70ID:SLv/zRddそんなラムダ式なんか要らない
0149デフォルトの名無しさん
2015/08/02(日) 18:23:38.38ID:GEMDX31J事なかれ
0150デフォルトの名無しさん
2015/08/02(日) 18:35:48.73ID:hYBXycnP全体の5%でも居れば良い方じゃね?
とりあえず、うちの社内の人間でラムダ式やらLINQが使えない奴は総じてソースが糞だよ
というかプログラムの学習意欲が全くないから新しい技術を取り込もうという気すらない
0151デフォルトの名無しさん
2015/08/02(日) 18:37:32.45ID:mqZtRy/B周りに合わせろ雑魚が。
0152デフォルトの名無しさん
2015/08/02(日) 18:43:32.27ID:SLv/zRddラムダ式はラムダ式であることの意味がない?なもの
0153デフォルトの名無しさん
2015/08/02(日) 18:43:44.25ID:UnTn4u7/それが普通なのかしらんが
おれの周りもそう
今ので動くから新しいことは覚えない
プログラマーってこんな集まりだったんだって思っている
趣味でプログラムやってるのが俺だけ
0154デフォルトの名無しさん
2015/08/02(日) 18:44:50.65ID:hYBXycnP10年以上前の技術で止まったままの奴らに合わせる気はないわ
0155デフォルトの名無しさん
2015/08/02(日) 19:42:53.76ID:qgcm2xe/0156デフォルトの名無しさん
2015/08/02(日) 19:52:54.86ID:WqOvzvBs0157デフォルトの名無しさん
2015/08/02(日) 20:13:52.63ID:qgcm2xe/でも遊んじゃうんだなぁ〜
めんどくさい事は外注か新人に丸投げしてな
0158デフォルトの名無しさん
2015/08/02(日) 20:24:43.63ID:Ofq9w7gwC++はもう五年以上やってないし、そっちへは行ってないよ
spiritの人みたいなのならともかく、今となっては現在も技術維持している人に混ざって応えられるだけのレスを返す自信は無いし
また、C++を使った開発予定ももうないので
見つけたのなら、それはキミの仲間だよw
0159デフォルトの名無しさん
2015/08/02(日) 20:28:28.25ID:0wmkVz0F8割方そいつが論争に負けた方だw
精神勝利法って奴だな
0160デフォルトの名無しさん
2015/08/02(日) 20:42:15.23ID:jaEEYgaD20歳頃に勉強した技術にいつまでも固執していると、使い物にならなくなって
よく言う、プログラマー35歳定年説ってのに引っ掛かっちゃうよ
0161デフォルトの名無しさん
2015/08/02(日) 21:05:04.87ID:OoqJwaHz覚えずにやるからとても非効率
そういう輩には旧VBがびったりだわ
0162デフォルトの名無しさん
2015/08/02(日) 21:06:42.06ID:ZVKO9GMzって話だよな
なんでこんなに普及率が低いのかと
継承だらけのコード書く奴が偉いと思ったら大間違いだ
0163デフォルトの名無しさん
2015/08/02(日) 21:16:31.19ID:qgcm2xe/0164デフォルトの名無しさん
2015/08/02(日) 21:18:34.51ID:Ofq9w7gwWindows8とか余計なことし過ぎなんだよ
あれでは雨後の筍のようにバズワードに飛びついて刹那の利益を得るイナゴ開発者しか集まらない
細かいバージョンアップは従来の客層には興味のない話だろうし
そして何度もバージョンアップするならある程度まとめて移行する事を考えるだろうし
そのうち、もうちょっと待ってからが延々待ちに変わってしまうよね
0165デフォルトの名無しさん
2015/08/02(日) 21:21:44.75ID:OaNtdkYp0166デフォルトの名無しさん
2015/08/02(日) 21:32:05.14ID:+O2Hc9iFお前の存在も冗談なら良かったな
0167デフォルトの名無しさん
2015/08/02(日) 21:36:00.70ID:+x5c8m5Kおれロト7当たったので自主隠居しました
0168デフォルトの名無しさん
2015/08/02(日) 21:37:05.83ID:+B7/KlLQ過去レスで無思慮にasync批判してた人が
そんな事言っても説得力なさ杉
0169デフォルトの名無しさん
2015/08/02(日) 21:39:58.97ID:Ofq9w7gw無思慮なのはお前だけだろw
だいぶ調べてみたが、多くのブログでも問題点について色々懸念しつつ使うというのが常套手段のようだしな
0170デフォルトの名無しさん
2015/08/02(日) 21:46:09.22ID:0wmkVz0F0171デフォルトの名無しさん
2015/08/02(日) 21:49:46.15ID:+B7/KlLQあんな単純な機構に何の懸念があるの?
ちゃんとデコンパイルしたコード見たの?
0172デフォルトの名無しさん
2015/08/02(日) 21:49:56.58ID:9q07iZqZ0173デフォルトの名無しさん
2015/08/02(日) 22:19:13.17ID:HOry/lAS0174デフォルトの名無しさん
2015/08/02(日) 22:21:35.57ID:Ofq9w7gw0175デフォルトの名無しさん
2015/08/02(日) 22:25:58.33ID:wrwHaPDN凄く興味あるけど、ニッチなXMLとか
嵌ったら抜け出すの大変そうで関わりたくない。
0176デフォルトの名無しさん
2015/08/02(日) 22:28:09.68ID:Ufblihje0177デフォルトの名無しさん
2015/08/03(月) 01:51:07.90ID:pNSXFoy6dynamic型を使う方がいいですよね?
0178デフォルトの名無しさん
2015/08/03(月) 12:38:55.67ID:R9pQU16aC#のラムダ式はYコンビネータを記述できない紛い物
無名デリゲートで使うだけならまだしも、
>>147 のようにC#erの実力や進取スタンス判定に使うなど
プログラミングの基本がわかっていない馬鹿としかいいようがない
害になるから消えてほしい
0179デフォルトの名無しさん
2015/08/03(月) 13:31:25.78ID:CtQaDoTDラムダ式を理解できない老害こそ消えるべき♪
0180デフォルトの名無しさん
2015/08/03(月) 15:01:00.11ID:gHG/w8Da言ってみたかったんだよね
0181デフォルトの名無しさん
2015/08/03(月) 18:16:27.74ID:LdMIlPMJという持論が世界普遍的に正しいものと信じて盲信する
キチガイのタワゴトです
0182デフォルトの名無しさん
2015/08/03(月) 18:42:16.07ID:scYGV4Wn0183デフォルトの名無しさん
2015/08/03(月) 19:32:53.72ID:4R/NRCjCコンビネータ君もまた不要な人材なので社会から切り捨てられる運命なんだね
0184デフォルトの名無しさん
2015/08/03(月) 20:35:34.82ID:QrF7rs+g煽りじゃなく具体例を教えてくれや
0185デフォルトの名無しさん
2015/08/03(月) 21:05:47.80ID:2JpaSVHC書けてもいいことないけど
0186デフォルトの名無しさん
2015/08/03(月) 21:59:21.98ID:fkEOVG2I全部C#にするのがまず間違っとる
0187デフォルトの名無しさん
2015/08/03(月) 22:20:26.90ID:jNbM75sK0188デフォルトの名無しさん
2015/08/03(月) 22:20:38.41ID:VRwLh7Nwそれは、ラムダ式を引数にしている関数が再帰をしたい場合とかだろう
(x) => x == 0 ? 1 : x*thisfunc(x)
みたいな感じで、自身の関数名をキーワードとして書ければ良い気がする、直接的で分かりやすい
Yコンピネータがあれば無くてもできるというがコードが汚い
あと、名前空間を汚さずに済むケースが増えるなどかな
汚れの少ない名前空間ではインテリセンスがうまく機能してくれるから、重要といえば重要
ただ、これも名前空間をもっと綺麗に整理できるような機能があってくれた方がいいな
関数内クラスとか欲しい
0189デフォルトの名無しさん
2015/08/03(月) 22:24:33.54ID:fkEOVG2I0190デフォルトの名無しさん
2015/08/03(月) 22:25:11.33ID:7E1soqtP0191デフォルトの名無しさん
2015/08/03(月) 22:29:55.11ID:VRwLh7Nw0192デフォルトの名無しさん
2015/08/03(月) 22:38:49.23ID:fkEOVG2I何故知ったかぶりするのか
0193デフォルトの名無しさん
2015/08/03(月) 22:38:55.27ID:vbPvRk2A0194デフォルトの名無しさん
2015/08/03(月) 22:44:36.51ID:VRwLh7Nwラムダ式はLINQで式ツリーを作ったもんだから必要になったから別途用意したんじゃないかと
無名デリゲートではコンパイルしてSQL文を吐き出すといった操作はできないから
0195デフォルトの名無しさん
2015/08/04(火) 03:36:34.18ID:Ru0/ho150196デフォルトの名無しさん
2015/08/04(火) 12:27:43.87ID:m+fooKhS0197デフォルトの名無しさん
2015/08/04(火) 13:57:48.78ID:bMUTQ2fCまぁこれでこそC#って感じだけどな
もちろん悪い意味で
0198デフォルトの名無しさん
2015/08/04(火) 16:48:14.90ID:wPc1LIE60199デフォルトの名無しさん
2015/08/04(火) 17:04:57.64ID:NUOEqkl8学生が暴れているようには見えんわ
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自前で実装したなら、分かるのは実装した本人だけかと
ちなみに自分はexcelに仕様を合わせたライブラリを作っている
0202デフォルトの名無しさん
2015/08/04(火) 18:09:56.36ID:0uDnfCntそういう問題じゃないと思うけどw
0203デフォルトの名無しさん
2015/08/04(火) 18:14:08.39ID:wPc1LIE60204デフォルトの名無しさん
2015/08/04(火) 18:47:05.52ID:rfwH7+bZ0205デフォルトの名無しさん
2015/08/04(火) 18:49:56.95ID:N21FScZA0206デフォルトの名無しさん
2015/08/04(火) 19:07:37.25ID:JacjvlNaCSVファイルと言うのは通常テキストファイルの一種なので
それを使う事を普通はシリアル化/逆シリアル化とは呼びません
CSVファイルは細かい仕様がいろいろあるので
CSVというだけでは互換性があるかどうかは判断できません
0207デフォルトの名無しさん
2015/08/04(火) 19:15:23.79ID:qaA+gaVg-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/hdf4e80209デフォルトの名無しさん
2015/08/04(火) 19:26:03.23ID:aAgYc1Dvそうなんですね。ありがとうございます。
ようは、せっせと作ったあるデータを悪い事するヤツに
ぱくられるのが嫌でシリアル化しようと思っていた次第です。
もっともぱくれる人はそもそもぱくったりしないで自分でそういった用途のツールは
作れるので被害数は少ないのかな〜なんて悩んでます。
0210デフォルトの名無しさん
2015/08/04(火) 19:29:44.57ID:rfwH7+bZ0211デフォルトの名無しさん
2015/08/04(火) 19:33:30.97ID:NUOEqkl8それシリアル化と違うw
0212デフォルトの名無しさん
2015/08/04(火) 19:43:04.44ID:4wCZUsr60213デフォルトの名無しさん
2015/08/04(火) 19:50:47.06ID:2RIpmI500214デフォルトの名無しさん
2015/08/04(火) 19:52:41.23ID:NUOEqkl80215デフォルトの名無しさん
2015/08/04(火) 20:15:51.50ID:si5ERY1h0216デフォルトの名無しさん
2015/08/04(火) 20:21:13.38ID:D63J00pB0217デフォルトの名無しさん
2015/08/04(火) 20:23:11.10ID:DSzfOyI80218デフォルトの名無しさん
2015/08/04(火) 20:30:05.37ID:aAgYc1DvC#で保存したファイルと同じデータをWEBサーバ側(PHP)で作る事は出来ますか?
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, Instance);
0219デフォルトの名無しさん
2015/08/04(火) 20:34:50.51ID:VO4nX6cY誰でも見れるけどな!
0220デフォルトの名無しさん
2015/08/04(火) 20:37:30.69ID:tHoFWEHK暗号化が目的ならパスワードZIP使うのが無難
0221デフォルトの名無しさん
2015/08/04(火) 20:42:06.66ID:aAgYc1Dvじゃー、いみねーだろ
>>220
解読ぱすわーどをreflectorとかでのぞかれちゃいますよね?
0222デフォルトの名無しさん
2015/08/04(火) 20:47:55.07ID:DSzfOyI80223デフォルトの名無しさん
2015/08/04(火) 20:47:56.74ID:NUOEqkl8単純な暗号化でも謎のフォーマットであれば解読する気になるのは難しいから
それよりシリアライズという言葉に拘っても仕方ないでしょ
0224デフォルトの名無しさん
2015/08/04(火) 20:52:14.90ID:DSzfOyI80225デフォルトの名無しさん
2015/08/04(火) 21:03:17.96ID:NUOEqkl8お前らがそうやって煽るから目的見失って意固地になってんのが問題なんで
0226デフォルトの名無しさん
2015/08/04(火) 21:03:56.06ID:tHoFWEHK0227デフォルトの名無しさん
2015/08/04(火) 21:06:55.71ID:DSzfOyI8データをwebからダウンロードする時にパスワードを一緒に発行したらいい
0228デフォルトの名無しさん
2015/08/04(火) 21:11:56.51ID:aAgYc1Dvサンキュー!そうします。
>>224
黙れ糞
>>227
通信を監視されたらパスワードばれるよね?
0229デフォルトの名無しさん
2015/08/04(火) 21:14:00.50ID:DSzfOyI8小便垂れ小僧
0230デフォルトの名無しさん
2015/08/04(火) 21:16:18.14ID:HOSQCMMNReflectorでコード読んで同じ方法で戻すなんて赤子の手をひねるようなもの
0231デフォルトの名無しさん
2015/08/04(火) 21:19:21.40ID:m7aLZgrlSSLは10年以上前に廃れただろ
0232デフォルトの名無しさん
2015/08/04(火) 21:21:56.64ID:NUOEqkl80233デフォルトの名無しさん
2015/08/04(火) 21:25:30.10ID:HOSQCMMN今時HTTPSを全く使わずに生活してるとかどこの原始人だよw
0234デフォルトの名無しさん
2015/08/04(火) 21:34:50.08ID:XZl3Vdz70235デフォルトの名無しさん
2015/08/04(火) 21:42:30.48ID:GsFgeSUyスレの質的に
0236デフォルトの名無しさん
2015/08/04(火) 21:47:08.67ID:wPc1LIE60237デフォルトの名無しさん
2015/08/04(火) 21:54:10.88ID:8AFF5O0U> C#にCSV用の標準ライブラリってあったっけ?
.NETFramework だけど Microsoft.VisualBasic.FileIO.TextFieldParser クラスが定番みたいだな
0238デフォルトの名無しさん
2015/08/04(火) 21:57:51.71ID:si5ERY1h>>209みたらパスワードZIPが最適解の様に思えるわ
0239デフォルトの名無しさん
2015/08/04(火) 22:00:16.11ID:QCZq3/o/0240デフォルトの名無しさん
2015/08/04(火) 22:01:37.91ID:GsFgeSUyなんで「最適解」って言ったし?
「最適」じゃなくて
0241デフォルトの名無しさん
2015/08/04(火) 22:48:49.48ID:a+hgGQs8それは一つ前の自分のレス読んだ上で言っているのか?
0242デフォルトの名無しさん
2015/08/05(水) 00:46:50.12ID:Nv7QXLgvお前と違って皆スキルたけーんだよ。じじぃ
0243デフォルトの名無しさん
2015/08/05(水) 00:48:53.88ID:w1UWuDWCオメーが引き受けたんだからオメーがきっちり回答しろボケ
0244デフォルトの名無しさん
2015/08/05(水) 01:13:56.73ID:jL5pDRikこのスレ全部読めばアプリ1本つくれますか?
0245デフォルトの名無しさん
2015/08/05(水) 01:17:03.57ID:bdT2SiZUハローワールドなら作れるんじゃね?
0246デフォルトの名無しさん
2015/08/05(水) 06:48:51.18ID:12Hajjty本人もう方向性決めてるんだから、この話はもう終わってるんだよ
能無しは黙るという事を覚えろ
0247デフォルトの名無しさん
2015/08/05(水) 07:13:55.18ID:w1UWuDWCいちいちしょうもない話題で慣れ合いするわ
初心者質問引き受けてかき回すわ
お前こそ能無しなんだから黙っとけよ
0248デフォルトの名無しさん
2015/08/05(水) 07:17:40.22ID:tQ69mcSf0249デフォルトの名無しさん
2015/08/05(水) 07:29:23.76ID:e4gAPQI90250デフォルトの名無しさん
2015/08/05(水) 09:02:51.39ID:4qiJRodCCopyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>echo ハローワールド
ハローワールド
C:\>
0251デフォルトの名無しさん
2015/08/05(水) 09:37:48.34ID:nxXw/daGお前はスレ分けてる理由理解しとけよチンカス
0252デフォルトの名無しさん
2015/08/05(水) 09:52:29.59ID:dcbhMYr4C#おしえてくださ
0253デフォルトの名無しさん
2015/08/05(水) 15:33:24.08ID:bdT2SiZU透明部分をfalseにして残りはtrue。
これで当たり判定をしたいんだけど重いかな?
0254デフォルトの名無しさん
2015/08/05(水) 16:04:06.01ID:IqH75krmまあ労力の割に報われない気もする
0255デフォルトの名無しさん
2015/08/05(水) 16:40:58.05ID:bdT2SiZUその方法いいですね。流石に最初からしてたらマズイか。
式が乗ってるサイトとかないですかね?
0256デフォルトの名無しさん
2015/08/05(水) 17:05:58.09ID:IqH75krm0257デフォルトの名無しさん
2015/08/05(水) 17:23:40.78ID:mF9W7r6VBitBltを使ったら思いっきり高速化できそうな気が
0258デフォルトの名無しさん
2015/08/05(水) 19:35:05.62ID:/gxT3Aye0259デフォルトの名無しさん
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:A44YML9F0262デフォルトの名無しさん
2015/08/05(水) 20:51:18.27ID:pM9rsz350263デフォルトの名無しさん
2015/08/05(水) 21:15:47.26ID:7hSDQEcX0264デフォルトの名無しさん
2015/08/05(水) 21:22:56.01ID:e4gAPQI90265デフォルトの名無しさん
2015/08/05(水) 21:24:13.47ID:/SddKZ7Qちょっと気になるから見てみたいわ
0266デフォルトの名無しさん
2015/08/05(水) 21:28:51.37ID:HSrSK7kE固定長も扱える優れものかと思ったら、ホントに文字数だからバイト数で指定できるようにしてほしいの
0267デフォルトの名無しさん
2015/08/05(水) 21:30:58.55ID:/lT/VJHo円使ったら単純な実装だと矩形に比べて無駄にピクセル単位の判定の頻度が増えるから
全ピクセルが収まるような最小の円を求めるとかしなきゃいけなくて無駄に面倒
まあ普通は複数の円の組み合わせで十分じゃないかな
回転や拡大縮小も特別な考慮がいらないし速いしベクトル計算で統一できてソース綺麗になるし
0268デフォルトの名無しさん
2015/08/05(水) 21:31:34.62ID:12Hajjtyサクッとググッてみたら、ビットごとの and or もってるから
これを使えば 128bit まとめてテストできるんじゃないかな
これでたいぶ早くなるかと
#すでに上がっているBitBltの方がもっと早そうなので、オマケ程度に
0269デフォルトの名無しさん
2015/08/05(水) 21:40:49.37ID:/lT/VJHo最適化は小手先の細工の前にアルゴリズムを工夫するんだよ。
例えば画像を小さな領域に分割しておけば、全部透明な領域は判定しなくていいだろ?
C++&SSE&インラインアセンブラで書き直したりするより遥かに速くなる。
0270デフォルトの名無しさん
2015/08/05(水) 21:44:27.09ID:12Hajjty俺凄いってそこまでアピールしないと生きていけないのかよ、この屑w
#見ての通りオマケ程度にみてくれという話なんだが
0271デフォルトの名無しさん
2015/08/05(水) 21:44:45.24ID:pM9rsz35どっちかって言うとビット演算を使う方が王道で、小さな領域に分割云々の方が余程小手先の話に聞こえるけど。
0272デフォルトの名無しさん
2015/08/05(水) 21:47:10.94ID:nxXw/daG死ねよクソ/.er
0273デフォルトの名無しさん
2015/08/05(水) 21:51:13.43ID:y9IIWzjNhttp://marupeke296.com/COL_2D_No8_QuadTree.html
0274デフォルトの名無しさん
2015/08/05(水) 21:56:08.41ID:/lT/VJHoそれはリニアサーチが王道でクイックソートは小手先だと言ってるようなもの
0275274
2015/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ビット演算がどうのというのは大した問題じゃないんだが
本当に何もわかってないんだな
0279デフォルトの名無しさん
2015/08/05(水) 22:10:51.37ID:e4gAPQI9もっとUIがインタラクティブ()になったら多用されるのかな
0280デフォルトの名無しさん
2015/08/05(水) 22:12:25.26ID:w1UWuDWC0281デフォルトの名無しさん
2015/08/05(水) 22:14:01.89ID:/lT/VJHoシミュレーション まあそのまんまだが
もっと身近な例だとマウスでボタンをクリックするのも当たり判定だよ
0282デフォルトの名無しさん
2015/08/05(水) 22:16:34.25ID:12Hajjtyこれを三次元に拡張するなら、xyxy... と並べる所を xyzxyz... と並べればいいかななど、一工夫すれば行ける?
高次元でも以下同様な感じで
あとで応用考えたい
0283デフォルトの名無しさん
2015/08/05(水) 22:19:00.22ID:pM9rsz35当たり判定をしなくていいオブジェクトをふるいにかけるアルゴリズムじゃないのか?
0284デフォルトの名無しさん
2015/08/05(水) 22:19:49.62ID:12Hajjty無能には分からないのさw 無能だから
0285デフォルトの名無しさん
2015/08/05(水) 22:21:24.58ID:ezlo0CHQそうよ
正確に言うといろいろあるふるいのひとつにすぎん
0286デフォルトの名無しさん
2015/08/05(水) 22:23:16.73ID:pM9rsz35だったら少なくとも質問者の役にはあんまり立たないね
0287デフォルトの名無しさん
2015/08/05(水) 22:29:15.39ID:w1UWuDWCいちいち自己愛高めな奴だなあ
確かに3次元衝突判定にも使うが
多変量解析で木分割してったら次数上がるほど指数関数的に増えるだろ
自分で考えるなんて無駄な事するより学習に時間割いとけよ
0288デフォルトの名無しさん
2015/08/05(水) 22:29:35.82ID:e4gAPQI9まあカーソルのホットピクセルとかの1ピクセルの当たり判定は除外しようよ
0289デフォルトの名無しさん
2015/08/05(水) 22:32:44.74ID:y9IIWzjNなぜならあたり判定そのものの速度はそれ以上改善の余地がないので
無駄な計算を省く方向で考える
0290デフォルトの名無しさん
2015/08/05(水) 22:37:05.34ID:12Hajjty新しいネタあれば使ってみる
やってみて使えそうだったら使うし、使えなさそうなら捨てる、それだけだよ
見た感じシンブルなアルゴリズムに見えるから、これに割く時間的コストは少々で済みそうだし
ほんと、噛みつかないと気が済まない人だねw
0291デフォルトの名無しさん
2015/08/05(水) 22:37:53.90ID:HSrSK7kE0292デフォルトの名無しさん
2015/08/05(水) 22:41:52.30ID:w1UWuDWC解析で探索領域を限定する時に、
データも見ずに事前の分割方法で木分割なんてしないだろ?
それをわかってて言ってるとは思えないから突っ込んでるわけ
0293デフォルトの名無しさん
2015/08/05(水) 22:43:17.03ID:12Hajjtyそんなもんとりあえずぶちかましてみて、問題があったらその時考えりゃいいんだよw
めんどくせー奴だな
0294デフォルトの名無しさん
2015/08/05(水) 22:45:08.73ID:y9IIWzjN単に誰にでも分かりやすい話題が出ただけでそ
最近、2chへの書き込み量はめっぽう減りましたね
しかし、誰にでも答えられる簡単な餌が投入されると、
直ちにたくさんのレスが帰ってきますので、たくさんの人がWatchしているもよう
たくさんの人が見ているのに、書き込みが少なくて流れにくいということは、
広告やスパムの餌食にあいやすいということでしょうか
0295デフォルトの名無しさん
2015/08/05(水) 22:50:15.10ID:4qiJRodC0296デフォルトの名無しさん
2015/08/05(水) 22:51:58.37ID:w1UWuDWCだから基礎からやれってば
0297デフォルトの名無しさん
2015/08/05(水) 22:52:12.04ID:HSrSK7kEまず駅にゆきます
0298デフォルトの名無しさん
2015/08/05(水) 22:57:02.95ID:12Hajjty多分この分野でもお前よりだいぶ自分の方が詳しいと思うので(笑)
#時間は有限、無駄には出来ない。すぐできるものはすぐやれ!、これが俺流
0299デフォルトの名無しさん
2015/08/05(水) 22:59:18.61ID:p4ECD10b0300デフォルトの名無しさん
2015/08/05(水) 23:00:36.23ID:BSV0tPUM0301デフォルトの名無しさん
2015/08/05(水) 23:01:26.69ID:3yG9sQVS0302デフォルトの名無しさん
2015/08/05(水) 23:01:51.67ID:nxXw/daGついでにカッコ良く自害してくれや
0303デフォルトの名無しさん
2015/08/05(水) 23:03:11.89ID:PXH9N0kW0304デフォルトの名無しさん
2015/08/05(水) 23:03:15.88ID:zxDgQD7q0305デフォルトの名無しさん
2015/08/05(水) 23:04:10.44ID:/SddKZ7Q0306デフォルトの名無しさん
2015/08/05(水) 23:06:51.80ID:0I3R2SM70307デフォルトの名無しさん
2015/08/05(水) 23:07:33.69ID:bdT2SiZU0308デフォルトの名無しさん
2015/08/05(水) 23:08:11.96ID:/lT/VJHo領域に分割してピクセル単位の判定をするとして、
一方が完全透明→はずれ
両方が完全不透明→あたり
一方がグレーでもう片方が完全透明でない→該当領域を分割してそれぞれ再度判定
と繰り返していけばピクセル単位の判定ができるはずだから、
ツリーの更新や探索で似たような方法が使えないかな
0309デフォルトの名無しさん
2015/08/05(水) 23:14:34.62ID:y9IIWzjNそれでうまくいくんかね
普通は
親領域で判定してハズレ→完全にハズレ
親領域で判定してアタリの可能性有り→子領域で再判定
だと思うんだが
0310デフォルトの名無しさん
2015/08/05(水) 23:19:25.78ID:/lT/VJHoそれをピクセル単位の判定に適用すれば>>308になると思うんだけど、違ってる?
透明とか不透明とかグレーとかいうのは領域内の透明度の平均値と考えてほしい
0311デフォルトの名無しさん
2015/08/05(水) 23:24:17.12ID:w1UWuDWC何の高次元を言ってるのかしらんけど
少なくとも文書間距離なんかの近傍探索じゃ使い物にならないよ
そこまでいうなら突き進めばいい、そして戻ってくるな
0312デフォルトの名無しさん
2015/08/05(水) 23:25:22.08ID:y9IIWzjN0313デフォルトの名無しさん
2015/08/05(水) 23:38:24.81ID:HSrSK7kE0314デフォルトの名無しさん
2015/08/06(木) 01:19:21.09ID:QYfkW8HMエナジードレイン10回食らってもこうはならんわ
0315デフォルトの名無しさん
2015/08/06(木) 01:26:49.79ID:WAl/fNJ80316デフォルトの名無しさん
2015/08/06(木) 01:55:10.84ID:rwLMabch0317デフォルトの名無しさん
2015/08/06(木) 04:44:04.83ID:Op1qw5HRhttp://kaori-diet.sblo.jp/
0318デフォルトの名無しさん
2015/08/06(木) 09:10:55.30ID:DlVmD4pB0319デフォルトの名無しさん
2015/08/06(木) 11:26:40.44ID:kBFzylAmわろたw
厳しく適切な>>16であったことが今わかる
0320デフォルトの名無しさん
2015/08/06(木) 20:22:19.09ID:kl/392J0その内容を画面に表示するプログラムを作っていました。
しかし、
hage_list.txt は普通にメモ帳で開けば見えてしまいます。
そこで test.exe に hage_list.txt を統合する方法が無いか
探していますがいまいち分かりません。
リソースファイルとか何かで昔exeにガッチャンコした事が
あるのですが忘れてしまいました
どなたか方法をご教示くいださい。
0321デフォルトの名無しさん
2015/08/06(木) 20:32:44.41ID:MITLwi1y0322デフォルトの名無しさん
2015/08/06(木) 20:34:44.53ID:Zc/oKMcW0323デフォルトの名無しさん
2015/08/06(木) 20:46:00.45ID:DlVmD4pB併用は可能
0324デフォルトの名無しさん
2015/08/06(木) 20:50:57.18ID:h5fzoUK90325デフォルトの名無しさん
2015/08/06(木) 20:52:36.14ID:WJS3pxUOデータを内部に持つか外部に持つかは内容で決まるものだぞ?
見られたら恥ずかしい程度なら文字列のBASE64表現が簡単でオススメ
0326デフォルトの名無しさん
2015/08/06(木) 20:57:51.83ID:U/Ws3l7N0327デフォルトの名無しさん
2015/08/06(木) 20:58:09.44ID:WJS3pxUO昔暗号化やろうとしたけど単体アプリで安全な鍵管理できなくてショックを受けた
0328デフォルトの名無しさん
2015/08/07(金) 09:10:01.50ID:6Ol1nxYiconst変数は大文字で書けとか、条件式は左に値を書けとか
コードレビューでの指摘はそんなんばっか。まじで頭痛い
0329デフォルトの名無しさん
2015/08/07(金) 09:47:11.85ID:vg93TV/00330デフォルトの名無しさん
2015/08/07(金) 11:08:14.50ID:Yq0yocgf0331デフォルトの名無しさん
2015/08/07(金) 11:43:48.15ID:3jkMWAMOふつーの会社は中で何するか分からないソフトは使わないよ。
君がテキトーだということはよく分かった。
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ソリューションエクスプローラのプロジェクトのプロパティーを開くと、そこにリソースの項目があるので、そのファイルを追加すればいいよ
リソースへのアクセスの仕方は Properties.Resources.TextFile1 みたいな感じでできる
#否定と罵倒しかしない奴は死ねばいいと思うんだ
0335デフォルトの名無しさん
2015/08/07(金) 13:21:07.74ID:R/QQtRSbお前まだ生きてたの?
死ねって言ったろ
家どこ?
手伝うから
0336デフォルトの名無しさん
2015/08/07(金) 13:27:59.28ID:EOKzEcHq0337デフォルトの名無しさん
2015/08/07(金) 15:15:47.58ID:HWJu9s4eありがとうございます!暴言ばかり吐く>>335みたいなマゴットとは違いますね。
0338デフォルトの名無しさん
2015/08/07(金) 18:11:32.21ID:5F35ZKAl0339デフォルトの名無しさん
2015/08/07(金) 19:20:01.12ID:Wf7UnCAaコンパイラも自社開発か
そりゃスゲー
0340デフォルトの名無しさん
2015/08/07(金) 19:35:13.24ID:7Fy+2m0Yhttp://live.fc2.com/79752690/
0341デフォルトの名無しさん
2015/08/07(金) 20:00:32.25ID:Yq0yocgfあ、うん、どこだってそうだよね(汗
0342デフォルトの名無しさん
2015/08/07(金) 20:07:26.86ID:dQ9fwwsL0343デフォルトの名無しさん
2015/08/07(金) 20:38:07.94ID:TSMSNX7Rインテルをふつーの会社とはあまり言わないけどな
0344デフォルトの名無しさん
2015/08/07(金) 21:19:01.22ID:TzkIo9sFあぁconst変数なんだなぁと分かる気がするからそうしてる
0345デフォルトの名無しさん
2015/08/07(金) 23:17:33.17ID:/BWZNXKg気持ちは分からんでもないけど、constかどうかをプログラマが意識する必要性は
ないんだけどね。
ところでconst変数てw
0346デフォルトの名無しさん
2015/08/08(土) 00:18:32.35ID:qUvMcN+hInt32.MaxValueだし
0347デフォルトの名無しさん
2015/08/08(土) 00:39:43.01ID:Ijf29GRsconstだけなじみのルールを適用するのはどうかと思う
const大文字を見ると常常思ってた
0348デフォルトの名無しさん
2015/08/08(土) 01:04:23.34ID:z+a/XH7FMSDNのプログラム例でもそうだね
public const int BufferSize = 1024;
0349デフォルトの名無しさん
2015/08/08(土) 01:22:42.61ID:cerAE1Gg例え規約に小文字で書けとあってもそれに従え
嫌なら辞めろ
0350デフォルトの名無しさん
2015/08/08(土) 06:39:05.83ID:2mT64iaQprivate static readonlyも大文字がある
0351デフォルトの名無しさん
2015/08/08(土) 07:27:18.92ID:ja+NNaTJ定数を大文字で書いたらダメなの?
C言語では大文字で書いてたからC#にもそのルール引き継いでるんだけどマズい?
0352デフォルトの名無しさん
2015/08/08(土) 08:00:56.43ID:xp2orv6hhttps://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+どの規約がいいかどうかの話だろ
規約を守りましょうとかの小学校レベルの話ではないよ
0355デフォルトの名無しさん
2015/08/08(土) 08:25:11.96ID:qm4uwrZiだが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
354みたいなものバカのことな
0356デフォルトの名無しさん
2015/08/08(土) 08:30:42.48ID:xp2orv6h互いにお約束の通じないチーム同士の間でも従うべき最低限のルール
チーム内部なら好きにすればいいという考え方もあるが、
一般的には.NET開発における絶対的なルールと考えるべき
実際VSの上位エディションだと問答無用で警告出るし
0357デフォルトの名無しさん
2015/08/08(土) 08:45:41.17ID:cYx2D4V+> だが規約の意味を知らなかったり規約の適用範囲も認識しないバカは多い。
自己紹介? w
いきなり関係ないことで騒ぐのは授業が理解できない小学生によくある行動
0358デフォルトの名無しさん
2015/08/08(土) 08:52:39.89ID:rDuvbo6u最低限()、絶対的()
0359デフォルトの名無しさん
2015/08/08(土) 09:41:18.59ID:Mi72fTNRあとNetBeansなら
if(true){
}
だけどVSだと
if(true)
{
}
になって戸惑った。
0360デフォルトの名無しさん
2015/08/08(土) 09:44:10.32ID:gs2aQZWx0361デフォルトの名無しさん
2015/08/08(土) 09:52:45.16ID:Fe3rcXOXラクダケースじゃなかったらビルドエラー出すとか
0362デフォルトの名無しさん
2015/08/08(土) 11:20:02.19ID:uyIUSJEfconst int Num O
こういう事か?
0363デフォルトの名無しさん
2015/08/08(土) 12:20:01.30ID:ja+NNaTJ0364デフォルトの名無しさん
2015/08/08(土) 13:53:13.30ID:QwAfSdLtモダンなIDEならリファクタリング機能とか言うのかのう…
0365デフォルトの名無しさん
2015/08/08(土) 14:04:02.19ID:Mi72fTNRVSなら変数名変更したら下に矢印出てくるだろ
0366デフォルトの名無しさん
2015/08/08(土) 14:08:52.14ID:ja+NNaTJ使った事ないんだけどこれって信用できるの?
0367デフォルトの名無しさん
2015/08/08(土) 14:12:34.10ID:Mi72fTNRメモ帳の置換えと違ってその変数のみが置き換えられる。
例えばフィールドのxとローカルのxがあったとしてフィールドのxをxxにしたらローカルは書き換えられない。
0368デフォルトの名無しさん
2015/08/08(土) 14:15:11.18ID:cYx2D4V+やってみて差分とって確認してみれば?
0369デフォルトの名無しさん
2015/08/08(土) 14:24:41.94ID:ja+NNaTJありがとう使ってみる
0370デフォルトの名無しさん
2015/08/08(土) 16:08:26.01ID:8yeleZKwdynamicとプリプロセッサ使っていないなら、ほぼ信用できる感じ
使ってあっても変更したい対象には無関係という事は多いのでかなり使える
マイクロソフトが標準的に使っている規約から外れた規約を社内ルールで使っている場合
全員を説得して回ってマイクロソフト標準に合わせたほうがいいだろうね
IDEがバージョンアップする毎に面倒が増えるから、規約がコスト増の原因になる
規約の目的は面倒事やコストを減らす為なので
0371デフォルトの名無しさん
2015/08/08(土) 16:12:24.30ID:h9o0NTln大げさでなく信じられないw
0372デフォルトの名無しさん
2015/08/08(土) 16:19:06.87ID:8yeleZKw他言語から来た人は知らない人もいるのでは?
ウエブ系の人にこれを見せたら、おったまげた人も結構いたよ
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+KPzjiunameof演算子が最初からあれば良かったのに。
0375デフォルトの名無しさん
2015/08/08(土) 17:20:04.30ID:8yeleZKwあとジェネリックスも最初から欲しかったかな
一旦object型に変換されると、そこですべてが切れてしまうので
ジェネリックスができてから typedef が後から実装できない仕組みだったのも痛かった
当時のtypedef嫌悪は大失敗だったね
0376デフォルトの名無しさん
2015/08/08(土) 17:43:22.51ID:AWBqCflR9月までこの調子なの?
ちょっと絶望するな
0377デフォルトの名無しさん
2015/08/08(土) 18:29:59.35ID:bub58w7+高レベルな376様がいらっしゃたぞー
これから高レベルな話してくださるから
傾聴せよー傾聴せよー
0378デフォルトの名無しさん
2015/08/08(土) 19:08:49.81ID:GOE31OJa0379デフォルトの名無しさん
2015/08/08(土) 19:41:42.79ID:6EY1XTBT前の方が良かった
0380デフォルトの名無しさん
2015/08/08(土) 20:37:26.94ID:8yeleZKw0381デフォルトの名無しさん
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/4sEUi0384デフォルトの名無しさん
2015/08/09(日) 00:12:32.28ID:7R1hSeQZ0385デフォルトの名無しさん
2015/08/09(日) 00:31:14.85ID:Bf9QBgBr0386デフォルトの名無しさん
2015/08/09(日) 03:04:04.03ID:lFKFU4FJで、俺はできるんだから話を聞けぇってトコロなんだろうよ
多分リアルは自殺物レベルで悲惨なんだろうなw
0387デフォルトの名無しさん
2015/08/09(日) 09:55:43.54ID:/6/RtruA0388デフォルトの名無しさん
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おわり
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:PN28vv9M0398デフォルトの名無しさん
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>>352に書かれているわけだが読まずに質問とは
C#の初心者じゃなくて日本語の初心者ですかチョンですか?
0400デフォルトの名無しさん
2015/08/10(月) 04:25:04.74ID:RHMENy6h0401デフォルトの名無しさん
2015/08/10(月) 04:54:29.74ID:e3IdXlk7組み込みました。そしてリソースファイル名を「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:RHMENy6h0403デフォルトの名無しさん
2015/08/10(月) 05:03:18.94ID:e3IdXlk7早速ありがとうございます!
試してみます!
0404デフォルトの名無しさん
2015/08/10(月) 05:26:39.23ID:e3IdXlk7出来ました。ありがとうございます!
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:USJNgyLHAからBを派生させるんじゃなくて、AとBの基底クラスとしてCを作ってからA,Bを派生させるほうが理にかなうと思うが
0408デフォルトの名無しさん
2015/08/11(火) 08:18:55.99ID:t7UpLVsuいわゆるテンプレートみたいなものなので、継承関係はありません
0409デフォルトの名無しさん
2015/08/11(火) 08:22:26.01ID:RnBcDQFJ0410デフォルトの名無しさん
2015/08/11(火) 09:29:28.39ID:C3iuhTEx0411デフォルトの名無しさん
2015/08/11(火) 12:54:53.39ID:t7UpLVsuそうします。
でも、いちいちプロパティとかラップするのめんどいですよね。
なんとかなりませんか。
0412デフォルトの名無しさん
2015/08/11(火) 13:07:55.82ID:MDlGrES8だから>>407が言ってるようにすればいい。
何を言ってるんだ。
0413デフォルトの名無しさん
2015/08/11(火) 13:47:10.32ID:+IVNtZk/>>407に対して>>408みたいに返す応用力のなさじゃ
手取り足取り説明しないとw
0414デフォルトの名無しさん
2015/08/11(火) 14:53:21.55ID:t7UpLVsuキャストできたらまずいってーの、継承について勉強しろ
0415デフォルトの名無しさん
2015/08/11(火) 14:57:28.66ID:3SX2sjwF用もないのに、なんでもかんでも継承するのは良くない
時々そういう人いるけど、コード読みにくくてしょうがない
0416デフォルトの名無しさん
2015/08/11(火) 15:12:00.25ID:AH2YHVn80417デフォルトの名無しさん
2015/08/11(火) 16:13:22.92ID:g1gPnYXA兄弟同士はキャストなんかできない。
何を言ってるんだ。
こんな馬鹿に限って勉強しろとかほざくんだから笑える。
そもそも論を言えば、明らかに互換性があるのにあえてキャストできないようにする意味がそもそも分からない。
0418デフォルトの名無しさん
2015/08/11(火) 16:22:07.65ID:3SX2sjwF0419デフォルトの名無しさん
2015/08/11(火) 16:24:59.39ID:2YkwfTs10420デフォルトの名無しさん
2015/08/11(火) 16:52:11.16ID:t7UpLVsuエンジンとコンポーネントで考えましょう。
基本的なことですよ。
0421デフォルトの名無しさん
2015/08/11(火) 17:31:46.86ID:C3iuhTEx馬鹿って言われたからっいって、すぐ無能とか煽ったらあかんよ。
0422デフォルトの名無しさん
2015/08/11(火) 18:29:29.41ID:AWvgSxoBそもそも
>継承関係がない扱いをしたい
のだから、互換性が無いのかもしれんぞ
継承関係がないのに、継承してクラス定義する意味がわからんが
0423デフォルトの名無しさん
2015/08/11(火) 19:06:04.27ID:3SX2sjwF本人見ての通り用は無いとしているみたいだし、それでいいと言われているのに食いつくのを見ていると
ふらっとスレのアレだな
>俺の考えをきけぇ、おまえらの事情なんかどうでもいいし、そんな事聞かれてもいないが俺の考えをきけぇ
て感じだね、例のアイツなんだろうが頭おかしい
0424デフォルトの名無しさん
2015/08/11(火) 19:36:37.74ID:DdSX6XRN言っちゃ悪いけどあんたが一番頭おかしいように見えるよ。
例のアイツってもう典型的な2ch脳患者の症状じゃん。
って2ch脳の人に言っても無駄っていうか手遅れだろうけどさ。
0425デフォルトの名無しさん
2015/08/11(火) 20:44:37.23ID:BYbKL/Wtお前くらいのエリートなら8/7~8/18くらいは夏休みのはずだろ
0426デフォルトの名無しさん
2015/08/11(火) 20:47:38.90ID:RhCa6Veg0427デフォルトの名無しさん
2015/08/11(火) 20:51:01.02ID:flESq3IS何もすることないんでしょ
生きてて楽しいのかな?
あ、だからここで一日中他人を罵倒してるのか
0428デフォルトの名無しさん
2015/08/11(火) 21:55:13.91ID:pRf5qE0j0429デフォルトの名無しさん
2015/08/11(火) 23:34:01.58ID:HeaM7jtrあんまり美しくないよなああいうの。
0430デフォルトの名無しさん
2015/08/12(水) 02:18:44.84ID:6ZXtaURLここの人たちの話は良くわからないぞ…
前者は非現実的すぎるし、後者は公開用と実装で分けるとか結構ある話かと
面倒ってのがEclipse的な委譲の生成がないかって意味なら
Reshaper(有料)使うか、諦めて無心に手書きするといいよ
0431デフォルトの名無しさん
2015/08/12(水) 02:33:12.62ID:6ZXtaURL制限インターフェース作って、欲しいクラスを継承+制限IFを実装、
そして制限IFにキャストして返すって手順でいいんでは?
0432デフォルトの名無しさん
2015/08/12(水) 02:40:22.65ID:XD0FvRJl0433デフォルトの名無しさん
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後者は公開用と実装で分ける
internalで十分じゃね?
0436デフォルトの名無しさん
2015/08/12(水) 08:09:14.50ID:6ZXtaURL十分じゃないですよ
2者を分離できませんし、継承関係が欲しい訳じゃないですから
0437デフォルトの名無しさん
2015/08/13(木) 10:26:42.13ID:yl8Mdqy/VMにMessageBox.Showとか書きたくないよな
0438デフォルトの名無しさん
2015/08/13(木) 10:36:01.01ID:JHO9AiGv画面遷移サービスみたいなのを用意してインスタンスをアプリケーション全体で共有
ただしシングルトンはやめろ
そういうサービスはVMからはインターフェースを通して扱うようにして、
VMには参照をプロパティやコンストラクタなどで渡す。DIを使ってもいい。
メッセージを使ってビュー経由でやる方法もあるがどこで何やってんのかわけわからなくなりやすいのでお勧めしない。
0439デフォルトの名無しさん
2015/08/13(木) 14:53:07.65ID:ZQmwk96yprismにTriggerActionって仕組みがあって、ビヘイビアのようなクラスを定義すればメッセージボックスをVMから操作できます
メッセージボックスを開く程度をやるには可也面倒なんだけどね
0440デフォルトの名無しさん
2015/08/13(木) 20:47:02.81ID:uEvY/8an安定なの作っといてくれりゃいいのに
0441デフォルトの名無しさん
2015/08/13(木) 20:52:06.72ID:r6k8TIQqLINQのOrderByは安定ソートだよ
0442デフォルトの名無しさん
2015/08/13(木) 21:42:16.81ID:uEvY/8anなるほど……こんなん書いてみたけど、これってありですか?
それとも自前の安定なソートメソッドを書きますか?
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:u9bN4Lw8ToListせずにforeachしたほうがいい
0444デフォルトの名無しさん
2015/08/14(金) 15:19:13.92ID:Iycxx57M馬鹿な俺には何がしたいんかわからん
list.OrderBy( t => t ).ToList();
だけでええやん
0445デフォルトの名無しさん
2015/08/14(金) 15:21:03.68ID:PBffULch0446デフォルトの名無しさん
2015/08/14(金) 22:12:21.62ID:2p3m0KlYソートされた新しいインスタンスがほしい場合もあれば
元のインスタンスをソートしてほしいときもあるやん?
0447デフォルトの名無しさん
2015/08/15(土) 01:24:13.06ID:xV4UISpzこれってプリミティブ以外の型でちゃんとソートされるの?
0448デフォルトの名無しさん
2015/08/15(土) 02:26:49.44ID:j4iBQT2t>元のインスタンスをソートしてほしいときもあるやん?
list = temp;
0449デフォルトの名無しさん
2015/08/15(土) 03:53:43.45ID:QiO6I5gavar 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/TがIComparableを実装してないとソートできないけど、それは普通のSort()メソッドも同じじゃね?
>>448
インスタンスを置き換えて返すつもり?
元のリストの参照もってたらソートされないままだろが……
0451デフォルトの名無しさん
2015/08/15(土) 13:11:59.71ID:z64TKpL60452デフォルトの名無しさん
2015/08/15(土) 13:19:08.64ID:dPBreRmqを読んで、骨格実装について学んでください
この項目は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どこにありますか?
0457デフォルトの名無しさん
2015/08/15(土) 15:47:22.93ID:HxCw3c0Cインターフェースに雛形となる実装がついてるだけだよ。
インターフェースにテンプレートの実装持たせておければいいのに。
0458デフォルトの名無しさん
2015/08/15(土) 15:50:11.19ID:2z51GaS1よく分からないのですが、そもそも仕様と実装を分離して疎結合するためのもの
だという認識なんですが、それに実装を持たせると分離の意味がなくなるんじゃないのかな
と不思議に思ってます
0459デフォルトの名無しさん
2015/08/15(土) 15:58:03.56ID:XFeAKEd8仕様の中で規定の実装が部分的に定まっているもの=抽象
0460デフォルトの名無しさん
2015/08/15(土) 15:59:17.62ID:HxCw3c0Cその通りです。
なので必要があれば抽象クラスとインターフェースをそれぞれ定義します。
抽象クラスはあくまで実装ですからね。
個人的には抽象クラスはいらないと思うが、実装を持たせられるのは挙動を保証できるし、やはり便利ということで使ってしまう。
拡張メソッドとかもあるけど、いちいちクラスとインターフェース作りたくねーし、インターフェースの定義の中でなんとかさせてくれという気持ち。
0461デフォルトの名無しさん
2015/08/15(土) 16:04:26.73ID:HxCw3c0C0462456
2015/08/15(土) 16:11:48.76ID:3TmrRaVz0463デフォルトの名無しさん
2015/08/15(土) 16:50:16.42ID:hcwFHcJBインターフェースに基底の実装を用意してもインターフェースを2つ実装しようとしただけでダメになる
0464デフォルトの名無しさん
2015/08/15(土) 17:19:23.51ID:2z51GaS1あーなるほど、なんとなく分かりました
共通した仕様だけでなく実装の一部までもが共通して決まっているなら
そこまで定義しても問題ないし保証できるというわけですね
ありがとうございました
0465451
2015/08/15(土) 17:57:59.98ID:9FDdWcawありがとうございます。読んでみます。
個人的には、少し冗長で読みにくい印象があったのでした。勉強してみます。
0466デフォルトの名無しさん
2015/08/15(土) 17:58:54.53ID:/RqnGk0/ふらっと行ったら?
0467デフォルトの名無しさん
2015/08/15(土) 20:49:36.11ID:7Ge9P+Ci抽象クラスならば全て実装しなくて良くて、実際に使う派生クラスまでの何処かで実装すればいい
抽象クラスなのは派生クラスでインターフェースの一部機能を実装するからかもしれん
0468デフォルトの名無しさん
2015/08/15(土) 21:07:44.19ID:3TmrRaVz分かりました
0469デフォルトの名無しさん
2015/08/16(日) 22:37:33.66ID:nZvb2qTm0470デフォルトの名無しさん
2015/08/17(月) 07:33:43.50ID:KTnE4+Ew高さ%行数==行数-1 のとき最後の行が最大になる模様w
0471デフォルトの名無しさん
2015/08/17(月) 10:57:45.12ID:RAwbDv5UWinForms使うなら古臭いWinFormsの流儀から外れてはいけない
0472デフォルトの名無しさん
2015/08/17(月) 11:34:00.62ID:/53UNtSq0473デフォルトの名無しさん
2015/08/17(月) 11:38:02.93ID:/53UNtSq0474デフォルトの名無しさん
2015/08/17(月) 14:13:40.06ID:D7LX3aiM0475デフォルトの名無しさん
2015/08/17(月) 15:51:23.84ID:eAn+98gr未来があるのはASP.NET MVCだけだよ
デスクトップアプリがいいならMSもVS Code作るのに使ってるelectronがいいんじゃないかな
0476デフォルトの名無しさん
2015/08/17(月) 15:57:53.02ID:Fj/4E2oI0477デフォルトの名無しさん
2015/08/17(月) 15:58:11.51ID:/53UNtSq0478デフォルトの名無しさん
2015/08/17(月) 16:16:36.52ID:eXSE2CJH使い捨てして乗り継いで行くイメージで作るべきもの
この前提があるからみんな口を揃えてレイヤーを分けろって言うんだね
0479デフォルトの名無しさん
2015/08/17(月) 16:19:11.16ID:eAn+98grWeb面白いよ?
俺もそうだったが、食わず嫌いしてたら後悔する
0480デフォルトの名無しさん
2015/08/17(月) 16:27:51.07ID:w34N0MAp各ブラウザの違いやバグ対策みたいなGUIの本質とかけ離れたところにばかり
時間を取られる非生産的な仕事ってイメージしかないね。
仕事でやりたいとは思わないなあ。ストレス大盛りって感じ。
0481デフォルトの名無しさん
2015/08/17(月) 19:35:09.97ID:w9n3OemN抽象クラスを推奨してるってなんかの本で
読んだんだけど・・・
0482デフォルトの名無しさん
2015/08/17(月) 19:45:34.88ID:RAwbDv5Uインターフェース大好きMSが書くソースコードは今も昔もどの言語でもインターフェースまみれ
インターフェースが問題になるのはインターフェースを定義する側と実装する側の距離が離れているとき
MSは内部では本当にインターフェース使いまくってる
MSが一番最近作った新言語のTypeScriptだってインターフェースが基本
0483デフォルトの名無しさん
2015/08/17(月) 22:37:51.82ID:FJuxg1JS0484デフォルトの名無しさん
2015/08/17(月) 22:43:25.40ID:Wyfczv4M通常のクラスでコンストラクタでstaticな変数に自分をnewするのでは何か違いますか?
0485デフォルトの名無しさん
2015/08/17(月) 22:59:02.86ID:+cUtloob0486デフォルトの名無しさん
2015/08/17(月) 23:00:29.54ID:VtDZ2XCvはい。
概念的に、そのシングルトンを持つ存在がシングルトンの実体と別なのか同一なのかという決定的な違いがあります。
形しか見ない低能には区別がつきませんが
0487デフォルトの名無しさん
2015/08/17(月) 23:12:20.05ID:q/emGwsqhttp://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シングルトンはこうやって使うんだよ
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/デュエル・マスターズ的な非電源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全体像が見えないのでなんともですが
とりあえずForm2に配置されているtextboxのプロパティーを開いて
Modifiersを private → public へ変更して、Form2クラス外からも見えるようにしてみる?とか
0491デフォルトの名無しさん
2015/08/18(火) 04:38:39.80ID:pRZZzM/PWEBは面白いけど、eコマース、SNS、ゲームといった仕事をしない人にとっては用のない世界でもあったりする
公開されない用途では、多様な環境への対応は意味のない単なる負担でしかないからね
面白いという理由だけで意味のないコスト発生させても仕方がないのだ
自分がそうだけど
0492デフォルトの名無しさん
2015/08/18(火) 05:50:02.90ID:EGG1pcbp(Form2Obj.textBox1 as TextBox).Text = "こんにちは";
0493デフォルトの名無しさん
2015/08/18(火) 06:40:39.06ID:ffkOBUQnエラーが分かりにくくなるだけだからnullチェックしないならasは使うな
0494デフォルトの名無しさん
2015/08/18(火) 07:44:01.93ID:EGG1pcbpんな事知るかボケ
0495デフォルトの名無しさん
2015/08/18(火) 08:09:33.82ID:JFS1mc9tこんなしょーもないことにあれだけ付き合うって素晴らしい人、もしくはひどい暇人
だけどForm2Obj というフィールド変数の名前はどうよ
0496デフォルトの名無しさん
2015/08/18(火) 08:10:48.65ID:JFS1mc9t型の問題じゃなくてスコープの問題だからその回答はマヌケ
0497デフォルトの名無しさん
2015/08/18(火) 08:21:27.56ID:sLRvpB24明日からこの糞くだらない無駄話に参加できなくなって悲しいですわ
0498デフォルトの名無しさん
2015/08/18(火) 08:30:04.89ID:O5wCO4NLスコープ?まじで?長すぎて全然読んでなかったよ
0499デフォルトの名無しさん
2015/08/18(火) 08:38:29.36ID:GgDcmGMQ最終的にそれだろうけど
エラーメッセージが違うんだよなー
0500デフォルトの名無しさん
2015/08/18(火) 09:05:35.08ID:JFS1mc9tあ、ごめん型の問題でもあったねw
おれは知恵袋の方しか見てなくて>>487のレス読んでなかったw
>>487
Textbox1の型はどうなってんのよ
うだうだ言っても始まらないからコード晒したら?
■コードを貼る場合はこちら
http://ideone.com/
0501デフォルトの名無しさん
2015/08/18(火) 09:29:08.18ID:O5wCO4NLコード晒さないにしても一字一句正確に書いてよ
>Form1でForm2のTextbox1.text
>(Form2Obj.textBox1.Text = "こんにちは";のように)
TextBox1が先頭小文字になってるから、
Form2.cs
public object textBox1 { get; }
を想像したんだけど
0502デフォルトの名無しさん
2015/08/18(火) 09:31:26.11ID:C75F2sdQ0503デフォルトの名無しさん
2015/08/18(火) 09:35:25.75ID:O5wCO4NL0504デフォルトの名無しさん
2015/08/18(火) 09:37:41.70ID:JFS1mc9t必要なことならなんでもやっていいのよ
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:sLRvpB240509デフォルトの名無しさん
2015/08/18(火) 15:27:08.93ID:5lg1jc8O> そもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計
こんなク○スレにもまともなやつはいたんだな
ちなみに俺もそれが理由でプロパティみたいなもんは存在からして不要だと思ってる
ゲッターセッターがむしろ書きにくく手間がかかる言語こそが本当に気の利いたOOPL
0510デフォルトの名無しさん
2015/08/18(火) 15:43:01.49ID:+rFwHajx0511デフォルトの名無しさん
2015/08/18(火) 16:11:49.85ID:IEGJFkcT0512デフォルトの名無しさん
2015/08/18(火) 16:19:58.26ID:+rFwHajxという感じ、クラスやオブジェクトは元々どぎたないものを「隠す」というだけであって、
別に「美しくする」訳ではない(キリッ
0513デフォルトの名無しさん
2015/08/18(火) 16:55:22.43ID:vgvX2pjSっていうかオブジェクトって何だよw
OOの本質はクラスやインスタンスという一種の状態機械を
データや機能の収納箱として利用する、分類や整理の手法だと思う。
0514デフォルトの名無しさん
2015/08/18(火) 17:26:54.71ID:IEGJFkcTモナド則のような厳しいしきたりもありません
本質的に守らなければならないルールは、
リソースリークに気をつけるぐらいでしょうか
みなさん自由にしましょう
0515デフォルトの名無しさん
2015/08/18(火) 18:17:06.72ID:C+CrAcbu「美しさ=汚さの逆」であり
美しくする=汚くしない(ドヤッ
0516デフォルトの名無しさん
2015/08/18(火) 18:25:58.85ID:JFS1mc9t0517デフォルトの名無しさん
2015/08/18(火) 18:31:45.16ID:GgDcmGMQ0518デフォルトの名無しさん
2015/08/18(火) 19:08:36.73ID:MvA+WoyGそれはOOPを使えば簡単にそれが出来るというだけの話で、
オブジェクト指向の本質ではないと思う。
0519デフォルトの名無しさん
2015/08/18(火) 19:22:37.20ID:TP6OV89sOOP以前にあったものの小さい版
プロセスとスレッドの関係に似てる
0520デフォルトの名無しさん
2015/08/18(火) 19:42:27.95ID:IEGJFkcT0521デフォルトの名無しさん
2015/08/18(火) 19:52:27.38ID:JFS1mc9tまじどうでもいい
0522デフォルトの名無しさん
2015/08/19(水) 02:06:12.07ID:0nl1pVRH色々試行錯誤したんですがあと一歩のところでうまくいきません。
派生クラス作ってWM_MOUSEHWHEELを拾って
HorizontalScrollBar.Value += 10;
と書いたんですが、バーは動くけど中身のデータ表示部が微動だにしないんです。
ここからさらにバーの動きに連動して中身のグリッドも左右に動かすには
どうしたらいいんでしょうか。
0523デフォルトの名無しさん
2015/08/19(水) 08:47:52.85ID:/Qsn/PCA設定後に更新とか再描画させてみた?
Javaだとそういう場合だいたい
コンポーネントに対してrepaint()を手動で呼ぶ
0524デフォルトの名無しさん
2015/08/19(水) 09:27:13.54ID:9fa2/Guo0525522
2015/08/20(木) 05:08:37.71ID:IiHrtFdq>>524
ありがとうございます
HorizontalScrollingOffset += 10;
これで思い通りの動きになりました。
再描画系は
Refresh()
Update()
Invalidate()
を試してみましたがどれもダメでした。
HorizontalScrollBar.Valueはあくまでバーの位置を指定するだけで
グリッド部分には影響しないのかもしれません。
0526デフォルトの名無しさん
2015/08/21(金) 18:42:46.11ID:YBnVLwK5スレッド内で SevenZip.SevenZipExtractor を作成し、展開はできるのですが、
スレッド外で SevenZip.SevenZipExtractor を作成し、スレッド内で展開しようとすると
System.InvalidCastException の例外が出てしまいます。
ファイルのキャッシュ等をしたいのでスレッド外で SevenZip.SevenZipExtractor を
作成したいのですが、エラーにならずに展開できないでしょうか。
もしくは、それができる zip/rar 展開用(MemoryStreamに解凍できるもの)ライブラリ
があれば教えてください。
0527デフォルトの名無しさん
2015/08/21(金) 18:48:48.63ID:NPCxxztIUIスレッドの話なら非同期メソッドつかえ
Begin〜の奴
0528526
2015/08/21(金) 20:14:20.47ID:YBnVLwK5private 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:n472Qw2UCならそういうのはよくあること
SevenZipExtractorのコンストラクタはStreamを引数に取るオーバーロードもあるんだから、
Streamだけスレッド外で作っとくとかでファイルのキャッシュくらいどうとでもなるだろ
0530デフォルトの名無しさん
2015/08/21(金) 21:53:16.84ID:+BYzVuolFileExtractionFinishedで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とれない
}
0531526
2015/08/21(金) 22:36:17.52ID:YBnVLwK5FileStreamで組んでみましたが、SevenZipExtractorを閉じる時にストリームも一緒に閉じられてしまうようで、
毎回MemoryStreamにコピーしなければなりません。
そうすると遅延軽減のための処理が余計な時間をくってしまいそうです。
アドバイスありがとうございました。
>>530
ストリームがとれないと厳しいですね・・・
0532デフォルトの名無しさん
2015/08/21(金) 23:13:26.69ID:+BYzVuolFileExtractionFinishedのe.FileInfoでMemoryStreamを取り出すとかじゃだめなんかね
いや、まぁてきとーに思いついただけだから・・・
0533デフォルトの名無しさん
2015/08/21(金) 23:31:20.10ID:YNgc8We+こちらのサイトで"MeteringStream というクラスは NAudioDemo のものを流用している。"と書いてあったのですがNAudioDemoをダウンロードしたのですがどのファイルを参照についかすればいいか分かりません。
どれを追加すればいいのでしょうか?
0534デフォルトの名無しさん
2015/08/21(金) 23:36:45.66ID:Je5mj4J0ふらっとで叱られた子じゃん
351 名前:デフォルトの名無しさん[sage] 投稿日:2015/08/18(火) 19:50:36.75 ID:JFS1mc9t
NAudioでぐぐって懇切丁寧に説明してくれてるサイトが見つかるのにそれ見ないでグダグダ言ってたりしないよな?
0535デフォルトの名無しさん
2015/08/21(金) 23:39:42.47ID:n472Qw2Uそのレベルでの試行錯誤は時間の無駄だからちゃんと本読んで出直してきなさい
0536デフォルトの名無しさん
2015/08/22(土) 00:12:23.71ID:/ddVcb/Zサンプルソースばかりでクラスの継承関係やメソッド、引数、戻り値などが分からないので。
できれば日本語でお願いします。
0537デフォルトの名無しさん
2015/08/22(土) 00:15:34.86ID:5hyMMp2f0538デフォルトの名無しさん
2015/08/22(土) 00:16:33.52ID:u4KBIQ2TMSDN見てる?
0539デフォルトの名無しさん
2015/08/22(土) 00:22:31.03ID:6V9DEjWD0540デフォルトの名無しさん
2015/08/22(土) 00:41:51.73ID:/ddVcb/Zhttp://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:oxql1dUVID変わったら分かるわけねえだろ
で、リファレンスは無いらしいよ
ましてやこんなマイナーライブラリで日本語でなんて夢のまた夢だね
諦めて畑でも耕してろよ田子作君
0542デフォルトの名無しさん
2015/08/22(土) 01:01:47.13ID:KIpdc5GTこれNAudio 本体のソースあるだろ・・・何が解らないのかマジで意味が判らない
0543デフォルトの名無しさん
2015/08/22(土) 15:19:12.99ID:/ddVcb/Z0544デフォルトの名無しさん
2015/08/22(土) 15:22:26.90ID:ixHtKeVzドボンわかりやすくて好きなんだけど評判悪いの?
0545デフォルトの名無しさん
2015/08/22(土) 15:46:33.05ID:FsGTTI8e0546デフォルトの名無しさん
2015/08/22(土) 15:55:11.13ID:3HC4qH6usandcastle とかの話?
0547デフォルトの名無しさん
2015/08/22(土) 15:58:13.44ID:sBJvd1d/XML無いんだろ?じゃあ見れないよ
0548デフォルトの名無しさん
2015/08/22(土) 16:07:06.30ID:oDfmtetuどこの世界にも、自分は何もしないで他人の貢献にケチをつけるだけの卑しい馬鹿はいる。
0549デフォルトの名無しさん
2015/08/22(土) 16:49:23.39ID:gTtGqll8わりと古い情報が残ってる
0550デフォルトの名無しさん
2015/08/22(土) 16:56:24.11ID:/dRiP8l8多少問題があっても有効な情報も多数あるサイトならあった方が便利だと思うんだけど。
0551デフォルトの名無しさん
2015/08/22(土) 17:07:23.50ID:/ddVcb/ZNAudio.XMLがついていましたがどのような形式で書いてあるのかが分かりません
0552デフォルトの名無しさん
2015/08/22(土) 17:15:56.97ID:+n0G/6wG0553デフォルトの名無しさん
2015/08/22(土) 17:37:51.84ID:KIpdc5GT1.1〜2.0の頃のネタばかりだから昔はお世話になったけど、今は検索でヒットしてもスルーしちゃうわ
0554デフォルトの名無しさん
2015/08/22(土) 17:51:26.44ID:JpeLxAWc0555デフォルトの名無しさん
2015/08/22(土) 18:00:11.86ID:sBJvd1d/そりゃそのまま使っちゃだめだよ
0556デフォルトの名無しさん
2015/08/22(土) 18:09:11.16ID:TF79Y1M/前も書いたけどあそこはそこまで酷いコードはない。
0557デフォルトの名無しさん
2015/08/22(土) 18:18:17.85ID:TF79Y1M/分かると思うんだけど。
2chって何かを貶めることで自分が一人前だと錯覚したがってるとしか思えない馬鹿多いけど痛々しいよ。
0558デフォルトの名無しさん
2015/08/22(土) 18:25:43.07ID:zOssAmca>>536 に対して >>538 で、そういったリファレンスならMSDNだろ的な指摘して
>>539 はサンプル的なサイト見てんじゃないかと言っただけだろうと思う。
ドボンが悪いとかは書いてない。
0559デフォルトの名無しさん
2015/08/22(土) 18:27:46.34ID:yRr1oZWkすべてやりくりしてきた俺、ドボンを知らず低見の見物
0560デフォルトの名無しさん
2015/08/22(土) 18:34:01.47ID:/al9OGnB後半
あるあるある
0561デフォルトの名無しさん
2015/08/22(土) 20:23:16.96ID:JpeLxAWcいや、当人がどんな人物であったかとは関係なく、
あのコードを垂れ流しているというのは犯罪に近いよ。
分かってる人にはいいけど、初心者にはあまりいい影響を与えない。
何かを公開して流布している責任というものがある
0562デフォルトの名無しさん
2015/08/22(土) 20:41:11.99ID:9JN1kuOn0563デフォルトの名無しさん
2015/08/22(土) 21:22:44.29ID:/dRiP8l80564デフォルトの名無しさん
2015/08/22(土) 21:28:50.69ID:Z73ESiAyわかる
でもそれは仕方ない
「にわかな奴ほど語りたがる」の法則は今だ根強い
糞かどうかの判断がつかないから顔面に糞つけて糞頬張りながら糞うpするんだよ
0565デフォルトの名無しさん
2015/08/22(土) 21:35:41.70ID:3HC4qH6u具体的にどれよ
url 教えてくれ
0566デフォルトの名無しさん
2015/08/22(土) 22:46:49.90ID:FpzfkEmP.NETのソースならよく読むけど、逆コンパイルするほど気になるソフトってなんかある?
0567デフォルトの名無しさん
2015/08/23(日) 01:33:58.42ID:kX8AQ+CF犯罪的なコードって何でしょう?
0568デフォルトの名無しさん
2015/08/23(日) 03:28:16.91ID:AQ6+ZwTXあそこはVB.NETがメインで、Usingが使えるようになる前からのコードがあるからだよ
Disposeしろって注意書きは時々みかけるし、そもそもあそこ初心者のためのサイトじゃないと思うが
0569デフォルトの名無しさん
2015/08/23(日) 10:55:36.67ID:BEYfXVp0何でもかんでも明示的に破棄するのはアホのやる事だぞ
マネージドって言葉の意味少しは考えろよ
0570デフォルトの名無しさん
2015/08/23(日) 11:11:07.80ID:U8H/JFYcMSDNも読まずにマネージドリソースの解放にDisposeを使っちゃう
アホなクラス設計者のことですよね?
0571デフォルトの名無しさん
2015/08/23(日) 11:15:15.60ID:QlQ/u5s/0572デフォルトの名無しさん
2015/08/23(日) 11:15:48.70ID:CLEYS0FFどゆこと?
>>570
>マネージドリソースの解放に
それはGCがやるもんだが
0573デフォルトの名無しさん
2015/08/23(日) 11:49:28.77ID:BEYfXVp0パフォーマンス問題になるならusingを使っても良い
しかしそれ以外ではusingを使うな
CLRに全てを委ねてプログラマをリソース管理の責務から解き放つのだ
0574デフォルトの名無しさん
2015/08/23(日) 12:05:44.69ID:9aqT3FI60575デフォルトの名無しさん
2015/08/23(日) 12:17:42.22ID:CLEYS0FF全く分からん
0576デフォルトの名無しさん
2015/08/23(日) 13:15:02.38ID:JQjk+2hPそれは(ライブラリの中のコード含めて)ネイティブを使わずに記述できるもの
ファイルやTCPソケットはこれに該当しない
クリティカルとか言ってる馬鹿は放置
0577デフォルトの名無しさん
2015/08/23(日) 13:20:50.40ID:9aqT3FI60578デフォルトの名無しさん
2015/08/23(日) 13:22:15.46ID:prCrabVFIDisposableをやたら使うなならともかく、usingを使うなってのは意味がわからんな
0579デフォルトの名無しさん
2015/08/23(日) 13:33:23.13ID:/F5UpcuB0580デフォルトの名無しさん
2015/08/23(日) 13:36:39.19ID:bbkyb+Wiここまで無脳と馬鹿のコラボばっか
0581デフォルトの名無しさん
2015/08/23(日) 13:43:35.74ID:zGFxmPuI確かにDisposeだのマネージドだのニワカくせー話題だわ。
0582デフォルトの名無しさん
2015/08/23(日) 15:33:29.02ID:JLY6V2Uz0583デフォルトの名無しさん
2015/08/23(日) 15:44:14.12ID:1KB/gLgO呼んで損はないから、明らか不要なとき以外は呼ぶが吉だけどね
WPF版のドボンみたいなサイトがほしい
0584デフォルトの名無しさん
2015/08/23(日) 15:54:39.63ID:Rmxdvxkyへー、どんな場合だよ
ただしawaitのTask以外で
0585デフォルトの名無しさん
2015/08/23(日) 15:58:35.35ID:cYtxjCYh存在そのものが意味不明なフレームワークは隔離スレで大人しくしてなよ
お呼びじゃないから
0586デフォルトの名無しさん
2015/08/23(日) 16:04:54.83ID:UzzkwRGDGDI+関係はかなりあるよ。
Win9x時代はOSの制約上確実に呼ぶ必要があったが今は必ずしも必要ないもの
0587デフォルトの名無しさん
2015/08/23(日) 16:19:52.74ID:bbkyb+Wi0588デフォルトの名無しさん
2015/08/23(日) 16:24:59.06ID:hc4Y2Ev5暴れすぎやで
> 573,579,581
0589デフォルトの名無しさん
2015/08/23(日) 17:28:44.31ID:MIhiF6BJ実際にDisposeする時期はCLRに任せて人間は管理しない
これ.NETの世界じゃ基本中の基本だよ
管理不要でパフォーマンスへの影響もないリソースを工数かけて人間の手で管理したがる
救いようのない馬鹿としか言いようがない
0590デフォルトの名無しさん
2015/08/23(日) 17:37:04.51ID:CLEYS0FF0591デフォルトの名無しさん
2015/08/23(日) 17:43:43.11ID:MIhiF6BJやれやれ
論理的な反論ならまだ救いようがあるが、
無学が原因で理解が及ばない、ってだけでケチを付けるなよ
それもう敗北宣言に等しいぞ
0592デフォルトの名無しさん
2015/08/23(日) 17:48:20.40ID:0gT6iToJkwsk
StringFormatとかIDisposableだから律儀にusingしてるけど
0593デフォルトの名無しさん
2015/08/23(日) 17:50:34.03ID:0gT6iToJ0594デフォルトの名無しさん
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:hrfhzpqC0597デフォルトの名無しさん
2015/08/23(日) 18:04:40.51ID:MIhiF6BJ当然
適切な終了処理が必要なものは、そう書く必要がある
しかし、そういった処理が不要で、CLRに任せておけば良いように作られたリソースクラスでは必要がない
むしろ不必要な記述でコードを汚染するだけなので、書いてはいけない
すでに自動化されているものは、機械に任せるのが正解なのである
0598デフォルトの名無しさん
2015/08/23(日) 18:04:49.28ID:hc4Y2Ev5煽りたいだけなら、今すぐネット切って死んでしまえば良い
0599デフォルトの名無しさん
2015/08/23(日) 18:09:32.22ID:hc4Y2Ev5Disposeを書くという事は、今後そのライブラリを作った人が
そのように使う必要があるよう変更するかもしれないという余地が残っているのです
みんなで作業するときトラブルなどが発生しないように取り決めた事ですから、可能な限り従う事がよろしいでしょう
0600デフォルトの名無しさん
2015/08/23(日) 18:13:39.60ID:bbkyb+Wiどっから湧いてるの?
0601デフォルトの名無しさん
2015/08/23(日) 18:17:14.27ID:idej2sB9お前も煽ってるだけで何も貢献してないけどな
0602デフォルトの名無しさん
2015/08/23(日) 18:17:59.99ID:GkEjDFKz聞きたくない奴は帰りな
0603デフォルトの名無しさん
2015/08/23(日) 18:21:04.69ID:GkEjDFKz耳タコだと思うが勘弁な
俺は喋りたいんだ
昨日今日知ったばかりなんでな
だから聞いてくれ
0604デフォルトの名無しさん
2015/08/23(日) 18:23:20.43ID:MIhiF6BJそんな糞みたいな仕様変更をする破壊工作員は処刑が必要
ぶっちゃけコード直してる場合じゃない
最初のバージョンから、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:UiYX5d8M0608デフォルトの名無しさん
2015/08/23(日) 18:36:31.29ID:nxY8tWuM0609デフォルトの名無しさん
2015/08/23(日) 18:41:24.76ID:bbkyb+Wi0610デフォルトの名無しさん
2015/08/23(日) 18:41:34.58ID:UiYX5d8M長々と書いているが結局呼ばなくていい場合があると言いたいだけか?
0611デフォルトの名無しさん
2015/08/23(日) 18:44:40.15ID:JbH8lT1Q> 基本クラスが 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:53h6zSH30613デフォルトの名無しさん
2015/08/23(日) 18:50:45.39ID:hc4Y2Ev5それでは共同作業になりませんね、そこまで自我を通したいなら自分一人で作業するしかないでしょう
取り決めは大事
0614デフォルトの名無しさん
2015/08/23(日) 18:53:42.93ID:MIhiF6BJ共同作業を円滑にするために、常にDispose必須、とかいうオレオレルールを排除しなければならない
理由はもう説明したな
0615デフォルトの名無しさん
2015/08/23(日) 18:59:05.24ID:53h6zSH3君らはまず場を弁えることを学ぶのが先決では…
0616デフォルトの名無しさん
2015/08/23(日) 19:02:58.05ID:8rh7GHk2Font, Brush, Penなんかは自分で作った物(システムリソースじゃない)であっても
今のWindowsではいちいちDisposeしなくてもまず何の問題もない。
そうは言っても習慣で書いちゃうけどね。
0617デフォルトの名無しさん
2015/08/23(日) 19:09:30.05ID:2AMvri3nそうなんだ
でも呼ばないと高コストなファイナライザでの解放になっちゃうしね
0618デフォルトの名無しさん
2015/08/23(日) 19:24:52.17ID:qzhEyH2V今まで対象のオブジェクトが何回タップされたか記録したいです。
playerprefsを使えばできますか?
0619デフォルトの名無しさん
2015/08/23(日) 19:25:54.56ID:idej2sB90620デフォルトの名無しさん
2015/08/23(日) 19:36:46.47ID:hc4Y2Ev5そういうルールで作ろうという事になっているんだから
それで問題なければそれで上手くいく、そうでないものは決められた極力ルールに従う事
そうしてファイナライザのみにすると具合が悪い話が必ず出てくると気付くはず
例えば、ファイルオブジェクトのように、ロック握っている奴とか
例えば、アンマネージ側の参照カウンタがカウントダウンされなくて予想外のメモリーリークしたとか
例えば、C++のつもりでデストラクトの順序を考えていたら予定外の順序でファイナライザが起動してクラッシュしたとか
0621デフォルトの名無しさん
2015/08/23(日) 19:44:15.23ID:0gT6iToJシステムリソースじゃないってほんとかい? GDIオブジェクトとしてタスクマネージャに表示されるんじゃないの?
でも大概描画=なんども呼ばれるシナリオだから
そのたびに破棄しておいたほうがメモリ的にも安心じゃね?
0622デフォルトの名無しさん
2015/08/23(日) 19:45:43.68ID:MIhiF6BJ何回言えばいいのかな
呼び出しが必要な必要と使用に明記する
明記されない以上は明記しなくても問題ないように実装する
それが社会のルールだ
呼ばないとダメになる場合があるのにそれを仕様に明記しないでDisposeが呼ばれるオレオレルール(出典不明)を前提に作るな
クズが死ね
0623デフォルトの名無しさん
2015/08/23(日) 19:53:17.04ID:JbH8lT1Q今更ながら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:nxY8tWuM0625デフォルトの名無しさん
2015/08/23(日) 20:01:04.88ID:MIhiF6BJdeleteしなくても良いであってるよ
自動化したのに手作業が必要なんて馬鹿みたいだろ
0626デフォルトの名無しさん
2015/08/23(日) 20:08:50.19ID:9aqT3FI6メモリとシステムリソースは別物だから、
開放のトリガーを論理アドレスの枯渇に頼るのは良くない作法なのでは
0627デフォルトの名無しさん
2015/08/23(日) 20:09:16.04ID:hc4Y2Ev5ファイルオブシェクトをこっそり握っていて、ファイルがロックされたままだったのを
色々システムを結合した後に気づいて、泣きそうになった
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:hc4Y2Ev5Disposeがリソースと関係なく必要になるケースはC++と違いデストラクタがまともに使えないという事情から来ることも多々あります
0629デフォルトの名無しさん
2015/08/23(日) 20:20:23.58ID:ZkLCFLWu死ねよマジで
それともあれか、手伝って欲しいのか?
殺してやるから住所教えろや
0630デフォルトの名無しさん
2015/08/23(日) 20:26:42.76ID:0gT6iToJおまえの住所先に書けやバカヤロウ
0631デフォルトの名無しさん
2015/08/23(日) 20:27:29.87ID:bbkyb+Wi0632デフォルトの名無しさん
2015/08/23(日) 20:31:02.28ID:MIhiF6BJ0633デフォルトの名無しさん
2015/08/23(日) 20:50:07.75ID:JbH8lT1Qコンセプトとしてはその通りだけど、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特定の方法でインスタンス作った時にだけ意味があるというのは割りとある
例えば、FormをShowした時とかは自動でDisposeされるから不要
0635デフォルトの名無しさん
2015/08/23(日) 21:31:38.21ID:hc4Y2Ev5ファイルオブジェクト的な物を使う側ではなく作る側で、実際にいろいろやってみて面倒な事になってるなと思ったのは
フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね
アンマネージの場合はこの辺は実にすっきり記述できるんですが、マネージでは厄介です
初心者の時
~Class() { Dispose(); }
なんて事をあまり深く考えずにやってました、そして謎の異常終了を発生させてましたね
Disposeが呼び出されずにデストラクタが呼び出されたら、できることはもはや安全停止だけです
まともな終了処理は最早できません
0636デフォルトの名無しさん
2015/08/23(日) 21:35:34.12ID:OpHxID+XGCの洗礼を受けたのはわかった
0637デフォルトの名無しさん
2015/08/23(日) 21:37:58.50ID:aJXfAZiVC#である必要もないし
0639デフォルトの名無しさん
2015/08/23(日) 21:40:51.66ID:hc4Y2Ev5ファイナライザは使えません、その処理はシステムに任せることはできないのです
それが分かっていないと安易にDispose不要という考えが出てしまいます
0640デフォルトの名無しさん
2015/08/23(日) 22:03:58.87ID:pgaNpm//死ね
0641デフォルトの名無しさん
2015/08/23(日) 22:09:13.04ID:oScCmTRiDispose不要派は
1.ファイナライザーでやればいいんだぜ
だけじゃなくて
2.解放など軟弱もののやること だってボクの環境で問題になったことないんだもん
の方が多数派だろ
0642デフォルトの名無しさん
2015/08/23(日) 22:11:48.27ID:rrCWAeC5うるせえ喋んなカス死ね
0643デフォルトの名無しさん
2015/08/23(日) 22:13:14.66ID:nxY8tWuM0644デフォルトの名無しさん
2015/08/23(日) 22:16:59.42ID:1KB/gLgOIDisposableを実装している場合は、明らかに不要な場合以外は使い終わった後にすぐDisposeすべき
PenもBrushも中にGDIのハンドルを抱えてるわけで、アンマネージドのシステムリソースやメモリを必要以上に使ってしまう
ファイナライザは残っていると仕様上開放が先延ばしになって長時間メモリを占拠するから、想定よりコストは高い
>てか、gcnew って delete しなくていいためのものじゃなかったんかー!
WindowsがすべてGCの管理上で動くようになればな。GC管理外のデータはプログラマが責任を持たざるをえない
0645デフォルトの名無しさん
2015/08/23(日) 22:21:09.75ID:hc4Y2Ev5ロジック的にDisposeが必要不可欠な物の方を意識したいところです
0646デフォルトの名無しさん
2015/08/23(日) 22:24:17.01ID:prCrabVFDisposeのひな形吐き出してくれるんだよな。便利になったものだわ
0647デフォルトの名無しさん
2015/08/23(日) 22:29:32.06ID:MIhiF6BJ1. Disposeしないと機能的にアウト→Disposeする
2. 機能的に問題ないがボトルネックになる→Disposeを許す
3. 機能的に問題ないうえに負荷も軽微→自動化しろ手で書くな
クライアントは殆どが3なんだわ
Disposeなんか要らないんだよ
これが今日のまとめね
0648デフォルトの名無しさん
2015/08/23(日) 22:33:20.72ID:hc4Y2Ev5これが正解です
0649デフォルトの名無しさん
2015/08/23(日) 22:37:13.05ID:YS/VElDC0650デフォルトの名無しさん
2015/08/23(日) 22:37:24.13ID:JbH8lT1Q仰るとおり、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どんな状況だよ
0653デフォルトの名無しさん
2015/08/23(日) 22:38:38.88ID:MIhiF6BJ行数にこだわるのは老害の証
現代のプログラマは中身を見ないと
0654デフォルトの名無しさん
2015/08/23(日) 22:39:55.83ID:+kgkAxfw「だから何」レベルのまとめはQiitaにでも書いといて
あと死ね
0655デフォルトの名無しさん
2015/08/23(日) 22:41:15.09ID:prCrabVF上でも下でもこうはならん
0656デフォルトの名無しさん
2015/08/23(日) 22:42:20.89ID:bbkyb+Wi0657デフォルトの名無しさん
2015/08/23(日) 22:45:56.71ID:hc4Y2Ev5マークスイープでは順序を決めることができないんですよ
循環した参照がある場合どこから削除すべきかという判断材料がなくなる、ならば最初から順番は無視という判断なのだと思います
実際ガベコレ毎に順序は出鱈目です、気を付けてください
C++の場合、例えば循環参照があったらメモリーリークですが、プログラマのレベル高いから平気だよねってコンセプトではない訳です
それにしてもC++の芋ずる式デストラクタは気持ちいいです・・・
0658デフォルトの名無しさん
2015/08/23(日) 22:53:59.24ID:MIhiF6BJマネージドだけでも普通に発生する
バッファが回収可能になるのと所有者インスタンスがFRQにぶち込まれるタイミングはほぼ同時
どっちが先に処理されるかは誰にもわからない
0659デフォルトの名無しさん
2015/08/23(日) 22:58:36.70ID:MIhiF6BJ0660デフォルトの名無しさん
2015/08/23(日) 22:59:24.15ID:rRq+bYgYそうかい
では死ね
0661デフォルトの名無しさん
2015/08/23(日) 23:01:02.88ID:MIhiF6BJしゃぶれよ
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:9aqT3FI60664デフォルトの名無しさん
2015/08/23(日) 23:06:20.29ID:JbH8lT1Q見た目はマークスイープだけど、中身は参照カウント方式だったはず。(だからそれなりに順を追って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悪くないサンプルだと思うのですが・・・
0666デフォルトの名無しさん
2015/08/23(日) 23:10:23.32ID:MIhiF6BJと思うじゃん?
0667デフォルトの名無しさん
2015/08/24(月) 00:08:47.57ID:genYk8wg「不必要にDisposeを量産するバカが多いため
usingを怠る悪習が蔓延した」
0668デフォルトの名無しさん
2015/08/24(月) 00:31:00.45ID:e5Jihg5N不用意でなくても普通に増えるしかないよ
IDisposeを持つ物は Stream や Task があるがどれも基本的なクラスばかりで避けては通れない
0669デフォルトの名無しさん
2015/08/24(月) 00:35:53.34ID:4CFfNfbxさすがにそのケースでのリークはないよね?
Array等の中身として参照を持っているだけなら、
そもそもデストラクタがどちらから呼ばれても問題ない。
継承関係なら自動でやってくれるはず。
自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、
デストラクタがいつ呼ばれるかは問題ではない。
(自作クラスの一つのデストラクタだけで済むように構成する。
ただしリソース解放が必要ならDisposeを実装しないとタイミングが読めない。)
菱形継承で先に基底クラスが解放されたりするのは問題になるけど、C#にこれはない。
だから問題になるのは、一度しか呼ばれないアンマネージド側で
マネージドのデストラクタが呼び出し済みなのを期待している時で、多分これだけだよね?
マネージド側は放置しててもなんだかんだでいつかはGCされるはず。
それが嫌ならDisposeしろって事で。
だから、アンマネージドを先に全部解放するようにすれば、問題は発生しないと見た。
0670デフォルトの名無しさん
2015/08/24(月) 00:36:24.75ID:4CFfNfbx> デストラクターがいつ呼び出されるかはガベージ コレクターによって決定されるため、プログラマは制御できません。
> 一般に C# では、ガベージ コレクションを使用しない言語で開発する場合ほど、メモリ管理を必要としません。
> .NET Framework のガベージ コレクターが、オブジェクトに対するメモリの割り当てと解放を暗黙的に管理します。
> ただし、ウィンドウ、ファイル、ネットワーク接続などのアンマネージ リソースをアプリケーションでカプセル化するときは、
> デストラクターを使ってこれらのリソースを解放する必要があります。
> アプリケーションで貴重な外部リソースを使用している場合は、
> ガベージ コレクターがオブジェクトを解放する前にリソースを明示的に解放する手段を用意することをお勧めします。
> この処理を行うには、オブジェクトに対して必要なクリーンアップを実行する Dispose メソッドを IDisposable インターフェイスから実装します。
> これによって、アプリケーションのパフォーマンスを大幅に向上させることができます。
> このようにリソースを明示的に制御する場合でも、
> デストラクターは、Dispose メソッドの呼び出しが失敗したときにリソースをクリーンアップするための安全装置になります。
> https://msdn.microsoft.com/ja-jp/library/66x5fx1b.aspx
0671デフォルトの名無しさん
2015/08/24(月) 00:42:37.88ID:e5Jihg5Nclass型フィールドの内容に触ることはできない、触ってよいのは int や enum といった値のフィールドだけ
それ以外の操作をしたければDisposeを使うしかない
順序良く呼び出されたとしてもこれでは何もできない
0672デフォルトの名無しさん
2015/08/24(月) 00:51:10.64ID:OjRQ25eSこの人は何言ってるかわからなくて、頭くらくらしますよね
そもそも話が通じてないし
0673デフォルトの名無しさん
2015/08/24(月) 01:04:15.56ID:e5Jihg5N笑っちゃいけないか、ご愁傷様かな(ナムナム
0674デフォルトの名無しさん
2015/08/24(月) 07:38:39.63ID:FEQDPFGC0675デフォルトの名無しさん
2015/08/24(月) 07:41:36.51ID:xNseMvgF0676デフォルトの名無しさん
2015/08/24(月) 09:19:55.49ID:h+mHYijt0677デフォルトの名無しさん
2015/08/24(月) 09:50:06.14ID:xNseMvgF0678デフォルトの名無しさん
2015/08/24(月) 10:58:39.56ID:/7MwCGkP0679デフォルトの名無しさん
2015/08/24(月) 11:48:38.94ID:Q0ZjIosNだからテメエは無脳なんだ
0680デフォルトの名無しさん
2015/08/24(月) 12:27:15.22ID:e5Jihg5N0681デフォルトの名無しさん
2015/08/24(月) 13:03:00.83ID:kR1o4QUh0682デフォルトの名無しさん
2015/08/24(月) 15:21:00.93ID:/7MwCGkP0683デフォルトの名無しさん
2015/08/24(月) 15:48:52.90ID:CmRZDEoS0684デフォルトの名無しさん
2015/08/24(月) 15:52:52.92ID:mvfSohk+IDがきちんと出るようにするだけの技術力がないから…
0685デフォルトの名無しさん
2015/08/24(月) 20:40:58.44ID:UIihvy++0686デフォルトの名無しさん
2015/08/24(月) 20:45:58.83ID:xp4qRvA30687デフォルトの名無しさん
2015/08/24(月) 21:02:14.07ID:aDhIIP+g0688デフォルトの名無しさん
2015/08/24(月) 21:25:54.27ID:vU2SL/AS0689デフォルトの名無しさん
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すまん、その通りだ。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:163KCsEMID: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リーク問題については、あまり期待しないほうが良い
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同じものがあれば追加しないと言う機能を作りたいのですが、foreachだと例外が出て、
for文だと無限ループになってしまいどうやっても上手く実装できませんでした。
一体どうすればListの中身を1つずつ比較して問題なく追加する事が出来るのか教えていただけないでしょうか
0700デフォルトの名無しさん
2015/08/25(火) 00:57:16.45ID:bwlYR2I50701デフォルトの名無しさん
2015/08/25(火) 01:11:01.00ID:wg5Da8meif (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:bwlYR2I5for( b: B )
{
0703デフォルトの名無しさん
2015/08/25(火) 02:07:01.06ID:bwlYR2I5for( 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それで調べたら配列の中を比較するIndexofという機能をついさっき知って実装したところ、上手く動きました。
0705デフォルトの名無しさん
2015/08/25(火) 04:17:23.94ID:ljTVrax00706デフォルトの名無しさん
2015/08/25(火) 07:28:11.84ID:uHUYRmLoshared_ptr weak_ptr の使い分けのように仕組みを意識して使わないと
システム任せだと無理があるんだよ、SafeHandleを使えば万事解決という訳にはいかない
そろそろ諦めなはれ、アンマネージと相互運用したければ覚悟決めるしかねーですw
0707デフォルトの名無しさん
2015/08/25(火) 10:56:12.32ID:y1FTBoUoC言語とかの領域ですよね?
本見てもどういう場面で使うのか乗ってないんですが
0708デフォルトの名無しさん
2015/08/25(火) 11:03:08.95ID:aUx99M6r0709デフォルトの名無しさん
2015/08/25(火) 11:33:21.01ID:Wpti2W5K使いたがる連中のなかでそれを正しく理解してるのは少ない
0710デフォルトの名無しさん
2015/08/25(火) 11:43:43.66ID:lyj94kL00711デフォルトの名無しさん
2015/08/25(火) 12:20:15.95ID:ya7qPQ7D0712デフォルトの名無しさん
2015/08/25(火) 12:57:13.30ID:UmUy/CWK普段コンビニとか外食でメシを食ってるひとが
まな板と包丁買ってきて自分で魚をさばくような話
君はずっとグルメガイドを見てればいい
0713デフォルトの名無しさん
2015/08/25(火) 13:09:56.76ID:uHUYRmLo早めにルールに従ってDisposeをキチット実行するよう修正しましょう
そうしないと後の修正で口から泡を吹く羽目になりますよって話ですw
0714デフォルトの名無しさん
2015/08/25(火) 13:33:31.83ID:yb6n8Wdy0715デフォルトの名無しさん
2015/08/25(火) 18:38:02.96ID:cRNFEmJ60716デフォルトの名無しさん
2015/08/25(火) 18:40:19.98ID:cRNFEmJ60717デフォルトの名無しさん
2015/08/25(火) 21:16:04.98ID:11iB37VuFromHandleとか逆にハンドルを取得する系はIntPtrしか受け付けてくれないから、不要になった時にうまく解放しないといけないのが割と面倒
理解不足も含めて、メモリリークさせてるサンプルはよく見かける
あとは、メインフォームとか静的なイベントに参照にぎられてるとかもちゃんと意識しないと危険
0718デフォルトの名無しさん
2015/08/25(火) 22:00:39.66ID:FzRJlm7d個人的にはDisposeを使う方がお行儀がいいのは認める。
ただ、C#の思想としては、「タイミングは規定できないが、解放はシステム側で保証するから、
面倒なことを考えずに具だけに集中しろ」ということなのだと思う。
だから、クラスをきっちり書けば出来そうな気もするし、それに向けて整備していっているはず。
とはいえ、俺はGUI(描画)に使っている程度で、そんなに本格的に使っていない。
だから命中していないだけで、言われているケースがありそうだというのはなんとなく感じる。
0719デフォルトの名無しさん
2015/08/25(火) 22:03:49.42ID:bwlYR2I5メモリに関してだけはそのとおりですね
0720デフォルトの名無しさん
2015/08/25(火) 22:07:38.08ID:FzRJlm7dアンセーフはこれ。見にくくなるが速くなる。
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バカはリソース解放の必要性が理解できないので説明するだけ無駄
0722デフォルトの名無しさん
2015/08/25(火) 22:17:53.09ID:JrnVqkd7はぁ……
何言ってんのこいつ
C++から来てなんでも知ってるつもりのバカヤロウじゃん
0723デフォルトの名無しさん
2015/08/25(火) 22:41:07.48ID:bwlYR2I5アンマネージドは、VC++でSEEとか使いたいときに、使う
が正解なのかしら
知らんが
0724デフォルトの名無しさん
2015/08/25(火) 22:41:34.05ID:bwlYR2I5ごめんね
0725デフォルトの名無しさん
2015/08/25(火) 23:06:00.33ID:Wpti2W5Kこれはアンマネージコードではなくアンセーフコード
アンセーフコードもマネージコードには違いない
ちなみにこのリンク先の例はunsafeだから速いのではなく、GetPixel/SetPixelのAPIがクソ遅いだけ
.NET2.0以降ならLockBitsがあるから一旦配列に丸ごとコピーして処理後に書き戻せばunsafeなんか使わなくても十分に速い
0726デフォルトの名無しさん
2015/08/25(火) 23:08:27.34ID:rPHzO56e0727デフォルトの名無しさん
2015/08/25(火) 23:29:15.56ID:uHUYRmLoというかC++の上がり人はどう考えても一人じゃないだろ
見た感じ多くはゲーム系の人かな
0728デフォルトの名無しさん
2015/08/25(火) 23:35:33.69ID:uHUYRmLo0729デフォルトの名無しさん
2015/08/25(火) 23:42:25.80ID:87HoKT0rこれはひでえな
LockBits使えば十分だろ
0730デフォルトの名無しさん
2015/08/25(火) 23:44:06.08ID:IDnYKic20731デフォルトの名無しさん
2015/08/25(火) 23:57:53.14ID:FzRJlm7dhttp://daisy64.blogspot.jp/2009/01/getpixel.html
マネージドコードの例は不要だと思って省略した。
実際は#pragma unmanagedと#pragma managedでソース上で関数単位で切り替える。
0732デフォルトの名無しさん
2015/08/26(水) 00:16:40.27ID:LkVTB1JBお前は何を言っているのか
そのリンク先の例はunsafeも含めて全部れっきとしたマネージコードだ
C++/CLIの#pragma unmanaged (これは本当にネイティブコードになる)とは全く違う
0733デフォルトの名無しさん
2015/08/26(水) 00:22:51.89ID:LkVTB1JBよく見たらこのサンプル意味不明だな
r, g, bの値を使ってないから、最適化で消えてると思われる
実質的にはunsafe全く関係なくてMarshalCopyの時間を測ってるだけだね
0734731
2015/08/26(水) 02:05:24.84ID:N7Jdy9nG× マネージドコード
○ アンマネージドコード
最適化がかかって全部抜けるのなら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:0fCLXGvh0738デフォルトの名無しさん
2015/08/26(水) 08:27:19.17ID:pUWj3Ef8レベル連呼クンって前にもいたよね
0739デフォルトの名無しさん
2015/08/26(水) 08:29:29.18ID:gbsTgmpf0740デフォルトの名無しさん
2015/08/26(水) 08:59:00.05ID:DnnAf/8j0741デフォルトの名無しさん
2015/08/26(水) 09:15:42.60ID:ElP7lUPJ0742デフォルトの名無しさん
2015/08/26(水) 11:18:16.79ID:dP9T8Aj9そこまで崇高な理想を持って開発されてるとは思えないが
タイミングがわからないおかげで使用中のハンドルが開放される可能性への対策も必要になるし
あと、マネージリソースだけじゃなくて、固定したGCHandleを持ってればGCのパフォーマンスへの影響もでかい
0743デフォルトの名無しさん
2015/08/26(水) 17:11:34.36ID:qrjLQtVJしますが、横スクロールバーが表示される程列数や個々の幅がある
場合に最後の列幅が変更できません。
どのようにマウスで変更するのでしょうか。
0744デフォルトの名無しさん
2015/08/26(水) 20:08:44.10ID:N7Jdy9nGメソッドの部分は必ず実行され、その後の部分は最適化されているかも、ということで了解した。
LockBits/unsafeの比較は当てにならないね。
異常に速度差があるし、メソッド以外は全部抜けているかも。
0745デフォルトの名無しさん
2015/08/26(水) 20:16:21.46ID:N7Jdy9nG> 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ファイナライザでKeepAliveするのは意味がない
KeepAliveしたところで参照している他のオブジェクトのファイナライザが先に呼び出される可能性は防げないし、
ファイナライザの実行が終わる前にthisやその他参照しているオブジェクトがGCに回収されてしまうようなことは無いからね
0747デフォルトの名無しさん
2015/08/26(水) 21:39:21.41ID:pUWj3Ef8もう来んなよ
0748デフォルトの名無しさん
2015/08/27(木) 08:03:55.06ID:Sd5tuK/H0749デフォルトの名無しさん
2015/08/27(木) 17:01:34.76ID:H9Zj5Bn1なんでだろ。
明示的実装だと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全部捨てろ
そんなことをしようとせずに済んだ世界を想像し
可能ならば来た道を戻って設計しなおすといい
0752デフォルトの名無しさん
2015/08/27(木) 18:44:49.92ID:CaKJnHAU0753デフォルトの名無しさん
2015/08/27(木) 18:45:04.56ID:0465F1pc0754デフォルトの名無しさん
2015/08/27(木) 19:34:06.84ID:M7ObSeqiMyClass はなんだかの形で定義?
class B<T> は、もはや修正してエラーもなくせない
メソッド名が重複するという問題にたどり着けんw
0755デフォルトの名無しさん
2015/08/27(木) 21:05:28.92ID:4ooez7+rAとか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:hme97lr4public 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/OrL4X0760デフォルトの名無しさん
2015/08/27(木) 21:46:52.77ID:4ooez7+rpublic override 料理 strategy {get;} に上書きしたいです。
まとめるとこうです。
1.オブジェクトの行動を戦略ポリモーフィズムで実現したい
2.継承クラスから戦略をジェネリックに呼び出したい
3.基底クラスの戦略呼び出しは継承クラスの戦略を呼び出す(abstract)
4.ジェネリックの共変性(.net3.5を利用)の問題で3を基底<T>およびメンバTとするのは、
その他のオブジェクトでキャストが膨大に発生するため、ジェネリックを持たない基底クラスを用意した
0761デフォルトの名無しさん
2015/08/27(木) 21:56:46.79ID:4ooez7+rそういうことです!
たぶんできました!ありがとうございます
0762デフォルトの名無しさん
2015/08/27(木) 22:22:03.15ID:pO3unHFi0763デフォルトの名無しさん
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どうしてもそのようにしたければ、二段階に分けてやればいいんじゃねかな
インターフェイスが正解だが
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それだと基底クラスにキャストされているときに呼ばれると基底のメソッドが呼ばれてしまうので今回の要件ではまずいです。
0768デフォルトの名無しさん
2015/08/28(金) 11:43:18.34ID:Sz74PPpb基底クラスの変更はBBaseの方でやるの、二段階に分けるという事
0769デフォルトの名無しさん
2015/08/28(金) 15:45:12.11ID:O/DjZ5xn0770デフォルトの名無しさん
2015/08/28(金) 15:48:24.22ID:Sz74PPpbまぁ、互換性がうんぬんとかクリティアルな問題がある訳じゃなさそうだし interface 版でいいと思う
それでやれば良かろう
0771デフォルトの名無しさん
2015/08/28(金) 17:04:25.71ID:bO0aCwDRそこがクリティカルだと何度も申し上げていますが。
解決したのでもういいです。
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+A0775デフォルトの名無しさん
2015/08/28(金) 19:58:34.57ID:Lygpatgh0776デフォルトの名無しさん
2015/08/28(金) 20:01:28.39ID:LXLt4eaxフランスパン目に突き刺して死ね
0777デフォルトの名無しさん
2015/08/28(金) 20:05:55.57ID:CjkSJ7exアホなことは考えるな
普通にクエリビルダ使え
0778デフォルトの名無しさん
2015/08/28(金) 20:49:33.85ID:Sz74PPpbいや、そこは普通にDispose使えよ、得体のしれないことするなw
0779デフォルトの名無しさん
2015/08/28(金) 20:55:43.87ID:ls1PRuKgえ?
>755はそういうことを言いたいんじゃないの?
0780デフォルトの名無しさん
2015/08/28(金) 21:38:47.88ID:8lfDGDPP0781デフォルトの名無しさん
2015/08/28(金) 21:38:51.18ID:cLOGe/lp意味がわからない
FormのDisposeはどうやったら不要になるの?
0782デフォルトの名無しさん
2015/08/28(金) 21:43:04.20ID:Lygpatgh0783デフォルトの名無しさん
2015/08/28(金) 21:53:36.50ID:IPCW/fdR0784デフォルトの名無しさん
2015/08/28(金) 21:55:20.42ID:ls1PRuKg0785デフォルトの名無しさん
2015/08/28(金) 22:19:38.38ID:jMAaeftaDisposeパターンちゃんと分かって無さそうだし、GC.SuppressFinalize()も使ったことないんだろうな。
0786デフォルトの名無しさん
2015/08/28(金) 22:21:47.32ID:La0rg2tq0787デフォルトの名無しさん
2015/08/28(金) 22:36:10.25ID:k07is2fO自分のクラスにコンポジションすると、
自分自身もIDisposableを実装する必要が出てきます
このように、どんどんと、IDisposableは伝染していきます
IDisposableの要らないクラスは、
メモリ以外のリソースを全く含まない、クラスだけです
終いには、IDisposableだらけになります
インテリジェントなクラスほど、IDisposableになります
これがGCの現実です
0788デフォルトの名無しさん
2015/08/28(金) 22:38:35.26ID:ls1PRuKg0789デフォルトの名無しさん
2015/08/28(金) 22:41:22.64ID:La0rg2tq0790デフォルトの名無しさん
2015/09/02(水) 11:45:01.96ID:QWgZ6B7l2ヶ月くらいの初心者ですが
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タイマで定期的に取るようにすればいいんじゃない?
0793デフォルトの名無しさん
2015/09/02(水) 16:16:36.49ID:MYIvkVg2サンキュー
0794デフォルトの名無しさん
2015/09/02(水) 21:43:47.52ID:+Iu6xlmHStrategyは動的に処理を切り替える為のパターンで、ぶっちゃけただの多態性の事だ
Strategyは基本的すぎてパターンと呼ぶほどのものではない
他の殆どのパターンでも漏れなくStrategyを使っている
0795デフォルトの名無しさん
2015/09/02(水) 22:24:38.83ID:2IVkMjjHむしろ、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:AIAHCYFs2ch脳全開だなw
よくそういう被害妄想を恥ずかしげもなく開陳できるよなw
0799デフォルトの名無しさん
2015/09/02(水) 23:32:33.81ID:nxxrL6I9デザパタを知ったように語る連中にくらべての話なw
0800デフォルトの名無しさん
2015/09/03(木) 09:12:04.06ID:BI1c3JMp0801デフォルトの名無しさん
2015/09/03(木) 09:31:49.44ID:j51sLT8G0802デフォルトの名無しさん
2015/09/03(木) 10:45:14.16ID:AQrjy02Mデザパタってそういうもんじゃないの
〜パターンって言うだけでああ、あれねってなるから
いちいち詳細説明の手間(タイムコスト)が省ける
0803デフォルトの名無しさん
2015/09/03(木) 12:50:32.25ID:UAzBQfVm0804デフォルトの名無しさん
2015/09/03(木) 12:54:06.21ID:Z05hlE1P小学生か。
俺は802じゃないけど、そういうのは無駄でも言い直しでもない。
曖昧さを減らすためのテクニックだ。
ヴァカじゃないのか
0805デフォルトの名無しさん
2015/09/03(木) 13:00:22.16ID:Mtr7VddV0806デフォルトの名無しさん
2015/09/03(木) 13:02:50.82ID:NQZSp0fr0807デフォルトの名無しさん
2015/09/03(木) 13:03:00.42ID:bflO1psv0808デフォルトの名無しさん
2015/09/03(木) 13:18:47.27ID:6M6obrOuクスッときたw
なぜなら俺も同じ感想を抱いていたからw
0809デフォルトの名無しさん
2015/09/03(木) 15:37:10.76ID:dGS6eFW0逆だろ
むしろ、stateパターンで書けるもんをswitchとかドヤ顔でやるやつを生み出さないためのパターンのひとつ。
0810デフォルトの名無しさん
2015/09/03(木) 15:43:23.59ID:eSbMz5iNオブジェクトに変化する状態を持たせるのはなるべく避け、どうしても必要なところはなるべく明示的に、ってのが今風
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:50OgoD3Z0814デフォルトの名無しさん
2015/09/03(木) 21:26:51.16ID:4OSMUinYお前の狭い井戸の中の話はチラシの裏にでも書いとけ
0815デフォルトの名無しさん
2015/09/03(木) 21:30:09.14ID:Mtr7VddVふらっと行け
0816デフォルトの名無しさん
2015/09/03(木) 21:36:44.84ID:t0UOlUCHそれは理想でしかない
デザパタの理解の時点で不備が残るから
パターン名を出して語り合ってもチグハグなまま
断片的な理解で語って延々すれ違うのが関の山
0817デフォルトの名無しさん
2015/09/03(木) 21:37:48.99ID:AjZjPQkBすみません、初心者なのですが、フラットとはなんでしょうか
0819デフォルトの名無しさん
2015/09/03(木) 22:30:08.90ID:oJAsYsjQこれどういうこと?
むしろifとかswitch推奨ってこと?
0820デフォルトの名無しさん
2015/09/03(木) 22:35:31.33ID:4OSMUinYまともなソフト組んだことのない奴の戯れ言なのでスルーでいい
0821デフォルトの名無しさん
2015/09/03(木) 22:59:38.02ID:UAzBQfVm2個のケースで処理が複雑の場合どちらもクラス化するとは限らないし、switchでも関数でもオブジェクトでも見通しがいいのを選べばいい。
なぜなら、テストがあれば容易に修正が可能だからだ。
0822デフォルトの名無しさん
2015/09/03(木) 23:07:40.59ID:8yoLLFnu最近は関数型からの流れで、クラスはイミュターブルにするべきだという流派が勢いを増しつつある
その考えに従うなら、stateパターンだろうがifだろうが自分自身のstateを勝手に変更するようなクラスは好ましくなくて、
差し替えやすくするにしてもコンストラクタでStrategyを渡しなさい、となるわけ
それからStrategyに比べてStateはその親が持ってる内部情報に強く依存することが多いので、
差し替えのメリットはあまりなくてコードが読みにくくなるだけの場合が多かったりする
0823デフォルトの名無しさん
2015/09/04(金) 01:05:37.68ID:lzz57wGL0824デフォルトの名無しさん
2015/09/04(金) 09:18:55.15ID:nWrrDgsEテストは製品の品質を担保するためのものだろ
修正の容易さとは関係ない
0825デフォルトの名無しさん
2015/09/04(金) 12:00:23.91ID:UHAkjTxWマジで言ってんのか?
0826デフォルトの名無しさん
2015/09/04(金) 12:21:37.40ID:jQreaVPT0827デフォルトの名無しさん
2015/09/04(金) 12:24:18.11ID:uljmVnmxリファクタリングは名著だから一回くらい目を通しておいたほうがいいぞ
0828デフォルトの名無しさん
2015/09/04(金) 12:26:25.43ID:/OouKiwm後々の修正以前に、新規開発を最期までグリーンを維持しながら完遂することすら奇跡
0829デフォルトの名無しさん
2015/09/04(金) 12:28:22.50ID:wAnp+SYa0830デフォルトの名無しさん
2015/09/04(金) 12:29:33.09ID:wAnp+SYa0831デフォルトの名無しさん
2015/09/05(土) 00:34:41.72ID:AEZT9dHUテストがあれば結果が保証される=安全な修正の場が提供される=修正がしやすい場が提供される
けれど、修正元のコードが容易に修正しやすいものかとは別問題でしょ
何だか、根本的に履き違えているみたいだな、俺が
勉強し直してきます。
顔真っ赤なんです。分かってください。
場違いなんでこれで最後にします
0832デフォルトの名無しさん
2015/09/05(土) 00:37:38.28ID:FwcsIAPo動いてるものを弄ることの恐ろしさを知らないだろ
修正なんて結果の保証ができるかが全てと言っても過言ではない
0833デフォルトの名無しさん
2015/09/05(土) 00:45:48.20ID:AEZT9dHUそういってるんだけど
噛みつき方がおかしい
0834デフォルトの名無しさん
2015/09/05(土) 01:21:45.82ID:+/wEUIWT0835デフォルトの名無しさん
2015/09/05(土) 06:31:10.03ID:Jq+GEKLJタイムコスト削減どころか患者扱いされるパターンが一般的
http://peace.2ch.net/test/read.cgi/tech/1441012744/133-142
0836デフォルトの名無しさん
2015/09/05(土) 07:44:13.00ID:FwcsIAPo修正作業≒影響範囲と結果の確認作業
ということだよ
ソースコードの修正そのものは大した問題ではない
0837デフォルトの名無しさん
2015/09/05(土) 10:07:42.28ID:McuB2/kQ修正って一言で言うからおかしくなる
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
粘着してるのはお前だけ
0840デフォルトの名無しさん
2015/09/05(土) 11:40:46.30ID:nF0Xae6t問題なのは
5.リリース後に修正ミスが見つかるリスク
0841デフォルトの名無しさん
2015/09/05(土) 11:43:57.82ID:yNAOhLZfこれ以上続けるならDisposeと同じように連投自演で荒らしてやる
分かったらおとなしくしてろ
0842デフォルトの名無しさん
2015/09/05(土) 11:49:32.74ID:yNAOhLZf雑談がしたければ雑談スレかマ板に行け
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/昨日今日現れたようなぽっと出の若造と一緒にしていい存在ではない。
0846デフォルトの名無しさん
2015/09/05(土) 12:41:58.24ID:d+nPX/+M静的クラスと普通のクラスをstaticに持つのと、
どう使い分けしたらいいでしょうか。
べつにシングルトンにする必要はないオブジェクトですが、
プロセスではひとつしかインスタンス化しません。
0847デフォルトの名無しさん
2015/09/05(土) 12:47:44.60ID:+EPImSa20848デフォルトの名無しさん
2015/09/05(土) 12:48:22.79ID:pfZ6OLhC>普通のクラスをstaticに持つ
ってどういう意味?
0849デフォルトの名無しさん
2015/09/05(土) 12:49:23.73ID:dHzp+WDi全体で共有するからといって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:5uKQXugM0852デフォルトの名無しさん
2015/09/05(土) 14:08:16.36ID:trE2W9oi毎回直接hogeにアクセスするなら拡張性はない
拡張性をもたせるなら、Hogeにインターフェイスを実装して、他のクラスはそのインターフェイスを通して利用するようにする
実際のHogeのインスタンスは外から渡す
0853デフォルトの名無しさん
2015/09/05(土) 15:14:06.63ID:OLenB+FKクラスの持つ概念が何かを考えずに、
コンパイル通るかしか考えないんだろう
0854デフォルトの名無しさん
2015/09/05(土) 15:29:17.88ID:ygimYbNMまぁきちんとインターフェースを切り出してモック作りゃいいだけなんだけどな
0855デフォルトの名無しさん
2015/09/05(土) 15:42:26.30ID:+/wEUIWTコンストラクタをプライベートにすればいいだけだし。
0856デフォルトの名無しさん
2015/09/05(土) 15:53:29.93ID:MzCBpk1s0857デフォルトの名無しさん
2015/09/05(土) 17:53:50.96ID:trE2W9oi849だけど、毎回newしろと言ってるんじゃないよ
Applicationオブジェクト(と寿命が一致するオブジェクト)のフィールドとして持つということ
0858デフォルトの名無しさん
2015/09/05(土) 18:10:54.10ID:5uKQXugM.NETのDIライブラリって何がデファクトなの
0859デフォルトの名無しさん
2015/09/05(土) 18:38:14.83ID:uKtK2YVi0860デフォルトの名無しさん
2015/09/05(土) 19:12:43.32ID:LfnRuzOf0861デフォルトの名無しさん
2015/09/05(土) 19:36:56.63ID:Ozz2pk1l0862デフォルトの名無しさん
2015/09/05(土) 19:40:50.40ID:unwmwqiG.NET Framework 4.5使わないならいいんじゃね
0863デフォルトの名無しさん
2015/09/06(日) 09:57:58.21ID:4IVIRjvm0864デフォルトの名無しさん
2015/09/07(月) 18:59:07.66ID:8RjKVv09でフォントの一覧は取得出来たのですが、この中から等幅フォントだけを
取り出す方法を探しているのですが分かりません。
知っている人教えてください。
0865デフォルトの名無しさん
2015/09/07(月) 21:00:41.16ID:xgRymLq/0866デフォルトの名無しさん
2015/09/07(月) 21:10:18.07ID:WzVfDTMU0867デフォルトの名無しさん
2015/09/07(月) 21:14:00.57ID:mOIVmWnrこの判定が最強
0868デフォルトの名無しさん
2015/09/07(月) 21:58:27.85ID:zUrSP80hググってみたが結構面倒臭そうだな...
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情報ありがとうございました。ここのやり方で出来ました。感謝です。
0870デフォルトの名無しさん
2015/09/10(木) 10:31:35.12ID:Zqb1tFhojsスレよりLINQ好きはこっちのほうが多いと思うんで
0871デフォルトの名無しさん
2015/09/10(木) 10:34:40.84ID:OdK7pfyp0872デフォルトの名無しさん
2015/09/10(木) 11:47:11.60ID:G800rjof0873デフォルトの名無しさん
2015/09/10(木) 12:09:30.83ID:Zqb1tFhoそっちに書いてきます
0874デフォルトの名無しさん
2015/09/10(木) 12:17:14.28ID:XXlgiA9F機能が豊富で利用者も多い
0875デフォルトの名無しさん
2015/09/15(火) 00:22:45.76ID:fYJZeKZK.NET Frameworkにあるやつでお願いします!
0876デフォルトの名無しさん
2015/09/15(火) 01:02:02.00ID:8nVq9fpM0877デフォルトの名無しさん
2015/09/15(火) 02:50:53.79ID:jPIqDLQlダサいですか?
(´・ω・`)
0878デフォルトの名無しさん
2015/09/15(火) 02:55:10.80ID:8L2kzhoggetcharの発音はカッコよかった
0879デフォルトの名無しさん
2015/09/15(火) 07:08:29.36ID:gJJz7de70880デフォルトの名無しさん
2015/09/15(火) 07:16:22.30ID:fovtyU1w0881デフォルトの名無しさん
2015/09/15(火) 07:37:34.11ID:c6kBSd9Xギター弾く人だろ
0882デフォルトの名無しさん
2015/09/15(火) 11:12:05.00ID:XyyEatel0883743
2015/09/15(火) 15:21:22.42ID:nRNQ5gNy0884デフォルトの名無しさん
2015/09/16(水) 00:01:51.90ID:Uf++h6JZ0885デフォルトの名無しさん
2015/09/16(水) 10:40:14.99ID:7sbTeZHX0886デフォルトの名無しさん
2015/09/16(水) 12:49:48.36ID:ayKx8SBEC++では出来ました
一から作るならこんな設計しませんが、C++で作られたライブラリをラップする際に困ります
0887デフォルトの名無しさん
2015/09/16(水) 13:09:05.15ID:R6jOKYfjできるよ
0888デフォルトの名無しさん
2015/09/16(水) 13:18:16.97ID:gYRc3sT60889デフォルトの名無しさん
2015/09/16(水) 13:21:42.04ID:807nK7Mg参照型に渡すとか俺には意味不明だ
0890デフォルトの名無しさん
2015/09/16(水) 17:35:09.33ID:koLGUr+e0891デフォルトの名無しさん
2015/09/16(水) 19:16:26.11ID:+CviF6rcそれかC++だと値としてオブジェクト渡せるから、
わざわざ参照と付け加えてるかのどちらか
0892デフォルトの名無しさん
2015/09/16(水) 20:00:45.32ID:koLGUr+e{
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:gm0njNEvC#のフィールドは、ヒープメモリーのアドレスが入っているポインタ(ちょっと違うが)だという意味ではC++で言う参照型でしょ
0894886
2015/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+evoid hoge(Foo1 &foo1);
の相当は
(C#)
void hoge( Foo1 foo1 ){};
だにょ
foo1の参照そのものは上書きされないよ
メンバーはいじれるよ
0896デフォルトの名無しさん
2015/09/16(水) 22:53:24.86ID:gm0njNEv{
}
class foo1:IFoo
{
}
class foo2:foo1
{
}
hoge(ref IFoo foo2) でどう?
0897デフォルトの名無しさん
2015/09/16(水) 23:04:03.46ID:FKycpPH3C#やC++/CLIのハンドル渡し(C#ならFoo foo, C++/CLIならFoo^ foo)に相当するのはC++のFoo* fooだよ
0898デフォルトの名無しさん
2015/09/17(木) 00:42:11.48ID:PQCx+Vd20899デフォルトの名無しさん
2015/09/17(木) 00:47:54.38ID:pD0MAiOr自分で手で配列に入れるのはやめろ
0900デフォルトの名無しさん
2015/09/17(木) 04:08:04.20ID:4HLEYCrXパラメータとメソッドは
どういった具合にしたらいいんですか?
(´・ω・`)
0901デフォルトの名無しさん
2015/09/17(木) 04:23:23.59ID:Q0AcoQbB0902デフォルトの名無しさん
2015/09/17(木) 04:42:43.98ID:cshgYIFM0903デフォルトの名無しさん
2015/09/17(木) 06:29:30.95ID:mooKI9/d0904デフォルトの名無しさん
2015/09/17(木) 06:53:55.88ID:WDJU3Zw5bool Wait(int minit)
0905デフォルトの名無しさん
2015/09/17(木) 10:42:31.84ID:Z358njolというわけでもないでしょ
0906デフォルトの名無しさん
2015/09/17(木) 11:33:26.73ID:ptLmoXeB0907デフォルトの名無しさん
2015/09/17(木) 11:41:24.96ID:rrdPtXosオモシロイヤツヲヒトツタノムヨ
0908デフォルトの名無しさん
2015/09/17(木) 20:52:11.24ID:Gg0L/PBZ昔(.NET1.1?)はADO.NETにもあったはず…
0909デフォルトの名無しさん
2015/09/17(木) 22:35:12.65ID:W5SHLev9HogeDataReader.GetString()
0910デフォルトの名無しさん
2015/09/17(木) 22:44:44.40ID:PQCx+Vd2これおしえてください!
0911デフォルトの名無しさん
2015/09/17(木) 23:10:36.06ID:CxP5vej70912デフォルトの名無しさん
2015/09/17(木) 23:36:24.55ID:4dvMz6Vqたしかそれだったと思うけど、今のSqlDataReader.GetStringは、列番号必須で区切り文字指定のない全く別物…
>>911
Webページへの高速出力が目的なので、ループ出力より高速じゃないと意味ない…
そのかわり1.1の頃より速くなってるから、なんでもループ処理でOKよってことなのかな
当時は圧倒的に速度が違ったけど
0913デフォルトの名無しさん
2015/09/17(木) 23:37:32.60ID:4dvMz6Vqん?>>910へのレスかw
失礼しました
0914デフォルトの名無しさん
2015/09/18(金) 01:22:36.27ID:aVZSqO61object型の配列に部品を格納する感じですか?
0915デフォルトの名無しさん
2015/09/18(金) 02:29:27.98ID:YsR93Rd40916デフォルトの名無しさん
2015/09/18(金) 07:18:13.22ID:fS8raEaD>>899で答え出てるだろ
プログラミングの基本的な指針として、地道な手作業は可能な限り避けるのがよい
0917デフォルトの名無しさん
2015/09/18(金) 13:12:04.38ID:aVZSqO61>>916
ありがとうございます。
0918デフォルトの名無しさん
2015/09/18(金) 22:22:58.29ID:cJiNMIaZ0919デフォルトの名無しさん
2015/09/18(金) 22:28:49.66ID:fS8raEaDまあその前に初心者なら多次元配列は捨てた方がいい
0920デフォルトの名無しさん
2015/09/19(土) 00:27:37.44ID:ImfPowRmLINQを使え!
0921デフォルトの名無しさん
2015/09/19(土) 01:27:07.29ID:2AI6YCMk主にUnityで使うつもりなのでVisualC#に偏っている必要は全くないのですが
0922デフォルトの名無しさん
2015/09/19(土) 03:14:00.13ID:Zufot1+5web検索禁止の職場(そんなのあるの?)ぐらいしか需要ないし。
0923デフォルトの名無しさん
2015/09/19(土) 05:23:44.41ID:2AI6YCMk0924デフォルトの名無しさん
2015/09/19(土) 06:36:09.44ID:nNq1xWLGでぐぐれば大抵はみつかるでしょ
0925デフォルトの名無しさん
2015/09/19(土) 18:39:56.56ID:ONkilyrE0926デフォルトの名無しさん
2015/09/20(日) 02:02:40.73ID:rYu6JiJC職場のバカがDeepCopyとかいうメソッドを作ったのでどんなバカなコード書いてるのかと覗いてみたら
シリアライズして逆シリアライズしていた。
このバカはきっと「俺天才?」とか思ってるんだろうと思った
0927デフォルトの名無しさん
2015/09/20(日) 04:57:39.45ID:GwThY85s職場にVS2005時代の秀和システムの逆引き本があって
毎年新人がそれ参考にするんだよ。それどころか、読めと薦める奴すらいる。
それはゴミだ、捨てろと言っても誰も聞かない。
0928253
2015/09/20(日) 07:15:00.84ID:O6Xw3ijCお前が捨てればいいし
そもそももっとまともな本買えばそんな本誰も見向きしなくなるだろ
まともな本があるかどうかは知らんけど
0929デフォルトの名無しさん
2015/09/20(日) 12:53:26.70ID:b8irudVxジャグ配列をコピーするプログラムをLINQで組んでみた
http://ideone.com/73tdUp
a2をあらかじめnewしとかないといけないのが問題だけど
これもLINQに入れれればいいな
0930デフォルトの名無しさん
2015/09/20(日) 14:36:59.39ID:GwThY85s共用図書として管理されてて、棚卸しがあるから勝手に捨てられん。
会社は本を買ってくれない。業務や自己研鑚に必要な本も自腹購入。
0931デフォルトの名無しさん
2015/09/20(日) 14:43:13.35ID:PY77Iv4D何か問題あるの?
Webで探せばすぐ出てくるコードだが。
0932デフォルトの名無しさん
2015/09/20(日) 15:07:04.60ID:O6Xw3ijCそんなアホ会社に勤めてる自分を恨めよ
0933デフォルトの名無しさん
2015/09/20(日) 15:13:53.07ID:atv7oNrqそういうのはマ板でやってください
0934デフォルトの名無しさん
2015/09/21(月) 17:32:41.08ID:Qf1YaYyL0935デフォルトの名無しさん
2015/09/21(月) 18:56:36.66ID:isL5PIxi0936デフォルトの名無しさん
2015/09/22(火) 22:52:37.30ID:9Yiwc7mM最新の環境で10年前のC#本は最早疫病神だろ。
0937デフォルトの名無しさん
2015/09/22(火) 23:34:32.61ID:yQAByzEz逆引き本の類はC#の本というよりBCLの本で、BCLはC#ほど変化があるとは思えない。
だからそのまま使える部分も多いと思うけど。
0938デフォルトの名無しさん
2015/09/22(火) 23:45:20.37ID:ukiPrkhN0939デフォルトの名無しさん
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自分の見たことない、理解できない文法はコピペがためらわれるらしい
傍から見てて笑っちまうよ
0942デフォルトの名無しさん
2015/09/23(水) 01:02:59.07ID:DJdG/okPコピペの理由が「今まで実績あるソースだから」だもんな
同じコード見る身にもなってみろと・・・
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:vuM6eIZV0946デフォルトの名無しさん
2015/09/23(水) 09:13:51.73ID:kAhgYRFO0947デフォルトの名無しさん
2015/09/23(水) 09:27:57.00ID:DOrhv1Zg> コメントでプログラムの内容の意図をしっかり書いてくれれば
そんな奴はコピペなんてしない
0948デフォルトの名無しさん
2015/09/23(水) 12:28:14.16ID:brsC0ei6ソースはコピペまみれ
0949デフォルトの名無しさん
2015/09/23(水) 12:47:19.41ID:pVjwfoZv0950デフォルトの名無しさん
2015/09/23(水) 16:20:04.65ID:4xka67Z00951デフォルトの名無しさん
2015/09/23(水) 16:27:06.58ID:xXat8bOk0952デフォルトの名無しさん
2015/09/23(水) 16:45:48.88ID:4xka67Z00953デフォルトの名無しさん
2015/09/23(水) 16:58:49.24ID:lW5FhXsG実際ネットに転がってるコードなんて目的の動作をさせることのみに焦点を絞ってるんだから。
挙げ句にコピー元がバグってるんだからボクは悪くないもん!とか言われた日には。
0954デフォルトの名無しさん
2015/09/23(水) 17:24:32.25ID:xkmM0J9H0955デフォルトの名無しさん
2015/09/23(水) 17:29:59.86ID:DOrhv1Zgマジレスしとくと、
本来同じ機能を実現するルーチンが複数になることで不具合修正や機能追加時の変更漏れが発生しやすくなる
って言うのが一番でかいと思う
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結局コピー元の動作を理解できていないという問題に行き着くんだわ
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:CMBCqBI40962960
2015/09/24(木) 06:20:27.73ID:EdI1Xy7CPC固有の情報はないという噂ですが…
暗号化キーをMACアドレスにしておき、その事実を隠しておけば、
とりあえずまっとうな会社と認められるでしょうか?
0963デフォルトの名無しさん
2015/09/24(木) 07:45:02.78ID:jOCdVqmS秘密キーで暗号化する。
0964デフォルトの名無しさん
2015/09/24(木) 07:59:52.17ID:TiSlAdHm0965デフォルトの名無しさん
2015/09/24(木) 08:10:23.88ID:EdI1Xy7Cそのユーザーしかアクセスできないことを信用していいなら暗号化する必要もないのではないでしょうか?
0966デフォルトの名無しさん
2015/09/24(木) 08:20:40.51ID:QTVnOSJ60967デフォルトの名無しさん
2015/09/24(木) 09:08:56.95ID:P59Gpqf+見てみればいい
0968デフォルトの名無しさん
2015/09/24(木) 09:21:57.08ID:hqSpqpAb気づいたか。パスワードを保存するセキュアな方法は存在しないので全力で回避する事。
0969デフォルトの名無しさん
2015/09/24(木) 09:40:28.95ID:EdI1Xy7C調べました
コピーされたらおしまいという事態を防ぐために、マスターパスワードという機能があるそうで、毎回入力が必要みたいです
コピーが心配なら毎回入力しろということですね
ということは自動パスワードの暗号化はあまり意味がないということになりますが、firefoxも一応暗号化してますね
ということで心配するのやめました
0970デフォルトの名無しさん
2015/09/24(木) 09:44:34.01ID:EdI1Xy7Cローカルにある以上アタックも可能ですし、破られるかどうかは気にしてません
クレームが付かない常識的な仕様や方針を知りたかっただけです
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パスワードの最大のメリットは、何かあった時「お前が悪い」で済ませられることにある
0975デフォルトの名無しさん
2015/09/24(木) 17:49:25.63ID:zDZwJSqO普通にそれでいいと思う。
工夫すれば特定の環境下でのみデコード可能な暗号化なんてこともできるんだろうけど、
そのコストを正当化できる用途がどれだけあるのかなと。
0976デフォルトの名無しさん
2015/09/24(木) 18:03:00.11ID:hqSpqpAb0977デフォルトの名無しさん
2015/09/24(木) 22:09:03.96ID:InMIs/J40978デフォルトの名無しさん
2015/09/25(金) 16:58:01.03ID:KJgftwp5EFのコードファーストでlocalDB作るにはどうしたらいいんだ?
既定では普通にSQLserverで作られてしまう
0979デフォルトの名無しさん
2015/09/25(金) 17:17:23.99ID:IwY+2yrf0980デフォルトの名無しさん
2015/09/25(金) 23:21:13.33ID:4d8u8vMEoracle11gだとコードファーストできなかった
12cから対応してるらしいが
0981デフォルトの名無しさん
2015/09/26(土) 00:48:35.55ID:0uPNs2Iettp://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html
0982デフォルトの名無しさん
2015/09/26(土) 06:08:42.03ID:dJryEewA0983デフォルトの名無しさん
2015/09/26(土) 11:33:01.32ID:KGnBWXC10984デフォルトの名無しさん
2015/09/26(土) 15:18:03.90ID:lPgGeQyiこれを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+tHyIOyipcを使うとかsendmessage使うってのは見かけたんだが二つの違いがわからない
0988デフォルトの名無しさん
2015/09/26(土) 17:06:44.01ID:uTIKCoPrSendMessageはMessage queueを使ってデータを送受信する
C#(.NET)同士ならIpcChannelを使う方がいい
理由は楽だから
0989デフォルトの名無しさん
2015/09/26(土) 17:39:41.05ID:v7fSGmLa送信前にsjisに変換しろよ
0990デフォルトの名無しさん
2015/09/26(土) 17:42:15.41ID:v7fSGmLa>メソッドの行で直接計算式書くのって
そんな書き方は俺は認めない
0991デフォルトの名無しさん
2015/09/26(土) 17:45:00.67ID:bE/QWpmW他で使ってなければローカル変数はJITの最適化で消えるのでパフォーマンスには影響しない
一時変数に入れてるとデバッグで途中の値を見たいときに楽
0992デフォルトの名無しさん
2015/09/26(土) 19:34:34.34ID:QAy/TSxu0993デフォルトの名無しさん
2015/09/26(土) 20:45:56.05ID:XoMNa86jhoge.Foo(a + b)
ですむところを
tmp = a + b
hgoe.Foo(tmp)
を強制するのか
そんなコーディングルールはいやだなぁ
0994デフォルトの名無しさん
2015/09/26(土) 20:49:24.70ID:aOm8ykiX0995デフォルトの名無しさん
2015/09/26(土) 20:56:29.83ID:XoMNa86j0996デフォルトの名無しさん
2015/09/26(土) 21:03:52.04ID:VMIaqxNeエラーが出た行番号は出てるけどその行のどの式が原因なのか分からない場合がある
そういうときとりあえず一時変数に入れて行を分けたりするね
0997デフォルトの名無しさん
2015/09/26(土) 21:11:12.67ID:XoMNa86j0998デフォルトの名無しさん
2015/09/26(土) 21:30:30.74ID:1RpaQohZそれに慣れたら数式も普通に書いちゃうでしょ。
気に入らないかもしれないけど、慣れるしかないのでは。
0999デフォルトの名無しさん
2015/09/26(土) 21:43:42.81ID:Eb5jOjH8http://peace.2ch.net/test/read.cgi/tech/1443271409/
1000デフォルトの名無しさん
2015/09/26(土) 21:48:18.67ID:VMIaqxNeラムダ式はそれ自体がエラーになったりすることは無いからね
ラムダはその評価結果が問題であって、ラムダ式自体の値には特に意味が無い
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
レス数が1000を超えています。これ以上書き込みはできません。