[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 08/23 18:23 / Filesize : 106 KB / Number-of Response : 416
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

ふらっとVisual C#,C♯,C#(初心者用) Part96



1 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 16:29:24.19 ]
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

関連スレ
ふらっとVisual C#,C♯,C#(初心者用) Part95
toro.2ch.net/test/read.cgi/tech/1340975670/
C#, C♯, C#相談室 Part74
toro.2ch.net/test/read.cgi/tech/1342241550/

41 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:45:10.69 ]
押されるモノ達
うーん。個人的には「ボタン群」かなぁ

42 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:57:05.64 ]
>>41
ボタン群が一番日本語として違和感ない感じで字数も少なくていいな

43 名前:デフォルトの名無しさん [2012/08/07(火) 20:58:21.12 ]
ボタンからして駄目なんじゃないの?

44 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 21:40:26.57 ]
なぜか唐突にブッチフォンが脳内に

45 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 21:43:59.65 ]
ボタン(複数) で

46 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 22:11:52.08 ]
>>42
要素数2とかで群はちょっと過剰な感じ

47 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 22:18:12.51 ]
menuStripからのイベントの処理って、そのフォームのクラスに書くしかないでしょうか?
メニューに機能が増えてくると、そのイベント処理のコードが長くなって見難くて嫌なのですが

48 名前:デフォルトの名無しさん [2012/08/07(火) 22:20:51.49 ]
>>47
menuStripを継承した自作クラスを作ってそこへまとめたいコードを書く

その自作クラスは一度ビルドすると部品の一番上に紫のギアのマークででてくるんで
それをFormに貼り付ければOK

49 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 22:26:33.69 ]
>>48
なるほど!ありがとうございます。やってみます



50 名前:デフォルトの名無しさん [2012/08/07(火) 22:35:28.10 ]
こんな感じ
www.dotup.org/uploda/www.dotup.org3284995.png
www.dotup.org/uploda/www.dotup.org3284998.png

51 名前:47 mailto:sage [2012/08/07(火) 23:07:41.93 ]
すいません。
yMenuStripの方へコードを書く方法がわかりません…。

52 名前:デフォルトの名無しさん [2012/08/07(火) 23:13:06.79 ]
>>51
ideone.com/Jpjls
こんな感じ

本来はデザイナー上でイベントとかを設定するとIDEが
Form1.Designer.csに書いてるんだけどね

53 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 02:46:03.44 ]
 韓国開発研究院(KDI)が5日に発表した報告書によると、統計庁の2011年の家計金融調査を分析した
結果、借金を抱える世帯の33%が赤字状態で、7%は負債が資産を上回っていることが分かった。

 韓国の世帯数は1757万世帯(2010年現在)で、うち借金がある世帯が63%を占めることから、借金があり、
かつ赤字状態の世帯は365万世帯に達することになる。また、負債が資産よりも多く、かつ赤字状態の世帯は
全体の3.3%(36万世帯)だった。特に債務返済能力は低所得層ほど低いことが分かった。

 漢陽大のハ・ジュンギョン教授は「不動産市場の低迷で資産の売却が難しく、借金があり赤字状態の世帯が
さらに借金を重ねる悪循環に陥る可能性がある」と懸念を示した。

キム・テグン記者


朝鮮日報/朝鮮日報日本語版: 2012/08/06 09:08
www.chosunonline.com/site/data/html_dir/2012/08/06/2012080600636.html


54 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 05:25:06.98 ]
全部読んだ

55 名前:デフォルトの名無しさん [2012/08/08(水) 14:17:33.93 ]
すみません。ご存じの方がいらしたら教えてください。

vc#のchartコントロールで、
X軸のpoint数をあらかじめ設定する方法を教えてください。

chart1.Series[0].Points.AddY(xx)などで追加していくのではなく、
グラフを描画する前にpointの数を定義したいのです。

point数は可変なので、デザイナで定義するわけにもいかず困っています。

56 名前:デフォルトの名無しさん [2012/08/08(水) 14:28:27.58 ]
デザイナーでダミー放り込んでおけばいいんでないの?
www.dotup.org/uploda/www.dotup.org3286998.png

項目を有効にすると赤丸付近に項目追加用の窓を開くためのボタンがでてくるので
上の画像のように辿っていけば・・・

57 名前:デフォルトの名無しさん [2012/08/08(水) 14:56:41.94 ]
>>56
さっそくのご回答ありがとうございます。
具体的には以下のような事をやりたいのですが、
ダミーを作っても問題ないでしょうか。

