- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:27 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part23 pc11.2ch.net/test/read.cgi/tech/1200033660/
- 2 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:07:09 ]
- C#, C♯, C#相談室 Part44
pc11.2ch.net/test/read.cgi/tech/1194956418/ C♯, C#相談室 Part34 pc11.2ch.net/test/read.cgi/tech/1162467959/ 【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】 pc11.2ch.net/test/read.cgi/tech/1162950198/ Windows Live プログラミング pc11.2ch.net/test/read.cgi/tech/1188112572/ 初心者のためのプログラミング言語ガイド Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/
- 3 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:47:32 ]
- WPFのRichTextBoxの行間がデフォルトで二行分空いているようなんですが
一行にするにはどうしたらいいんでしょうか
- 4 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:40:25 ]
- これたてなおす?
- 5 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:26:19 ]
- contravariantって何に使うんですか?
MSの説明を見たのですが、基底クラスを引数に取れる利点がよくわかりません
- 6 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:22:03 ]
- >>5
イベントハンドラを一つにまとめられる、じゃ不満か
- 7 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:23:38 ]
- 一般的な反変性の話なのか
デリゲートの話なのか
- 8 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:26:34 ]
- >>6-7
そうですデリゲートの話です 一般的な説明じゃ何使うのかさっぱりで
- 9 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:28:32 ]
- デリゲートっていっぱい関数登録できるものって解釈だとヤバイ?
複数の関数入れて例外が起きたら残りは実行されないのかな 今サンプル動かそうとしてるけど俺あほすぎて時間がかかってる orz
- 10 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:48:14 ]
- >>8
似たようなデリゲート型をたくさん宣言しなくならなくちゃ ならないような状況になれば分かるかと >>9 MethodInvoker mi = M1; mi += M2; mi += M3; mi.Invoke(); void M1() { MessageBox.Show( "Test1" ); } void M2() { throw new Exception(); } void M3() { MessageBox.Show( "Test3" ); }
- 11 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:59:03 ]
- >>10
covarianceなら、登録できるメソッドが増えるから分かるんですが、 contravarianceは減ってしまいますよね? だからわからないんです
- 12 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:59:06 ]
- >>10
ありがと!やってみた 例外出たら止まるんか、超わかったw 感謝します
- 13 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:15:05 ]
- >>11
どっちも増える
- 14 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:22:28 ]
- >>13
基底クラスのほうを渡せてもあんまり意味ないと思うのでよく分からないんです よろしければ具体的な例を教えてください
- 15 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:35:16 ]
- event EventHandler Click;
event MouseEventHandler MouseDown; void Hoge1(object sender, EventArgs e) { } void Hoge2(object sender, MouseEventArgs e) { } Click += Hoge1;//もちろんOK MouseDown += Hoge1;//MouseEventArgsはEventArgsを継承してるからこれもOK //Click += Hoge2; これはコンパイルエラー MouseDown += Hoge2;//もちろんOK
- 16 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:42:49 ]
- >>15
あ、よくわからずイベントハンドラの追加とか書いてましたがなんとなくぴんときた buttonクラス内にはevent EventHandler Click;みたいにきっとあるんだなあ
- 17 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:45:43 ]
- >>15
Click += Hoge2; これはコンパイルエラー これなんでまずいんですか? 文法的に許しちゃいけない理由が見あたらないんですが・・・
- 18 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:11:45 ]
- ヘタレな漏れにはメソッドが複数呼び出されるからって何がいいのかわかんね。
>>10の例だと M1(); M2(); M3(); って書くのがそんなにめんどくさいの? って言いたくなるんだが もっと、こう、デリゲードじゃないとそれは無理だね みたいに納得できる例はないだろうか?
- 19 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:14:12 ]
- 同じくよくわからんなぁ
- 20 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:25:57 ]
- 俺も分からん
識者の人はやくきてくれー><
- 21 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:28:02 ]
- ちょうど今複数呼んでくれて嬉しいのに気づいたのはApplication.Idle
あちこちのフォームで好き勝手に登録できる
- 22 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:42:50 ]
- >>17
引数eにMouseEventArgs型のオブジェクトが渡される保証がない (EventArgs以下ならなんでも入れられる可能性がある) >>18 イベントにイベントハンドラを複数登録できるようにするため >>21 それきちんと後片付けしないとメモリリークするよ
- 23 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:45:31 ]
- >>22
>イベントにイベントハンドラを複数登録できるようにするため 順番って登録した順番に依存するんじゃないの? アーキテクチャ的にまずくね?
- 24 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:49:03 ]
- マルチキャストデリゲートで一番使われるのはイベントじゃないかな。。
メインのオブジェクトがあって、 サブのオブジェクトたちがそれぞれイベント付けたりできるじゃん 親アプリにプラグインがたくさんある場面とか。 親は一発ですべての登録されたイベントを発行できる ちなみに dlg -= M1; みたいにそれぞれ取り外しもできるし dlg = null; でクリアもできる
- 25 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:50:02 ]
- >>23
そうね。むしろ順番に依存するようなのをデリゲートで書くべきじゃない
- 26 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:51:24 ]
- 前から思ってたんだけど、デリゲートって高階関数と違うの?
- 27 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:52:04 ]
- >>26
勉強足りなすぎです。
- 28 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:55:18 ]
- >>27
だまれ小僧
- 29 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:55:48 ]
- >>27
関数を引数にとって、関数内で任意の処理ができるんだから同じじゃないの?
- 30 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:56:12 ]
- >>27
>>1読めカス
- 31 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:56:47 ]
- >>23、>>25
何がまずいの?w いやもちろんまずい場面もありうるだろうが、そんなのむしろ例外的じゃないの? っていうかC#ってVBのカスタムイベントみたいなことって出来ないんだっけ?
- 32 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:57:31 ]
- 高階関数に相当するのはデリゲートじゃなくてデリゲートを引数に取るメソッドの方だろ
- 33 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:00:42 ]
- >>32
ごめんそういうことがいいたかった
- 34 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:07:30 ]
- >>31
addとremoveは定義できるよ raiseはない
- 35 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:14:20 ]
- >>34
ならハンドラを呼び出す順番もその気になれば一応制御できるんだよね?
- 36 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:15:49 ]
- どうのこうの言いつつ、
結果的に>>1が投げた質問で盛り上がってる俺ら
- 37 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:20:08 ]
- >>35
デリゲートオブジェクトは呼び出し対象の情報しか持ってないのに何を基準に並べ替えるの?
- 38 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:24:37 ]
- >>37
俺も具体的な用途があまりあるとは思ってないんだけど、抽象的な可能性の話だよ。 例えば標準のFIFO動作をLIFOに変更するとかさ。
- 39 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:49:51 ]
- 詳しい人ktkr!!
誰かcontravarianceの使い方を教えてくだしぁ><
- 40 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:52:41 ]
- お前は使わなくていい
- 41 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:53:19 ]
- >>40
ここそういうスレじゃないから
- 42 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:09:03 ]
- object型って変数宣言した瞬間にインスタンスが作られるんですか?
くだ質スマンセン
- 43 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:13:35 ]
- 作られないと思う
作られるのはintとかプリミティブ型だけ
- 44 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:28:48 ]
- C#にはプリミティブ型なんてないお
- 45 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:17 ]
- プリミティブ型(と呼ばれるもの)はあるよ
値型の中でも言語に組み込みのものをいう
- 46 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:22 ]
- ボクシングって知ってる?
- 47 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:36 ]
- 本当かよw
- 48 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:39:59 ]
- intはプリミティブ型で、Int32がオブジェクト型じゃないの?
- 49 名前:42 mailto:sage [2008/02/04(月) 20:40:33 ]
- 値型の場合・・・・・変数宣言した瞬間にスタック上にインスタンスが生成される。
参照型の場合・・・変数宣言した瞬間にスタック上に参照情報が生成され、初期値としてnullが入る。 ということですよね? 実は手元の入門書で↓のような例文で、 int hoge hoge = 123; object obj; obj = (object)hoge; 「object obj; で、変数objのインスタンスをヒープ上に生成し、参照情報をスタック上に格納」 とあって混乱したのですが、間違いってことでしょうか?
- 50 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:43:11 ]
- >>49
>変数objのインスタンスをヒープ上に生成 うんここはまちがいだな 参考までになんて本?
- 51 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:46:38 ]
- >>48
全く同じ 言語仕様でも同じと明記されてる
- 52 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:02:05 ]
- >参照型の場合・・・変数宣言した瞬間にスタック上に参照情報が生成され、初期値としてnullが入る。
ちがうよ。
- 53 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:06:03 ]
- 違うってんなら詳しく書け、書かないならレスつけんな
- 54 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:06:05 ]
- 先生ども
コンソールアプリケーションでデフォルトプリンタを取る方法って 普通のc#上には無いんでしょうか? 調べてみると、APIで取る方法とWSHで取る方法がありそうだけど WSHはデフォルトプリンタを取得するサンプルが見当たらないし、 APIだとどうも負け組みかなって思っちまいます。
- 55 名前:42 mailto:sage [2008/02/04(月) 21:10:22 ]
- >>50
やっぱりそうですか・・・。 本は↓です。 visual C#2005パーフェクトマスター (著:金城 俊哉 氏) ttp://www.amazon.co.jp/Visual-2005%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E2%80%95Windows-Vista%E5%AE%8C%E5%85%A8%E5%AF%BE%E5%BF%9C-Server2005-Perfect/dp/4798016098 初めに@ITの川俣氏の「改訂版C#入門」を一通りやって、なんとなく分かった気はしたんですが、 きちんと入門書から始めたほうが良さげだろうと思いまして。 VS2005の使い方も詳しく載ってるお手ごろな入門書を探して、これに行き着きました。 読んでみたら初版なせいか誤字が多い・・・しかもいきなりWindows Formの説明から始まって・・・ もしかして地(ry orz
- 56 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:20:32 ]
- 俺は>>50の言ってる事の方が間違ってると思うなw
- 57 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:22:37 ]
- っていうかヒープだのスタックだのなんてフレームワーク内部の低水準の話は
とりあえずうっちゃっておいても問題ない、というよりそんなの後回しに すべきだと思うよ。
- 58 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:09:24 ]
- >>49
C++とごっちゃになってるようにも読み取れるな
- 59 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:15:18 ]
- >>49
そのライター結構いっぱい本書いてるけどやばい記述多いのかな
- 60 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:16:54 ]
- >初期値としてnullが入る。
入らないよ。
- 61 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:21:39 ]
- >>1乙
- 62 名前:42 mailto:sage [2008/02/04(月) 22:34:56 ]
- そうですか。色々勘違いしてるのかもしれません
とりあえず今は置いといて、本を読み進めようと思います。
- 63 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:41:55 ]
- 値型も宣言しただけでは初期化されないよ。
- 64 名前:42 mailto:sage [2008/02/04(月) 22:58:38 ]
- 結局、宣伝はメモリ確保するだけで、(0やnullなども含めて)何かで初期化されるわけではない、ってことですかね?
というか、当たり前か・・・
- 65 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:01:01 ]
- if(myPS->isString("+")){
if(debug){cout<<"24回"<<endl; } return true; 上の分の->これっていったいなにをしているんでしょう また、if文カッコ内debugの中の変数は0か1かではなく、True Falseでも判定かのうなのでしょうか? よろしくお願いします
- 66 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:05:01 ]
- 猫でもわかるC#のフォーム編ってまだ発売決まってないのかな?
知ってる人います?
- 67 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:11:25 ]
- 著者か出版社に聞けばいいじゃんw
っていうか俺あの著者の本を好む人が理解できん。 あの人低水準のこと = 基本だと思ってないか?w っていうかどうでもいい無駄話が多すぎ。
- 68 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:13:05 ]
- >>67
そうなの? かなり分かりやすく書いてあるから、重宝してるんだが ありがとう、著者にメール送ってみる!
- 69 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:14:41 ]
- 人によるんじゃねえかなぁ、独習シリーズも人によっては結構わかりづらいみたいだし
文体がお堅いっていうのはあるけどお浚いする為にはああゆうのが便利だと思ってる 入門は柔らかい文体の本一冊+Webで、くらいで
- 70 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:38:46 ]
- >>64
俺は宣言するだけじゃメモリ確保すらされないと理解してるんだが。 だって、一度も代入してないのをいきなり使おうとすると >未割り当てのローカル変数 'name' が使用されました。 って出るじゃん
- 71 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:45:49 ]
- 独習シリーズって教科書には向かないけど、
自分でコツコツ読むには何でも書いてあるいい本だよね
- 72 名前:65 mailto:sage [2008/02/04(月) 23:51:02 ]
- 分かる人いたらお願いします・・・
- 73 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:01:03 ]
- このスレはC#のスレ。それC++じゃないの?
- 74 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:05:59 ]
- >>72
ポインタ演算子じゃないの?
- 75 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:14:14 ]
- アロー演算子って呼び方が一般的じゃないかな
- 76 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:14:39 ]
- そだね
- 77 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:21:42 ]
- >>未割り当てのローカル変数 'name' が使用されました。
>って出るじゃん 英語のメッセージは Use of unassigned local variable 'name' なんだぜ? allocateじゃなくてasign
- 78 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:29:57 ]
- 紛らわしいw
- 79 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:35:38 ]
- >>54
dobon.net/vb/dotnet/graphics/defaultprinter.html これは調査済み?
- 80 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:43:11 ]
- デリゲートとかクロージャみたいな難しい概念を
実際のコードに使ってる人なんているの?
- 81 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:44:40 ]
- 難しい(笑)
- 82 名前:デフォルトの名無しさん [2008/02/05(火) 00:45:00 ]
- 難しくないから普通に使ってるだろ。
Cでポインタが難しいと言ってるのと変わらない。
- 83 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:46:37 ]
- 言語マニアしか分からなくないですか?
デリゲートとかクロージャがなくて困るケースってあります?
- 84 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:48:35 ]
- .NET Fxはほとんど使えなくなるだろ。
- 85 名前:デフォルトの名無しさん [2008/02/05(火) 00:49:33 ]
- イベントドリブンな処理
- 86 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:49:38 ]
- クロージャはともかく、デリゲートはVSでWindows.Formsをポトペタすると使いまくってるだろ。
- 87 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:50:24 ]
- そうなんか(´・ω・`)
ポインタと違って無くても困らない程度のもんだと思ってたんだが
- 88 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:52:02 ]
- 関数ポインタの代わりがdelegateなわけで…
- 89 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:53:22 ]
- MDIのアプリを作ろうとしていますが、
親のMDIフォームにToolStripContainerをDockStyle.Fillで張り付けた場合、 MDIの子ウィンドウが表示されなくなりますが、 これを表示させるようにするための解決法はございますでしょうか? Excel2003のようなアプリを目指しています。
- 90 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:56:02 ]
- クロージャはまぁ無くなっても困らんなw
- 91 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:09:05 ]
- ArrayListで作る配列って、多次元配列に出来るの?
- 92 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:31 ]
- ArrayList<ArrayList<string>>
- 93 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:54 ]
- ArrayListにArrayList突っ込めば
- 94 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:57 ]
- できるよ
- 95 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:25:00 ]
- そうか、出来るのか!
何か難しそうだけどやってみるよ!!ありがと!
- 96 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:58:08 ]
- コスト的に死ねると思うのは俺だけでいい
- 97 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:08:08 ]
- 4次元配列とか案の?
- 98 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:50:20 ]
- お前は何を言っているんだ
- 99 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 07:58:30 ]
- 任意のN次元配列を動的に定義できるの?
- 100 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:18:51 ]
- おまいの本当にやりたいことは配列の定義とかそんなちっぽけなことじゃなかったはずだ
|

|