C♯相談室 Part11
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯
NGNG(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレ・関連リンクは>>2-5あたり。
ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
0002名無しさん♯
NGNGPart10 http://pc2.2ch.net/test/read.cgi/tech/1051842450/
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGそれとも値型自体のアドレスを参照すんるでしょうか?
0005デフォルトの名無しさん
NGNGttp://blogs.gotdotnet.com/EricGu/commentview.aspx/508e8570-ea80-4555-9d67-866fe8741fc2
0006デフォルトの名無しさん
NGNGエキサイトで翻訳しても意味がわかりません、、
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGそりゃどの言語だっておんなじじゃ
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG↓こういう処理を
int num = (new Hoge()).GetAtHoge(2);
class Hoge {
private int[10] hoge;
public GetAtHoge(int index) {
return hoge[index];
}
}
↓プロパティとかインデクサとか使ってこういうのはできませんか?
int num = (new Hoge()).Hoge[2];
0012デフォルトの名無しさん
NGNGできますよ
メソッドというかクラス作って
0013デフォルトの名無しさん
NGNGget { return hoge; }
}
0014デフォルトの名無しさん
NGNGVBやVB.NETで言うところのRedim相当のことがやりたいのですが・・
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGガーベジ・コレクションというやつがイマイチ生理的に気に入りません。
デストラクタがいつ働くか分からない?? なにそれ??って感じです。
一応、どんなものかは分かっているのですが、その魅力というか、
便利さを教えてもらえないでしょうか。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG魅力はJavaとかC#やってC/C++に移行した人だけが体験できるものであって
逆の人は気持ち悪いだろうね
ただ、コレだけはいえる。
JavaとかC#の場合、
そういうこと考えてプログラミングする人と
そうでない人のコードは差が歴然
0022デフォルトの名無しさん
NGNG俺、元々C++屋だったけど、別に気持ち悪くないよ。
どうせ、C++でクラス作るときもメモリ管理用のラッパクラス作って参照カウントとかしてたし、
それに比べたら言語レベルでサポートされたガベコレの方がいいよ。
002318
NGNGそうですね。
でも自分はまだ、明示的に解放したほうが精神衛生上いいんですがw
いずれ慣れるのかな・・・。
>>20
なんか、GCが常にオブジェクトの有効期間を監視していることによる
パフォーマンスの低下とかが気になっちゃうなんですよね。
それと引き換えにメモリリークの危険がなくなり、手間が省けるように
なったってことなんでしょうが。。。
>>21
リンク先みました。まさに 取り上げられた という気分ですw
0024デフォルトの名無しさん
NGNG参照カウントとか使って自分で自動メモリ管理コード書いたり、
shared_prt とか使うよりは、
Java とか .NET のガベコレの方がパフォーマンスいいよ。
002518
NGNGあるって点かなあ。
それがイヤならusingで囲めって話なんでしょうけど、
openにはclose、mallocにはfree、newにはdelete、そして
コンストラクタにはデストラクタと、必ず対になるように書くように
教えられてきた人間にとってはけっこう抵抗あったりします。
002618
NGNGそうですか・・ コード量が減るのは実感してるんですが、
パフォーマンスについては他の要因も多くて、ガベコレが
既存のやり方と比べてどうなのか、というのはイマイチ実感できてないです。
0027デフォルトの名無しさん
NGNGならば、明示的に IDisposable.Dispose を呼ぶよう習慣化したらいいのでは?
0028デフォルトの名無しさん
NGNGDispose して当然じゃん
0029デフォルトの名無しさん
NGNG大いなる間違い
0031デフォルトの名無しさん
NGNG大いなる間違いもへったくれも、趣味グラマじゃなければ
選択の余地がないことのほうが多い
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGそれは俺も最初抵抗あった。
でも、using 文使えば問題ないし、割と慣れれる。
>>26
http://www.microsoft.com/japan/msdn/net/mag00/GCI.asp
↑この辺読めばガベコレについて分かるかと。
0035デフォルトの名無しさん
NGNGずいぶん効率の悪い人ですね。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG神話: ガーベジ コレクションは手作業で行うよりもつねに遅くなる
神話: JIT で処理されるプログラムはコンパイル済みのプログラムよりも実行速度が低い
0038デフォルトの名無しさん
NGNGニューニューしまくってパフォーマンス低下はありまくり。
ディレクトリ巡回して全てのファイルを表示するコード書くと
途中でカクカクするよ。
0039デフォルトの名無しさん
NGNGそれは自分のプログラムが悪いだけではないのかと小(ry
0040デフォルトの名無しさん
NGNGじゃあヒープ使わないコード書いてミロ
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG今まで綺麗にオブジェクト管理してたヤツ → 参照カウントや開放処理が楽になる
今までメモリリークなプログラム書いてたヤツ → ガベージコレクタ大活躍
それでもダメなヤツ → 「.NETは糞」発言
0043デフォルトの名無しさん
NGNGなんの違和感もなく受け入れられるほうがヤヴァイ気がするんだが
0044デフォルトの名無しさん
NGNG書けないなら黙ってろよカスが。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGソ ー ス を 出 す の が
恥 ず か し い 方 が い ら っ し ゃ い ま す
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG>>26で比較してるじゃん
0050デフォルトの名無しさん
NGNGディレクトリ巡回して全てのファイルを表示するコードってニューニューしまくり??
0051デフォルトの名無しさん
NGNGなぜそう比較の話になると過剰反応するかねえ
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGお前のほうが過剰反応
っていうか、GCの実行ってコードからも指示できなかったっけ?
0056デフォルトの名無しさん
NGNGC/C++ でメモリプールの管理とか、shared_ptr の実装の仕方知ってて、
かつ、GC の動作原理についてちゃんと分かってるなら
別に何の違和感もなく GC を受け入れられるよ。
0057デフォルトの名無しさん
NGNGそんなヤシがC++を離れたがるかが疑問
0058デフォルトの名無しさん
NGNGヘッダ書くのがうざいっす。
くだらんながらも俺がC++に戻りたくない一番大きい理由・・・
GCはGCできちんとメモリが解放されるように
参照のゴミが残らないように気をつけなきゃいかんけど
仮にゴミが残ってても無駄にメモリ食うだけでハングの元にはならない。
もうメモリに十分余裕あるから解放済みポインタが残ってハングする可能性を含むより
多少のメモリの無駄があっても安全な方がいいよ。
0059デフォルトの名無しさん
NGNGいや、普通にそんな奴でも C# に移ってるよ。
メモリ管理以外にも、プロパティとか
インターフェースとかデリゲートとか結構魅力的。
ライブラリも MFC 使うのに比べたら
.NET フレームワークのクラスライブラリは天国だし。
あと、58の言うヘッド書くのうざいっての激しく同意。
0060デフォルトの名無しさん
NGNGC♯に移行する理由は、そういう低レベル(低層という意味)な問題じゃない。
現実的に便利なんだよね。
オレもヘッダはめんどくさい。
0061デフォルトの名無しさん
NGNG006258
NGNG0063デフォルトの名無しさん
NGNGwhile((bool)(a=int.Parse(Console.ReadLine())))
と書いてもbool値に変換できませんって怒られます。
0064デフォルトの名無しさん
NGNGDelphi屋は全然移行できないみたいだよ。
【.NET】C♯Builder Personal update 2【フリー】
http://pc2.2ch.net/test/read.cgi/tech/1058786955/
0065デフォルトの名無しさん
NGNGfalse = 0, true = 0以外 と思ってませんか?
0066デフォルトの名無しさん
NGNGそれは int が bool に変換できないとかいう以前の問題な気が。
string line;
while( (line = Console.ReadLine()) != null)
{
int a = int.Parse(line);
}
あと、int を bool に変換したかったら a != 0 ってしないと駄目。
それに、int.Parse は変換できなかったら 0 返すんじゃなくて、例外出す。
006863
NGNGtry{
int a=int.Parse(line);
}
catch{
break;
}
でループから抜けるっていうのでいいんですか?
0069デフォルトの名無しさん
NGNGCtrl+Zかな?
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG!= null を != string.Empty に。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGそりゃ仕様次第だろ。
リダイレクトとかパイプ使いたいんだったら ctrl+C で終わるようにしたほうがいい気がするし、
ctrl+C なんてものの存在を知らない人をターゲットにしたいんなら空行で終わりにした方が。
0076デフォルトの名無しさん
NGNGどちらかにする意味がわからん
■ このスレッドは過去ログ倉庫に格納されています