例えばpoint数が100とした場合に、グラフにするデータが1〜50point分までしかないときは、
後ろ50ポイント分は空白のグラフ表示としてしておきたいのです。
(一定時間毎にデータが追加され、時間と共にグラフが埋まっていくイメージです)

58 名前:56 mailto:sage [2012/08/08(水) 16:21:22.93 ]
チャートはほとんど使った事無いのでこれでいいかよくわからんが
ご所望の動作はこんな感じ?
ideone.com/D8jjj

プロジェクト作ってcharを貼り付けてそのままコピペすればいける

59 名前:56 mailto:sage [2012/08/08(水) 16:26:15.17 ]
この方がいいか
ideone.com/9K77v

最初は0で設定してるので数字をある程度設定するまで縦軸の数字が
安定しないからチラつく



60 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 16:33:55.84 ]
グラフなんて自分で書くべき

61 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 16:44:11.47 ]
WPFなんかのINotifyPropertyChangedぽいことができれば部分変更だけでいいのにねえ・・・

62 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 17:18:45.80 ]
>>55
chart1.ChartAreas[0].AxisX.MaximumのデフルトがAutoだから、最大値を入れるのじゃダメなん?

63 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 17:44:15.42 ]
class Program
{
[STAThread] // これ
static void Main()
{
Application.Run(new Form1());
}
}

Mainの上の[]が一般に何を意味するのか調べたいんですがどんなワードで検索すればいいでしょうか?


64 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 17:51:47.49 ]
まずそのまま検索してみろよ

65 名前:55 [2012/08/08(水) 17:56:52.02 ]
>>56さん
>>62さん
さっそく試してみます。
取り急ぎお礼まで、ありがとうございました。

66 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 17:59:06.87 ]
eternalwindows.jp/com/apartment/apartment01.html
シングルスレッドアパートメント(STA)なスレッド
設定したことないけどMTAThreadもあるのかな?

まあ凝ったことしない人にとってはおまじないと思っておけば

67 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 18:02:15.35 ]
[この括弧そのものは属性ね]

68 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 18:15:45.18 ]
ありがとうございます、c# 属性で検索したら出てきました

