1 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:13:21 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ふらっとC#,C♯,C#(初心者用) Part55 pc12.2ch.net/test/read.cgi/tech/1265288563/1 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/1 VB.NET質問スレ(Part33) pc12.2ch.net/test/read.cgi/tech/1263738929/1 C++/CLI part3 pc12.2ch.net/test/read.cgi/tech/1206447234/1
409 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:32:29 ] Form1のボタンを押すと、Form2のテキストボックスにテキストを移すのってどうすればいいですかね? DOBONさんのTipsを見て Form2 f = new Form2(); f.ShowDialog(this); f.Dispose(); な感じでForm2をForm1に所有させてやってるんですが 他にやり方とかないでしょうか?
410 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:39:31 ] >>409 クリップボードを中継する
411 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:42:07 ] >>409 それでできるのに何が問題なのかが 重要なんだと思うが・・・・
412 名前:デフォルトの名無しさん [2010/03/10(水) 19:42:12 ] 同じ説明をしたなあ Form2にアクセス用の関数を作って公開する
413 名前:デフォルトの名無しさん [2010/03/10(水) 20:09:20 ] ボタンとテキストボックスは自分で配置してくれ Form1.cs codepad.org/8UBu8se8 Form2.cs codepad.org/ErnDt7Yc
414 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:39:55 ] >>409 テキストボックスのModifiersプロパティをPublicにする
415 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:13:29 ] >>409 状況が分からないのでどういう方法が適切か何ともいえないけど、 Form1とForm2の間に相互に依存関係を持たせたくないのなら、 第三の仲介者役のオブジェクトを間に入れる。 単に依存関係を逆転させたい(Form1はForm2を知るべきでないが、Form2はForm1を知っててもいい) だけなら、イベントを使ってもいい。 (1) Form1はボタンがクリックされたらテキスト伝達のためのイベント(仮にTransmitTextイベントとする)を発生させるようにする (2) Form2がForm1の参照を持つ (3) Form2にForm1のTransmitTextイベントのイベントハンドラを書いて、その中でTextBoxを更新する。 こんな感じ。
416 名前:409 mailto:sage [2010/03/10(水) 22:23:46 ] Form同士で受け渡しがしたかった理由は Form1からForm1所有でForm2とForm3を出した際に Form2の情報をForm3で取得したいときに所有しているのはForm1なので 受け渡しが出来ないのでどうすればいいのか?と考えていました。
417 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:39:53 ] >>416 それは設計がおかしい と普通の人は考える
418 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:43:56 ] オブジェクト指向の世界は縦割りなんだよ 横の繋がりは必要としない 絶対的な権力を持つボスがすべてを操る
419 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:48:05 ] もう全部static変数にすればいいよ そんなレベルで頭捻ったって結果は同じだからとりあえず動けばいい どこが悪いかはそのうちわかってくる
420 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:02:07 ] 最初はform2で処理したデータをform1で一旦取得してから form3に渡すのは不自然だったり、非効率的に思えるかもしれないが 両方のformで利用するデータはform1で管理したほうが 実は安全で効率的なのだ もしform3がform2とのやり取りだけしかしないなら form2の子としてform3を宣言すべき
421 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:10:58 ] それならForm1にも直接データは持たせないべきだろ データを保持するクラスを別に作って持ちまわる形にする
422 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:12:54 ] MVCしろよ
423 名前:409 mailto:sage [2010/03/10(水) 23:24:17 ] みなさんありがとうございます。 参考にしてC#をちょっとずつやろうと思います。
424 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:57:04 ] >>423 まあ、Formの本来の役割は入力と表示だってことは理解した方がいいよ。 つまりFormの仕事は、ユーザーからの入力を何か別のオブジェクトに伝達したり、 別のオブジェクトからのデータを表示するのが仕事。 PCでいったらモニタやキーボードに相当する部分。 だからそんな部分同士がデータを直接やりとりするのは本来おかしい。 キーボードとモニタの間が配線でつながっててデータやりとりしたらおかしいでしょ?w キーボードはPCに対して入力データを送るだけ。 モニタはPCからの信号を表示するだけ。 GUIのプログラムも基本同じような考え方で作るべきだ。 Form1はオブジェクトhogeにユーザから入力があったことを伝達するだけ。(ボタンClickイベントハンドラで hogeの何かのメソッドを呼び出す) Form2はhogeからの情報を表示するだけ。(hogeからのイベントでTextBoxを更新する) 一見面倒だけどこれが結局シンプルで標準的なやり方。
425 名前:409 mailto:sage [2010/03/11(木) 00:01:00 ] >>424 なるほど。 もう一度入門書などをちゃんと読みなおしてみます^^;
426 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:01:53 ] 複数のFormから一つのオブジェクトにアクセスする方法がわからない
427 名前:デフォルトの名無しさん [2010/03/11(木) 00:03:26 ] >>426 アクセス用のクラスでも作ってそのインスタンスを教えておけばいいんじゃないの? 参照型の強みだよ
428 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:11:10 ] >>400 BでInterlockedをどう使うわけ? せいぜいvolatileじゃないか?
429 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:15:08 ] >>400 Aだって値の更新をどういう風にやるかによる。 読み取りと書き込みを合わせてtアトミックにやりたいならInterlockedとかがいるが、 条件によってはただ書き込むだけでいいかもしれない。 もしくはvolatileにするくらいでいいかもしれない。 @は普通ロックが要るが、それはそれとしてListよりQueueの方が向いてないか?
430 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:19:37 ] >>422 最近多い、GUIでプログラム作らせる初心者用入門書の弊害だと思う
431 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:21:01 ] だってMSの旧来のコントロールだとコントロール自体がデータ持ってる場合が多いんだもんよォォォォォ
432 名前:デフォルトの名無しさん [2010/03/11(木) 13:22:50 ] WPFのバインドのようにできれば分けやすいんだけどな あれできないと小規模な開発ならMVCの境目を考えるのあほらしくなるもん 大きくなればMVCしようかとも思えるけど
433 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:20:00 ] リストボックスを表示中に上下キーを押すと選択中の項目が変わるが、文字を入力するとテキストボックスに文字が入力されるようにしたいんだが、その方法がわからない。 実現する方法があったら教えてほしい。
434 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:47:57 ] >>433 つ[ComboBox]
435 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:08:57 ] >>434 IDEでよくある入力補完を実装したいので、それはNG。
436 名前:デフォルトの名無しさん [2010/03/11(木) 19:11:30 ] 入力アクションが何かしらんけど入力アクションを検知したらリストボックスの 一つの項目と同じサイズのテキストボックスを表示して制御をそこへ移して そこから制御が離れたらテキストボックスの中の文字をリストボックスへ反映すればいいんじゃないの?
437 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:35:38 ] >>436 つ netbeans.org/features/ide/editor_ja.html こういう風にしたいので、その方法だとダメ。
438 名前:デフォルトの名無しさん [2010/03/11(木) 19:38:11 ] ああいいたいことわかったわ リストボックスはあくまで候補の表示だけな サジェストの候補表示とかをやりたいのか アクティブにならないForm作ってそこへリストボックス張って候補だしゃいいだろう 半透明表示もできるぞ
439 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:32:55 ] >>438 ためしにやってみたが、リストボックスにフォーカスを合わすと、インクリメンタルサーチができなくなって…エディットぼっくにフォーカスを合わせたままだと、リストボックスの選択項目をキーボードで操作できなくなって…となった。 フォームの初期化時 this.autocomplete_box.Visible = false; this.Controls.Add(this.autocomplete_box); 文字を入力した this.input_word += e.KeyChar; int index = this.autocomplete_box.FindString(this.input_word.ToString()); if (index != ListBox.NoMatches) { Point current = this.GetPositionFromCharIndex(this.SelectionStart); this.autocomplete_box.SelectedIndex = index; this.autocomplete_box.Location = new Point(current.X, current.Y + this.Font.Height); this.autocomplete_box.Visible = true; }
440 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:07:45 ] 普通にテキストボックスをオートコンプリートにしたいわけではないんだよな? Googleサジェストのような挙動ではなく、インテリセンスのような挙動にしたい つまり、 ・補完するのはテキスト全体ではなく、その一部(単語など) ・テキスト入力時には候補の絞込みは行わないで、選択項目のみを変更 ということに相違ないか?
441 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:08:45 ] >>440 それで間違いない。
442 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:33:59 ] それでは回答どうぞ
443 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:52:42 ] なら、438で問題ないな > リストボックスにフォーカスを合わすと、インクリメンタルサーチができなくなって… リストボックスに、必要な全てのイベントハンドラを設定すればいい 例えば、 文字はそのままテキストボックスにスルー 上下は選択変更 左右はテキストボックスの方のカレット移動 Enterは確定(Tabも?) とか自分で決めて適当に処理すればいい
444 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:58:30 ] えらそうな質問者に対して、ちゃんと答えるなんてえらいやつだな。
445 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:01:18 ] >>444 オレも思ったw
446 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:44:43 ] >>443 なるほど。 そうすればいいのか。 答えてくれてありがとう。
447 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 03:59:56 ] ComboBoxのテキスト部分をユーザーからの書き込みをできないようにするには DropDownStyleプロパティをDropDownListにするといいというのでやってみたところ たしかにユーザーからの書き込みはできなくなりましたがComboBoxの見た目がTextBox調からButton調になり Textプロパティをプログラム内部でも書き換えられなくなりました しかし「DropDownListにするといい」と見つけたいくつかのサイトではそのようになってる様子は見られません これはVisual C# 2008の仕様か何かなのでしょうか?
448 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 05:05:54 ] 何も言えなくて・・・夏
449 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 05:09:03 ] そういうやり方じゃなくてユーザーからのテキスト入力イベントが 発生したときに、入力を受付なくさせるメソッドか何かがあったはず 忘れた
450 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:03:32 ] C++と比べるとC#は何がダメなんでしょうか? GCがあったり色々便利な機能が付いてると思うのですが、ずいぶん叩かれてる印象を受けます TRUEが1じゃなかったりするのが、あまり好かれないとかそんな感じでしょうか?
451 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:07:26 ] >>450 アンチが多いのは人気の裏返しだよ。 ほんとに悲惨なのはユーザーからの無反応。 TRUE が 1 じゃないとか、たたくポイントじゃないというか、 むしろ TRUE が 1 な方がたたくポイントだろ。
452 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:10:06 ] >>451 ありがとうございます。C#使いたくなってきました TRUE=1等の暗黙の型変換は悪い意味での慣れでしょうか、 個人的にはちょっと残念なのです
453 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:13:22 ] 別に言語ごとのプログラミングパラダイムに従うことは悪いことじゃないよ C#に使うならC#の作法に従うべきではあるが これは逆も然り
454 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:16:29 ] 1番はC#がC++のスーパーセットだと思って使い始めて落胆するパターンな。 さすがに最近は減ったけど。
455 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:29:47 ] C#実際そんなに叩かれてない 見向きもされてない所がある あまりに注目されてない不運な言語だ
456 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:32:37 ] ネイティブコンパイルされないのが唯一の欠点だろう。 あとは完璧
457 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:33:56 ] C#はいいとこ取りっていうか中途半端な感じだな でもC#覚えれば、他の言語にも馴染みやすいと思うし 初心者向きな言語だと思う すくなくともVB覚えるよりはいい
458 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:42:06 ] そこそこのことするならそこそこのことが出来るC#が「完璧」だろうが、 難しいことするなら難しいことができないC#が「中途半端」になる 見方次第だな
459 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:52:08 ] .net対応のマイコンも出たしもう完璧だろう
460 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:56:59 ] >>459 なんか興味ある 詳しく
461 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:04:26 ] C# 5.0でコンパイラ、メタプログラミング関係整備されて完璧。
462 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:24:30 ] もう一度言うが、完璧。
463 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:26:02 ] しつこいようだけど後もう一回だけ・・・完璧。
464 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:29:46 ] 完璧さが周知されてない所がたまに暇。
465 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:36:04 ] >>460 .NETベースのマイクロコントローラー、FEZ Mini jp.makezine.com/blog/2010/03/hands-on_with_fez_mini_a_net-powere.html
466 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:05:45 ] FALSEが0以外なら全力で叩くがTRUEが1以外って処理系によっては昔から普通にあるし その程度で動かなくなるようなコードを書く方が悪い
467 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:08:14 ] しかし最近はPythonに人気を取られがちのようだが どうせ最速の言語じゃないんなら コード記述が短くて、動的なほうが手軽というイメージ smallbasic、Ironpythonでますます中途半端な存在になったな
468 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:17:56 ] >>465 サンクス おもしろそうだ!!! おれもやってみてぇ
469 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:42:31 ] 人気ねぇw
470 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:48:45 ] プログラム板の勢いみると 言語ではC#が一番あるけどな
471 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:31:19 ] 裾野だけは広いからな
472 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:53:07 ] 敷居は低いが仕事は少ない
473 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:55:50 ] まだjavaなのか
474 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:59:14 ] そろそろマ板でやれ
475 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:34:50 ] using(StreamReader sr = new StreamReader(ws.GetResponseStream(), Encoding.GetEncoding("Shift-Jis"))) { boardListHtml = sr.ReadToEnd(); sr.Close(); ←これいらないですよね? }
476 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:39:58 ] うん
477 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:48:33 ] >>472 君は・・・世界が狭いようだな
478 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:54:40 ] >>477 一般庶民の話をしてるんだよ
479 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:28:17 ] C#はヴィジュアルスタジオ使うと WindowsFormアプリケーションってやると とっぱじめ最初にFormを継承したForm1が出てきて それにボタンを貼り付けて、「はじめてのC#」とかいうメッセージボックスを出す これだけのプログラムでも継承、カプセル、ポリモーフといったオブジェクト指向を使ってるな 初心が意識せずにオブジェクト指向できるようになってる言語?
480 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:31:33 ] 日本語でOK
481 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:32:05 ] デザイナが勝手にやってるだけで全く使ってないだろ
482 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:32:30 ] むしろ日本語がNGの人
483 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:36:51 ] Visibleのtruefalseかちかちやるだけでメモリ食うのはなんで?
484 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:39:35 ] どうして「メモリ食う」と分かる? その観測方法がオカシイ可能性は疑ってみた?
485 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:49:48 ] visual studioでbutton1とlabel1と↓作って private void button1_Click(object sender, EventArgs e) { if (label1.Visible == true) { label1.Visible = false; } else { label1.Visible = true; } } Windowsタスクマネージャ開きながらbutton1かちかち押すとメモリ使用量が増えるんだが
486 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:04:03 ] 再現できなかった。
487 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:04:35 ] 製作中のアプリの一部をクラスライブラリで分離する場合 完全に別プロジェクトでアプリプロジェクト->ライブラリプロジェクト(デバック) の参照をつけてやったりするのかな?
488 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:26:21 ] >>472 ばかだなぁ。なければ作ればいいじゃないか。 無知なお客さんを言いくるめるくらいワケないだろ。 ‥‥ほんとうに生産効率はいいんだから。
489 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:37:42 ] >>487 別プロジェクト以外ってことは、1つのプロジェクトでexeとdllの両方を出力とか? 普通の方法ではそんなことできないと思うけど
490 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:54:08 ] 普通はひとつのソリューションでやるわな。
491 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:02:36 ] >>487 普通そうでしょ。 でもプロジェクト参照は循環参照不可だから、、 複雑なプログラムになってくると案外プロジェクトの切り分けが難しかったりする。 >>489 アセンブリが別とは言ってないんじゃない?
492 名前:487 [2010/03/12(金) 22:26:45 ] >>491 最終的にアセンブリを一つにするかexeとdllに分けるかで 変わってくる感じですかね
493 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:37:35 ] >>492 internalアクセス修飾を有効活用したいから、という、 人によってはちょっと不純に見えるかもしれない動機の場合もあったりする
494 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 02:28:12 ] 今独習C#を一通り読み終わって C#でWEBアプリケーション作りたいのですがお勧めの本があれば教えてください ttp://ascii.asciimw.jp/books/books/detail/978-4-7561-4999-2.shtml 上記URLのようなものはあるのですがどうも評判が悪いので・・・ また関連書籍にASP.NETが多いですが、ASP.NETの本≒WEBアプリケーションの本という認識であってますか?
495 名前:デフォルトの名無しさん [2010/03/13(土) 02:33:26 ] WEBアプリケーションって自分ブラウザとかじゃなくブラウザ上で動くプログラムということでOK?
496 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 02:39:23 ] >>495 自分ブラウザです IEやfirefoxの簡易版を作りたいです。
497 名前:デフォルトの名無しさん [2010/03/13(土) 02:42:44 ] それだったらc# WebBrowserでぐぐれば基本的なことは本買わなくてもできるよ
498 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 03:25:09 ] >>496 それってデスクトップアプリというんだよ WEBアプリはブラウザをクライアントとするものだから まったく別物
499 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:07:21 ] たとえば、何の前置きもなしに「WEB開発」って言われたら、 WEBアプリを作るって解釈しておk? 面接でそういう質問があったんだけど。
500 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:23:41 ] >>499 そうだね JAVA,javascrpt,HTTP,Perl,RCFの知識があるのかってことになる
501 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 05:35:47 ] どこから突っ込めば
502 名前:デフォルトの名無しさん [2010/03/13(土) 05:52:56 ] WEB開発って面接官もへぼいな WEBに関係することって ・クライアント(webブラウザー)そのもの ・クライアント上で動くスクリプトなど ・サーバー側 大きく分けてもこんな感じだしなあ ものすごく範囲は広いよ さすがに最近はhttpのプロトコル処理関連まで作るなんてのはないだろうけど
503 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 06:13:25 ] その面接官は多分ホームページ作ったことあるか聞いてたんじゃないかな
504 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:27:23 ] いいかげんスレチだけどwebってwwwの略なんだから 全てクライアント上で動作する物はwebアプリとは言わないだろ基本的に その面接官もwebを理解してるのかあやしいがweb開発なんて言ったら 重箱の隅から隅まで含まれるぞ
505 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:30:09 ] phpくらいしかできないよ
506 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:57:46 ] 十分だよ
507 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:00:49 ] つまりズブの素人ってことだよ 言わせんな恥ずかしい(AA略
508 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:18:40 ] こんなスレみるんじゃなかった・・・ ヤホーの知恵袋にでもいってくりゃよかった なんかゴメン
509 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:27:00 ] つうか、たまたまだろ 平日に仕事しながら見てるやつて結構とレベル高いと思うけど?
510 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:34:33 ] 日本語のレベルが低いですね
511 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:37:26 ] ちっ、うっせーな
512 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:38:33 ] うっ、ちっせーな
513 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:43:30 ] ちっ、ちっせーな
514 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:37:35 ] C#だとCの供用体みたいなのをつくるときって unsafeつかわないと無理?
515 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:40:49 ] StructLayoutとFieldOffsetだけで一応作れるけど 今時共用体とかないわー
516 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:57:01 ] 日本語のレベルが低いって、ふだんはC#で他人と会話しているのか?
517 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:03:51 ] は?
518 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:25:17 ] ここは普段他人とはなさずに一日中PCの前でプログラム組んでるオタが来る場所だから 日本語をまともに話せない人がいても仕方ない
519 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:37:35 ] >>516 if (This.Seiyoku >= 95) { This.Hand.GetTimpo(); for (int i = 0;i < 2000;i++) { This.Hand.Up(); This.Hand.Down(); } this.Say("あああああ───────"); }
520 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:49:42 ] MessageBox.Show("ふぅ・・・");
521 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:38:49 ] 2000も要らんだろ。
522 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:50:02 ] 細胞が壊死するぞ。
523 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:50:47 ] C#を猛プッシュしてるキチガイうぜー
524 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:51:42 ] おまえらは4でじゅうぶん
525 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:15:33 ] C#はWindowsのGUIアプリを作るっていう非常に限定された状況でのみ CやC++より優秀
526 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:18:48 ] あと初心者にはかなり使いやすい
527 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:49:14 ] >>519 ウィルスコード確認しました
528 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:07:20 ] >>526 それはC#のメリットというよりVC#環境限定の話だろ 最初にインテリセンス体験したとき開発者マジキチって思った
529 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:14:36 ] スニペットのせいで構文覚えられない初心者が多発、という弊害がもれなく付いてくるけどなw
530 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:15:01 ] ただの補完なら大概の言語で使えるけどね
531 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:16:54 ] 構文を覚える必要はない
532 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:24:03 ] 構文は自然と覚えるものだと思うが
533 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:36:34 ] 構文と言うよりも単語が覚えれないかな
534 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:36:59 ] スニペットなんてただの初心者騙しの鬱陶しい機能にしか思えないけど、 あんなの活用してる人いるのか っていうかPEZみたいな名前が気に入らん。 ラムネ菓子かっ
535 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:44:48 ] >>534 PEZさんディスってんじゃねー
536 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:51 ] 楽できるなら楽したらいいと思う いまさら a += 3 を a = a + 3 って書きたいひとはおらんじゃろ
537 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:58 ] プロジェクト内だけのスニペットは便利だったりする
538 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:53:09 ] >>536 おまえはおれを怒らせた
539 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:19:07 ] 昔はprop->のproperty作成とかやってたな。 private変数作ってから、crtl+r, ctrl+eのリファクタの方が便利だと知ってからは使わなくなった。
540 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:33:49 ] よく入力するパターンは自分で定義して使ってるな dw: Debug.WriteLine( ); eh: (_sender, _e) => { }; とか
541 名前:デフォルトの名無しさん [2010/03/13(土) 20:53:42 ] >>475 なにこのコード なんでusing使ってるの? 俺がC#触ってない間になんかあったのか
542 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:55:57 ] どれぐらい使ってなかったんだ
543 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:59:54 ] IDisposable
544 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:00:20 ] >>541 button1.Click += (sender, e) => MessageBox.Show("こんなのもできるよ");
545 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:01:47 ] using構文はC#1.0当初からある構文だが 強いて言うなら>>541 が触ってない間に>>541 からC#の記憶が飛んだんじゃないか
546 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:50:11 ] 最初から知らなかっただけだろう
547 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:00:41 ] 2.0からだと思ってた俺
548 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:03:58 ] >>512 (´;ω;`)
549 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:10:03 ] 2.0からだろ
550 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:12:35 ] >>544 ラムダ士気って便利だよね。
551 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:14:10 ] ちょっと教えてください 文字列が入ったリストデータをTreeViewに表示する場合 TreeViewを継承した自作クラスにリストデータを直接読み込んで表示するようなメソッドを作るべきか TreeViewのNodesに追加する処理をForm1でするべきか どちらがいいのでしょうか?
552 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:17:31 ] その程度なら後者
553 名前:デフォルトの名無しさん [2010/03/13(土) 23:23:28 ] >>551 どっちでもいいんじゃね? なんでもかんでもFormに書くのもあれだし継承してあれこれ作れるならそういう練習を兼ねて別途設計してもいいだろうし
554 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:28:22 ] 練習も兼ねて自作クラス作ってみようと思います ありがとう
555 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:10:52 ] うむ
556 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:31:22 ] フォームアプリで処理内容を表示したいのですが Form1の処理内容ならtextboxなどに表示すればいいですが form1でインスタンス化したオブジェクト内部の処理内容を表示したい場合 どうすればいいでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:54:06 ] オブジェクトに処理状況を返すメソッドを作って Form1から非同期で動かして定期的に処理状況を調べる
558 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:39:47 ] 非同期・・・ちょっと難しそうですね・・・ 諦めます
559 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 09:42:11 ] なんでも試してみるもんさ と、偉大なゲイは言いました
560 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:00:47 ] もしくはそのオブジェクトに textbox なりを教えてあげて、 オブジェクト内部の処理が終わったら textbox に直に書き換えてさせてしまうとか。 他との兼ね合いがないなら、自分はそうする。
561 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:01:51 ] BackgroungWorker使えばそこまでめんどくもないと思うんよ
562 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:11 ] スレッドの扱いやすさ考えるとBW使うのめんどくさくてね・・・
563 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:44 ] >>556 >>558 のように言ってるって事は、恐らくその「オブジェクト」の処理は UIと同じスレッドで動くってことなんだろうから、 それなら単純にその「オブジェクト」のクラスに〜Changed系のイベントを実装して、 Formの方はその〜Changedイベントで表示内容を更新すればいいんだよ。 それが面倒で、かつ更新するコントロールの数が少ないなら、 Formにタイマくっつけてタイマのイベントで表示内容を更新してもいい。 何か難しく考えすぎてないか?
564 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:09:23 ] ですね
565 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:45:49 ] >>563 >>560 なるほど、イベントは自前で作った事ないからやってみてもいいかも 簡単なのはtextboxの参照渡すのがいいですね 検討してみます ありがとうございました
566 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:59:28 ] なんか初心者が間違った知識を覚えるのをほっとくのも気が引けるんで一応突っ込むけど、 >簡単なのはtextboxの参照渡すのがいいですね こういうやり方は普通は邪道とされている。 馬鹿だと思われたくなければやっちゃダメ。 これがダメな一番の理由はそんなことをしちゃうとそれぞれのクラスの 役割分担が明確じゃなくなるから。 TextBoxの更新を担当するのは、その持ち主であるFormであるべきだとは思わない? 他のオブジェクトがTextBox更新しちゃうのなら、Formの役割って一体何よ。
567 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:08:52 ] それは設計によるとしか言いようがない。
568 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:21:32 ] ただ機能的要件が果たせさえずればOK、と思いつくままにTextBoxの参照を 渡すような馬鹿で間抜けな行為を「設計」とは言わない。
569 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:22:43 ] まぁそれをいっちゃうとMVCとかObserverとか面倒なので
570 名前:デフォルトの名無しさん [2010/03/14(日) 14:29:27 ] まあtextboxもクラスだからついついやりがちだけど所詮はGUI部品だからなあ 一番いいのはデリゲートだっけ?
571 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:34:01 ] 563の言うようにするかなあ その処理オブジェクトは、進捗を公開するかしないかを決め、 GUIオブジェクトは、それを見るか見ないか自由にする
572 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:50:30 ] 前に別スレッドからメインのFormに貼ってあるtextboxにログを吐く方法を聞いたときに 作ったのならあるわ Form1.cs codepad.org/1Hh4f1Od hoge.cs codepad.org/qwrtJJFk hoge.csは自分でクラスを作ってコード張ってくれ Form1.csの方はtextboxをDock=Fillで張ってスクロールバーを表示しておけばいいか あとshownで表示させてるのでイベントハンドラ追加してからコード貼ってくれ
573 名前:デフォルトの名無しさん [2010/03/14(日) 14:51:23 ] hogeクラスはスレッド起動部分を書いてないけど移植前の方では動いてるので問題ないと思う。
574 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:06:30 ] PInvokeでもつかえば
575 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:08:59 ] P無しで
576 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:10:45 ] ほうピンボケを
577 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:13:03 ] 関数名をhogehogeにするつもりがhogehoeになってたw hogehoeは本当はスレッド起動をさせる関数なんだけどその辺は端折ったw
578 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:23:18 ] 訂正版 codepad.org/9LRQpsMq
579 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:56:25 ] codepad.org/xOdJsJie こんな感じで遊んでたんだがApplication.DoEvents入れて経過を分かるようにすると スレッドの動作が変わった感じなんだが何が変わったんだろう。 Application.DoEvents無し->適度に3スレッドの出力が混じる Application.DoEvents有り->最初の一回だけ起動した順に結果がでるけど2回目以降は後で起動したスレッドだけ?やってる感じ
580 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:58:05 ] 100x3は多いので10x3に絞ってみた Application.DoEvents有り [ 0000 ] 0 [ 0001 ] 0 [ 0002 ] 0 [ 0002 ] 1 [ 0002 ] 2 [ 0002 ] 3 [ 0002 ] 4 [ 0002 ] 5 [ 0002 ] 6 [ 0002 ] 7 [ 0002 ] 8 [ 0002 ] 9 [ 0001 ] 1 [ 0001 ] 2 [ 0001 ] 3 [ 0001 ] 4 [ 0001 ] 5 [ 0001 ] 6 [ 0001 ] 7 [ 0001 ] 8 [ 0001 ] 9 [ 0000 ] 1 [ 0000 ] 2 [ 0000 ] 3 [ 0000 ] 4 [ 0000 ] 5 [ 0000 ] 6 [ 0000 ] 7 [ 0000 ] 8 [ 0000 ] 9
581 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:43:05 ] あるインスタンスが同じクラスの別のインスタンスに影響を与えるのは悪いことですか?
582 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:45:05 ] たとえば、Form1の中にButton1とButton2があったとして Button1.Clickを、Button2のサイズとか名前とかを変える みたいなイベントにしたら、Button1はButton2に影響を与えてるけど これっていけないことなの? インスタンスはすべて独立させたほうがいい みたいなこと書いてたんだけど
583 名前:デフォルトの名無しさん [2010/03/14(日) 17:47:20 ] >>582 ケースによるんじゃない?
584 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:57:33 ] そんなこと真面目に聞いてたら無効にしたボタンは二度と有効にできないな どこでそんなこと言ってたのか興味あるから教えて欲しい
585 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:05:47 ] Button を継承した Button1 のメソッドで Button2 をいじったらだめだろうけど 実際いじってるのは親の Form なんだから、 Button1 が Button2 に影響を 与えてるわけではない
586 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:10:43 ] >>556 の話はインスタンス化したオブジェクト内部なんで 関係としては>>572 >>578 >>579 あたりのコードのような状態だからなあ buttonが直接外の何かに影響するってことは標準ではなくて イベントハンドラを登録して処理は別途書くよね
587 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:12:54 ] 「影響」というのがメソッド呼び出しの事をさしているのであれば、(それ以外にありえないと思うけど) 影響を与えるなというのはメソッド呼び出しするな、と同義になるわけで、 じゃあprivateなメソッドだけを持つ自律的なクラスだけでコードが書けるのかと。 まあ、要するに愚問過ぎるw >>585 いや意味わからないしw
588 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:48:37 ] はぁ〜い ちゃぁ〜ん
589 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:48:40 ] アプリ起動時にフォームとフォーム内のコントロールが ちゃんと表示されてからプログラムが実行されるようにしたい shownでもフォームが表示されただけでコントロールが ちゃんと表示されない状態で実行されるのですが なにか良い方法はないでしょうか?
590 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:52:11 ] ない。
591 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:54:39 ] Application.Idleが近いかねぇ
592 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:54:51 ] ままっままま、まじっすか
593 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:58:10 ] あるあるよ
594 名前:デフォルトの名無しさん [2010/03/14(日) 19:00:40 ] WebBrowserだとnavigatedイベントなんてあるけどそれと似たようなのって聞いたこと無いな
595 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:03:10 ] 普通はフォームが表示される前に 事前処理を終了させるのかな 他の言語でもこんな感じ?
596 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:04:28 ] 言語の問題じゃなくてWindowsの問題だと思うけどなw
597 名前:デフォルトの名無しさん [2010/03/14(日) 19:07:45 ] Formが表示されてからしばらく何か動くのであればshownのタイミングで Form全体のコントロールを触れないようにして処理した後ユーザーが触れるようにするとか ちなみにやり方に普通はないよ ユーザーがフリーズしたんじゃないの?とか 表示されたので触っていいと思ったけどなんか触ったらおかしくなった・・・とか そういうのを回避できてればいいと思うよ
598 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:13:58 ] activateかなんかなかった
599 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:20:26 ] shownだとユーザーがフリーズしたと思われそうだなー loadイベントで処理する方がマシか
600 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:23:43 ] うん
601 名前:デフォルトの名無しさん [2010/03/14(日) 19:28:16 ] >>599 Loadでやるにしてもスプラッシュウインドウでも出しておかないといらちにはあれだぜ いらちをだますには適度なタイミングでちびちび変化を見せてあげるほうがいい
602 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:29:39 ] ほとんどビョーキ
603 名前:デフォルトの名無しさん [2010/03/14(日) 19:31:25 ] >>602 病気だけどそんなのはいえないしねえw
604 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:31:47 ] いやShownでちゃんと表示されてるはずだし。 でなきゃ"Shown"って名前が嘘になっちゃうし。 何がしたくて何を言ってるのかサッパリ意味がわからんな。
605 名前:デフォルトの名無しさん [2010/03/14(日) 19:34:57 ] >>604 FormのShownでしょ 確かに上に乗ってるコントロールはFormのコンストラクタでできてるので 問題はないけどshownの段階ではForm上にのってるコントロールのどれかが 何かしら動いてる?から今回の質問なわけでしょ・・ まあ自分のアプリの処理のタイミング調整でなんとかなりそうだけど
606 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:38:41 ] >>605 ごめん真面目に何言ってるのか理解できん。 っていうか、それ>>589 が言ってることと明らかに違わないか?w
607 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:51:19 ] >>601 イラチのおれはスプラッシュウィンドウなんて表示しなければ もっと起動早いだろって思う
608 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:52:05 ] d.hatena.ne.jp/gsf_zero1/20100215/ これじゃね
609 名前:589 mailto:sage [2010/03/14(日) 20:00:28 ] >>608 おお、まさしくこれだ ありがとう
610 名前:デフォルトの名無しさん [2010/03/14(日) 20:01:35 ] え・・・そんな基本的な話だったの?
611 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:08:12 ] >>608 ブログ主はなんか勘違いしてるな Appliation.DoEvents()って、そんなもので自分のいってる問題が 本当に解決してると思ってるのかw 悪いけどおめでたすぎるわ。
612 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:09:57 ] >>611 ではズバリ教えて
613 名前:589 mailto:sage [2010/03/14(日) 20:13:33 ] Application.DoEvents()すげーー ループ処理の中に記述しただけで 今までListViewが随時更新されずに、処理後結果が一気に表示されてたのに リアルタイムで再描画してるーーー これをあっちこっちに入れるとしあわせだな
614 名前:デフォルトの名無しさん [2010/03/14(日) 20:14:31 ] でもそれやると処理が遅くなるけどね
615 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:18:38 ] >>612 OnShown()なりOnLoad()なりでApplication.Idleとかに紐付けするのが 正攻法だとは思う。 内緒だが、同じことを簡単にやる方法としてはthis.BeginInvoke()を使う、 なんて手もあったりする。 まあ、これってそもそも下らない問題意識だと個人的には思うけどね。 >>589 Application.DoEvents()なんか必要もないのに(必要な場面がそうあるとも思えんけど) VB厨って言われるよ。 それはともかく、明らかに悪い作法だ。
616 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:22:16 ] DoEventsはおかしな動作する元だからな
617 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:22:44 ] DoEventsやるとメッセージ処理されるから順番が逆になったり弊害が出る
618 名前:589 mailto:sage [2010/03/14(日) 20:24:43 ] え・・・ WEBからファイル落とすときにフリーズ状態になるので Application.DoEvents()で描画更新されるようになったんだけど 本当は非同期でやるべきなんだおろうけど
619 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:28:15 ] >>618 そう端的に言って努力の方向が間違ってるよ。
620 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:31:19 ] WebからファイルってAsyncあるだろーが
621 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:46:33 ] >SystemException は、ユーザープログラムで回復できる致命的ではないエラーが発生した場合に、共通言語ランタイムによってスローされます。 とのことだが、キャッチして回復しようとすると「CA1031汎用的な例外をキャッチすんな」って怒られるんですけどどうしろと HAL9000もバグっちゃうよ
622 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:01:25 ] ああ、もうSystemExcpetionとかApplicationExceptionとか過去の話だから
623 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:05:39 ] 俺の問題解決にはすべて非同期プログラミングの習得するか否かにかかってるとみた 私はあえてこの高度なアルゴリズムに挑むことにする すべてはより高度なアプリを開発するために
624 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:08:51 ] Console.WriteLine("{0}",intA) この書式をtextBoxに表示するのに利用するにはどうすればいいですか?
625 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:10:38 ] String.Formatとかどう?
626 名前:デフォルトの名無しさん [2010/03/14(日) 23:13:41 ] intA これって文字通りintの変数? だったら textBox1.Text += intA.ToString(); とか textBox1.AppendText(intA.ToString()); とか 数字の出力パターンを変えたい場合はintA.ToString("0000") とかすればいいよ この辺は調べて
627 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:47:39 ] >>625 これこれ、こういうのがほしかった ありがとう
628 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:30:11 ] クラスが10個ぐらいになるともうわけわかめ UML導入するか
629 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:33:13 ] UMLでどうにかなる問題じゃないだろ 10個程度のクラスの相関を把握できないでどうするよ
630 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:22:09 ] わけ分からない→じゃあUMLだ、という発想がイミフ。 これまでドキュメントとか無かった現場なんだろか。
631 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:25:13 ] そうだよ
632 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:27:51 ] ユーザーが数字ではなく文字を入力した場合のエラーの取得はこういう感じでいいのでしょうか? それともUserInputクラス内ではtry文を使わないでProgramクラスだけでやったほうがいいんでしょうか? public class UserInput { public int Input() { int a = 0; try { a = Int32.Parse(Console.ReadLine()); } catch (Exception e) { throw e; } return a; } }
633 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:28:32 ] >>632 の続き class Program { static void Main(string[] args) { UserInput ui = new UserInput(); try { int b = 0; b = ui.Input(); } catch (Exception e) { Console.WriteLine(e); } } }
634 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:54:15 ] >>632 catch { throw; } とか何がしたいんだか分からんw
635 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:52:59 ] (゚∀゚)
636 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:53:23 ] 右から左に受け流したいんだろう
637 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 06:49:17 ] 左から右へ受け流すのはゆるさないからなw
638 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:59:14 ] わざわざコケさせなくてもTryParseとかあるし
639 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:10:41 ] 例外ロンダリングだよ。
640 名前:デフォルトの名無しさん [2010/03/15(月) 13:41:01 ] 入力された文字が数字だけかどうかって面倒なら Convert.ToInt32(textBox1.Text) とかやってtry catchで判断すればOKだよ
641 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:58:55 ] try catchなんてするくらいならTryParseでいいだろ って話だ
642 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:14:23 ] TryCatchなんかでやってたらエラー時のスタック解析の時間とか入れたら劇遅になるじゃねぇか
643 名前:632 mailto:sage [2010/03/15(月) 14:23:37 ] すいません、これは単純なモデルで表現したくてやったので この場合だとTryParseを使ったりすればいいですが 本当に聞きたかったのは ファイル入出力時のエラーや、WEB操作時のエラーや オブジェクトがnullだったりなど、Formとは別のクラス内部のエラーが あった場合に別クラスの内部で例外処理をするのか Form上で例外処理をするのかがよくわからないんです 一般的にどういうやり方をするのか聞きたかったのですが うまく説明できなくてすいません
644 名前:デフォルトの名無しさん [2010/03/15(月) 14:26:32 ] .net時代のエラー処理ってやつですかね? C/C++時代だと暴走の元なのでポインターがnullかどうかチェックしたりとかやってたようなのをどうしてるのか? ってところ?
645 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:29:44 ] 例外もみ潰しても続行できるなら内部で処理 できないなら外に投げる
646 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:38:08 ] お前らって例に噛み付くよね。 例えばの話に本気になってどうするの。
647 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:44:48 ] 一事が万事という 小事に本気になれない奴がどうして大事に本気になれようか
648 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:50:34 ] (^ω^;)
649 名前:632 mailto:sage [2010/03/15(月) 15:05:46 ] >>644 多分そういう感じです 例えばフォーム上であるクラスのメソッドを呼び出して nullが返ってくる場合もあるし、例外で投げられる可能性もあります ResCollection thread_Honbun=bbs.ReadRes(url); ←例外がでる可能性 thread_honbunを利用 //←nullで例外がでる なぜこういう質問するかというと 別クラス内部でいくら例外処理をしたところで 結局利用する側のformでやはり同じような例外処理を しなければならないのでみなさんはどうしているのかと思いまして
650 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:14:43 ] まずnullをなるべく返さない所から始めたらいいと思うよ。
651 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:32:36 ] >>649 CodePlexで他人の書いたコード(なるべくメンバーの多い奴がいい)でも読んでみるといいよ うんこ漏れそうなくらいtrycatch使いまくりだから 例外は昔の言語のnullチェックとエラー値チェックの代替機能なんだから エラーチェックそのものをを省くための手段じゃないのよ 目的にしているのはエラーに対して画一的に対処できることね 例えばWin32APIにはnullを返すものもあれば、INVALID_HANDLE_VALUEを返すものもあるし E_OK、E_SUCCESSなんてのを返すのもある これら全部例外として括ってしまおうって趣旨だから
652 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:37:53 ] うんこは漏れない。
653 名前:632 mailto:sage [2010/03/15(月) 15:42:58 ] つまりちゃんとデータを返すかもしくはエラーを返すかの 2通りにするほうがいいということかな 確かに今のソースはnullかどうかをform側でも別クラスでも 条件分岐で何重にもやっている状態でしかもやってない場合もあったりと かなりごちゃごちゃしてます C#しかやったことないけど、自分は古いやり方をしていたということなのかな 他人のコード見て勉強してみます どうもありがとう
654 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:56:14 ] エラーコードを例外に置き換えるリファクタリングを思い出した
655 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:02:52 ] この辺か Replace Error Code with Exception tp://www.refactoring.com/catalog/replaceErrorCodeWithException.html Replace Exception with Test tp://www.refactoring.com/catalog/replaceExceptionWithTest.html
656 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:06:21 ] これはうんこ漏れるわ
657 名前:デフォルトの名無しさん [2010/03/15(月) 16:06:58 ] まあ続行しても意味がないようなところで出るエラーはtryで拾ってもいいんじゃねーの?とか思うけどな コストがかかるとか言っても継続できねーんだからいいだろうと・・・
658 名前:デフォルトの名無しさん [2010/03/15(月) 16:30:09 ] テーブル 部 コード 名前 01 営業部 02 開発部 テーブル課 部コード 課コード 名前 01 01 第一営業 02 01 第一開発 テーブル社員 部 課 名前 01 01 山田太郎 といった データ構造で 社員をDataGridViewにデータバインドで表示する場合、 DataGridViewComboBoxColumを用いて課を表示することはできるでしょうか? 部テーブルは一意キーなので表示できますが 課テーブルは複数キーですので無理ですか? 型付データセットを使っているので、手動で余計なカラムを増やしたくなく、 リレーションをComboBox側のデータバインドでやってしまいたいっていう考えです。 どなたか回答お願いします。
659 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:03:22 ] DBで取ってきてるなら 部と課をくっつけた一意な文字列のカラムも加工して取ってくるようにして、 課のキーではなくそれにバインドさせたら駄目だっけ?
660 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:41:16 ] >>572 >>578 >>579 デリゲート使うと非常に便利ですね 参考にさせていただきます ありがとうございました
661 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:59:42 ] C#はプロパティがめっちゃ便利だな 変数に代入するのと同時に処理ができるってのはすばらしい C言語だと同じようなことをどうやってたんだろうな。 Privateとかないからポインタを引数にとって参照私とかやってたんだろうか。
662 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:04:52 ] C#を作った人物って Delphiを作った人と同一人物なの?
663 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:07:13 ] 普通にgetter/setterじゃないのか JavaやC++は今でもそうやってるだろ
664 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:16:09 ] プロパティなんて無い言語のほうがおかしくて、 無いJava, C++, Perl, Rubyが同化してるとだけ言っておこう C#との類似性がよく指摘されるVisual Basic, JavaScriptにはプロパティが存在する あとPHPにもプロパティがある
665 名前:デフォルトの名無しさん [2010/03/15(月) 20:19:45 ] >>664 古い言語にそんなこといっても仕方ないと思うけどw
666 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:43:28 ] >>662 たしかそう
667 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:44:48 ] >>666 Rubyは新しいぞぞ
668 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:50:30 ] Jeffrey Richterだったと思うけど、プロパティなんてイラネって意見の人もいるんだよね。 俺は同意できんけど
669 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:54:02 ] リッチャーの本大量に持ってるのに・・・ 捨てっかな
670 名前:デフォルトの名無しさん [2010/03/15(月) 20:56:23 ] でも結局は言語作ったおっさんの思想<多く使われる言語ってことなんだよな >>664 がプロパティ無いって言語は設計も古いし今となってはそれほど拡張もされてないような物だし C#もそこそこ年数たったけどVBのよい部分は引き継いでるので似てても不思議ではないし
671 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:00:10 ] >>662 アンダース・ヘルスバーグのことか?
672 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:18:13 ] >>664 そういう歴史を無視した発言はゆとりだから?