69 名前:デフォルトの名無しさん [2012/08/08(水) 18:41:43.02 ]


 ヘ(; `Д)ノ ←9秒86 カール・ルイス
≡ ( ┐ノ
:。;  /
             ヘ(; `Д)ノ←9秒79 ベン・ジョンソン(ドーピング)
           ≡ ( ┐ノ
           :。;  /
             ヘ(; `Д)ノ←9秒79 モーリス・グリーン
           ≡ ( ┐ノ
           :。;  /
               ヘ(; `Д)ノ←9秒72 アサファ・パウエル(前世界記録)
             ≡ ( ┐ノ
             :。;  /
                  ヘ(; `Д)ノ←9秒71 タイソン・ゲイ
                ≡ ( ┐ノ
                :。;  /

                        一二 (゚ω゚ )←9秒58 ウサイン・ボルト
                      一二  /    \
                     一二((⊂ /)   ノ\つ))
                       一二  (_⌒ヽ
                        一二  丶 ヘ |
                         一二  ノノ J



70 名前:デフォルトの名無しさん [2012/08/08(水) 20:13:25.03 ]
来月から入る予定の職場でC#を使う予定で、バージョンは2.0なので、
Javaの知識があれば参考書を本番前に読みこめばなんとかなると思ってるのですが、
参入前に覚えておいたほうがいいことって何か他にありますか?

別の言い方をすれば、.NETを勉強するには、何かいい書籍などありますか?

71 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 20:19:37.89 ]
習うより慣れろ


72 名前:デフォルトの名無しさん [2012/08/08(水) 20:26:21.18 ]
あるアセンブリで呼び出し元のアセンブリを末端までたどるにはどうすればいいのでしょうか?

exe -> lib1 -> lib2 -> lib3

という呼び出しの場合に、lib3の関数内で lib2 -> lib1 -> exe それぞれのアセンブリ名を
知りたいのですがよくわかりません。



73 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 20:29:13.49 ]
>>70
2.0とかマジ乙。
まあ、確かにJavaできる人なら2.0はそんな苦労はしないと思う。
とりあえず、Javaにはない、プロパティとかイベントとかデリゲートだけネットで検索すればいいんじゃないかと。

74 名前:デフォルトの名無しさん [2012/08/08(水) 20:44:12.47 ]
>>72
StackFrameを使ってコールスタックを見る
逆ならAssembly.GetEntryAssembly()→GetReferencedAssemblies()とか

75 名前:デフォルトの名無しさん [2012/08/08(水) 20:51:51.40 ]
>>71
何か作ればいいんですかね?

>>73
ありがとうございます。
言語仕様は、仰るとおりデリゲートとか以外は大差ないと思ってるのですが
ただ何かを作る際は、.NETの取り扱いが重要になってくるのではないかと思ったのです

76 名前:デフォルトの名無しさん [2012/08/08(水) 21:03:43.96 ]
>>74
やってみます。

77 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 21:54:31.25 ]
>>75
どういうの作るか分からないと何とも言えないな。
Visual Studioを使い慣れるついでに仕事と関係してそうなチュートリアルをやっとくといいんじゃないか。

msdn.microsoft.com/library/ja-jp/windows/desktop
この辺参考に
・Windows フォームのチュートリアル
msdn.microsoft.com/ja-jp/library/zftbwa2b
・Windows フォーム アプリケーションのコード
msdn.microsoft.com/ja-jp/library/xxwd7aah

78 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 23:48:25.88 ]
using System;
using System.Drawing;
using System.Windows.Forms;

class Program {
[STAThread] static void Main() {
Application.EnableVisualStyles();
Application.Run(new MyForm());
}
}

class MyForm : Form {
Font font;
public MyForm() {
font = new Font("Times New Roman", 15, FontStyle.Regular);
Controls.Add(new Label() {
Text = "Dragon Ball Z",
ForeColor = Color.Red,
Font = font,
AutoSize = true
});
}
}

こんな感じのサンプルを見たんですが、このプログラムはfontのDisposeをどこからも呼んでいませんが、リソースリークの問題はないんでしょうか?


79 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 23:54:49.75 ]
>>77
ありがとうございました。



80 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 00:11:13.12 ]
>>78
アプリを閉じる時に自動で解放してくれる。

81 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 01:30:40.54 ]
参照切れれば実行中でも解放されるけどね

82 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 05:02:44.20 ]
いやたぶん、カベージコレクタが作動した時に開放される、が正解

83 名前:デフォルトの名無しさん [2012/08/09(木) 05:05:43.86 ]
>>78
Disposeはマネージドリソース(ファイルとか)の解放に使う
マネージドリソース(=.Net Framewotkで書かれたライブラリ)の
場合はよきにはからってくれる

84 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 05:48:57.13 ]
自演乙

85 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 05:57:16.36 ]
>>82
それもちょっと違う。
FinalizeメソッドのあるオブジェクトをGCで開放するには最低でも2回のGCが必要。
1回目のGCでは回収されず古い世代に昇格され、Finalize待機キューに追加される。
その際に直接・間接的に参照する全てのインスタンスも道連れにして古い世代に昇格するためメモリの圧迫要因にもなる。

その後別スレッドで逐次Finalizeメソッドが呼ばれ、Finalize待機キューから削除される。

最後にもう一度GCが走ったら終了(世代が昇格しているためGen1/Gen2のGCを待たなければならない)
こういう事情があるから、予想以上に長生きしてしまう可能性がある。

あと「GC.SuppressFinalize(this);」があるDisposeメソッドが実行済みであれば
アンマネージ リソースは解放済みであるとして一連の処理は行われない。

86 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 09:14:01.89 ]
class Form1 : Form {
private Font font;
protected override void OnClose(EventArgs e) { base.OnClose(); if(font != null) font.Dispose(); }


87 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 10:41:25.27 ]
IDisposeを持つオブジェクトのDisposeを呼ばず
GCからのFinalizeに任せるのは基本的にはバグ相当

88 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 10:53:11.90 ]
static void Main() {
Form f = new Form1();
Application.Run(f);
f.Dispose();
}
これで連鎖的にすべてのリソースを解放してくれるからForm派生クラス側はなにも気にしなくていいよ

89 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 11:42:42.31 ]
終了まで短時間で解放をOSに任せるというならともかく、
Form1のメンバにIDisposableがあっても自動では呼んでくれないし
Application.Run中に例外が出たらf.Dispose();すら呼ばれない
usingも知らないのに安易なレスしちゃ駄目だよ



90 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 11:54:49.82 ]
ん?おれはコントロールのDisposeはControlsの要素にも再帰的に呼ばれるって習ったけど?

91 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:03:11.17 ]
FileStreamなんかもControlsに突っ込む勢いか

92 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:13:47.92 ]
さすがにFile関係は必要なとこメモリに読み込んだらすぐ閉じるでしょ
今はControlが生きてる間は保持しておかなきゃいけないリソースをどうするかが問題


93 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:19:54.41 ]
まさに初心者スレ

94 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:37:29.22 ]
Dispose呼ばれるタイミングとか考えないといけないし
disposingとかもなんのために在るのか分からないし大変
C#難しすぎる
C++のがコード見たまま理解できるからわかりやすいね

95 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:43:58.27 ]
スレに常駐している初心者だけど、面倒ならusing使えじゃダメなの?

96 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 12:51:16.10 ]
FormはClose=Dispose
閉じれば全ては終了

97 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 13:06:31.28 ]
↓これでいいですか?

class Program {
[STAThread] static void Main () {
using (Form form = new FormEx ()) {
Application.Run (form);
}
}
}

class FormEx : Form {
Font font = null;
public FormEx() {
font = new Font("Times New Roman", 24, FontStyle.Regular);
try {
Controls.Add(new Label() { Font = font, Text = "Hello, world!", AutoSize = true });
}
catch {
font.Dispose();
font = null;
throw;
}
}
protected override void Dispose(bool disposing) {
if (font != null) {
font.Dispose();
font = null;
}
base.Dispose(disposing);
}
}

98 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 13:22:35.57 ]
>>96
違うわw
マジでこの嘘誰が広めたんだよ

99 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 13:28:05.34 ]
>>90
Form2つでFont共有してるときに片方Disposeするとどうなりますか?
あなたがこのスレで一番頭脳明晰とお見受けしました
どうか教えて下さい



100 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 13:42:01.88 ]
>>99
クラッシュします

101 名前:デフォルトの名無しさん [2012/08/09(木) 13:45:37.57 ]
というかC#は習うもんじゃないだろ
C/C++とかは習うのもいいだろうけどC#くらいは独学でできなきゃ・・・

102 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 15:13:23.60 ]
Disposeしても使用メモリが増え続けるんだよなぁ

103 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 15:35:31.45 ]
そんな時のGC.Collectですよ

104 名前:デフォルトの名無しさん [2012/08/09(木) 16:45:24.42 ]
webbrowserコントロールでフォームにIEを埋め込んでwebサイト表示。
ここで表示したアクセスのログは、
ノーマルIEの「履歴」から見た際、
実行環境のOSやIEのバージョンによって、残ったり残ってなかったりするようですが、
「必ず残す」あるいは「必ず残さない」といった任意の指定をする方法はありますか?

105 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 17:46:57.53 ]
WebBrowserクラスって、需要は多い割に.NETの機能の中では自在に使いこなすのが最も難しい部類よね

106 名前:デフォルトの名無しさん [2012/08/09(木) 18:28:00.18 ]
GCマンセーかと思ってたのに、ちまちまオブジェクトの解放を意識せんといかんて、結局今までどおりC++のが楽でいいわ

107 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 18:45:00.36 ]
理想に裏切られると無性に腹立つよね〜

108 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 18:59:24.85 ]
DisposeしたもGC可能な状態になるだけでメモリ使用量は減らないんじゃない?
問題はGCのタイミングだけど具体的にはいつ発動するの?

109 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:00:20.44 ]
付け焼刃でいいからちょっとは検索してから喋れよな



110 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:04:08.01 ]
管理外(ネイティブのとか)リソースを解放するのがDisposeの目的だから、
ちゃんと作ってあるものならDispose呼んだ時点でメモリ使用料減るよ。

111 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:14:05.04 ]
そもそもメモリを開放するなんてどこに書いてあるのか
msdn.microsoft.com/ja-jp/library/fs2xkftw%28v=vs.80%29.aspx

Disposeで行われるのはDisposeの中に書いてあることだけで
暗黙的にゴミ箱にオブジェクトを置いたりとかしないよ

112 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:17:09.27 ]
>>110
じゃあマネージドなリソースは結局GCで解放されるってこと?

113 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:20:00.90 ]
ネイティブで確保したメモリならそうだけど
>>102の言ってるメモリはマネージドの方じゃね

マネージドのメモリはDisposeしたところで
GC可能になるわけもなく、解放されないから
参照を持ち続けてるなら当然使用メモリは増えていく

114 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:20:45.75 ]
>>113>>110

115 名前:デフォルトの名無しさん [2012/08/09(木) 19:24:54.89 ]
     l-l   ,-、,-、
   / ̄  ̄\   \
  l  iillllllllllllii l l;;;;;l l;;l
  l  llllllllllllllll  l l;;;;;l l;l
  `、 ``´´  /  l;;;;l ll
   `l ̄ ̄ ̄l  ll l/ /丶
      l    l  ノノ l l  l ̄─、
   /\_∠ノノ l´l l l    `l    ____
   (      l  l` 、 l ll ,─、l   /     \    ゴチャゴチャうっせーよ
  /  ___」  l_ノ l  l丶、_/ /   ⌒  ⌒ \   うちころすぞ
  (     ̄ ̄l    _」__⊥、/ /    (●)  (●) \
  )       `-─ ̄  l´ )  |   、" ゙)(__人__)"  )    ___________
  (   ─_____-─´、  \      。` ⌒゚:j´ ,/ j゙ ̄ ̄| | |             |
  `l             l `) /          \  |__| | |             |
   l  ─_____ニ ̄ ̄              \n||  | |             |
   丶_         l ̄)              r.  ( こ) | |             |
      ─____─ ̄ l                 |\ (⊆ソ .|_|___________|
        `、 l     l /          ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_
         丶l___」/



116 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:29:14.04 ]
当ててみろ ハワイへご招待するぜ

117 名前:デフォルトの名無しさん [2012/08/09(木) 19:30:32.59 ]
──────────────────────────────────────────────
  / ̄ ̄ ̄ヽ_    / ̄ ̄ ̄ヽ_      / ̄ ̄ ̄ヽ_ ̄ ̄ヽ_´ ̄ヽ_.    ∠ ̄ ̄ ̄\      / ̄ ̄ ̄ヽ_ 
 _/  /\ノ\) . _/  /\ノ\)     _/  /\ノ\)、ノ\)、ノ\)   ∠       ヽ.    _/  /\ノ\) 
/  // ッ  ッヽヽ /  // ッ  ッヽヽ  ./  // ッ  ッヽヽ ッヽヽ ッヽヽ   /  ̄ ̄ヽ、   i   /  / ヽ  /  ヽ
|  |  (・) (・)  | . |  |  (・) (・)  |   |  |  (・) (・)  | (・)  | (・)  | .  |  ^    ヽ   !   |  |  (・) (・)  |
| C    ゝ   .! .| C    ゝ   .!   | C    ゝ   .!ゝ   .!ゝ   .!   |  、^ ^ |  i.  | C    ゝ   .!
ヽ_フ  ー‐  / .ヽ_フ  ー‐  /   ヽ_フ  ー‐  /ー‐  /ー‐  / .  ヽ  )>   つノ .   ヽ_フ   Д  / 
    `ー──´   .    `ー──´.        `ー──´`──´`──´     `ー──´         `ー──´  
──────────────────────────────────────────────
     ドン         ドン           ド    ド   ドン       ハァイ          イクラ!

118 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:39:26.70 ]
>>112
ほんとに誰も参照してないならね。

GC持ってる言語におけるメモリリークってのは、
どこか意図しないところで参照を持ち続けてしまって、いつまでたってもGC対象にならないオブジェクトを作ってしまうこと。

119 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 19:41:58.82 ]
GC → 不要になったマネージメモリを解放
Dispose → マネージメモリ以外のリソースを解放
Finalize(GC)経由でDispose → Dispose呼び忘れの被害を軽減するためのバカ対策



120 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:04:00.04 ]
Disposeは直接呼ばずにusingでまとめて呼ぶか、try-finallyすること

ideone.com/PBbU9

[NG]
void Dispose(){
  a.Dispose();
  b.Dispose(); //a.Disposeが例外投げたらリーク
}
[OK]
void Dispose(){
  using(a)
  using(b)
  {}
}
[OK]
void Dispose(){
  try{a.Dispose();}finally{
  try{b.Dispose();}finally{
  }
  }
}

※ { using(a){} using(b){} } とusingを分けるとNG

121 名前:デフォルトの名無しさん [2012/08/09(木) 20:31:41.58 ]
比較的涼しいのにどうしたんだ

122 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:38:11.66 ]
>>120
アホな心配する前にnullチェックしろよ

123 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:50:19.44 ]
>>39
識別子に半角括弧は使えないよ。
そもそも、関数だとわけわからんことになるだろ。(w

>>41-42
おお、ボタン群か…、>>46 が言うようにちょっと重いけどいいかも。

>>43
ボタンは単なる例だよ、それぐらい読み取れるようになろうよ…

>>45
VB の配列とかだと、ボタン(複数)(ボタン番号) とかなってしまう (w


124 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:51:41.77 ]
クソども(複数形)

125 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:54:23.00 ]
例えば複数形で、lineをlinesとするなら
単数形はlineじゃなくてalineにしなきゃおかしくね?

126 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:59:08.59 ]
自分では絶対に日本語識別子使わんからどうでもいいけど、「〜〜のリスト」でいいだろ

127 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 20:59:50.54 ]
>>125
英語という自然言語そのものに文句言ってくれ。

128 名前:デフォルトの名無しさん [2012/08/09(木) 21:22:38.71 ]
>>127

         ●●                        ●●
     ● ●   ●                     ●   ● ●           /   \
    ●  ●   ●                     ●   ●   ●        /      \
   ●     ●●                        ●●     ●
  ●                                         ●      _____
  ●                                          ●            /
 ●                 ●●●●●●                 ●         / /
 ●                 ●      ●                 ●        /
 ●                 ●      ●                 ●       ./
 ●                 ●       ●                 ●
 ●                 ●       ●                 ●     / ̄ ̄\
 ●                ●        ●                 ●     |      |
  ●               ●         ●                ●      \    /
  ●              ●         ●               ●          /
   ●             ●          ●              ●           |
    ●           ●●●●●●●●●             ●
     ●          ●           ●            ●            ○

129 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 21:25:12.40 ]
いくつかの辞書でしらべてみたが、alineは動詞しかないようだが



130 名前:デフォルトの名無しさん [2012/08/09(木) 21:30:44.23 ]
>>129

         ●●                        ●●
     ● ●   ●                     ●   ● ●           /   \
    ●  ●   ●                     ●   ●   ●        /      \
   ●     ●●                        ●●     ●
  ●                                         ●      _____
  ●                                          ●            /
 ●                 ●●●●●●                 ●         / /
 ●                 ●      ●                 ●        /
 ●                 ●      ●                 ●       ./
 ●                 ●       ●                 ●
 ●                 ●       ●                 ●     / ̄ ̄\
 ●                ●        ●                 ●     |      |
  ●               ●         ●                ●      \    /
  ●              ●         ●               ●          /
   ●             ●          ●              ●           |
    ●           ●●●●●●●●●             ●
     ●          ●           ●            ●            ○

131 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 21:58:43.43 ]
Disposeが例外投げる仕様ってどうなんだ?
C++使いからすると吐き気がするんだが

132 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:02:13.81 ]
何のDisposeの話?
Disposeはインターフェースのメソッドで例外投げるかどうかは実装によるから何ともいえないよ

133 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:06:00.59 ]
>>131
データベースのセッション閉じるときとかに、どうしても欲しくなるときがあるっぽいけども。

C# のusingだとDispose時の例外拾えないけど、
Javaのtry-with-resources構文なら拾えるぜってJava方面の人が喜んでた。

134 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:07:51.05 ]
多分その用途だとFinalizeとして考えるよりPythonのContextみたいのを考えるべきかもね
Javaはそっちに近いだろう

135 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:11:48.37 ]
そもそもDisposeの例外発生を考慮して書く
というのもいかがなものか
例外出しちゃう実装がヘボイという事では?

136 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:17:39.97 ]
>>122
>nullチェックしろよ
何のために?
ideone.com/4NEDa

137 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:34:13.27 ]
Close事前に呼んどいたらいいじゃん

138 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:34:55.05 ]
自分でDispose書くときは例外を外に出さないようにするけど
よそのライブラリとかのDisposeからは例外が飛んでくる可能性があるものとして扱ってる

MSが「Disposeから例外をスローしてはいけません」って断言してくれと良いんだけど
少なくとも.NET1.1の頃は
msdn.microsoft.com/ja-jp/library/cc406710(v=vs.71).aspx
>場合は、 Dispose は例外をスローできます。
なんて書いてある

2.0以降はこの文が無くなってるけど「常にスローしない」かどうかは
説明の歯切れが悪い

139 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:35:19.67 ]
>>136
どあほう
ideone.com/Z1ePs



140 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:40:54.67 ]
using使えよアホ

141 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 22:43:02.46 ]
>>120に言え






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<106KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef