- 1 名前:デフォルトの名無しさん [2009/01/20(火) 21:47:33 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
- 596 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:20:41 ]
- さぼてんあわめん
- 597 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:30:32 ]
- わあさんぼんめて
- 598 名前:風来坊 mailto:sage [2009/02/03(火) 20:48:10 ]
- 質問です。
C#にて 音声録音の機能を実装したいと思っています。 .NET 1.1,2.0,3.5は問いません。 デフォに設定されている出力(再生)デバイスの音声信号を wav(wavにこだわる必要は無い)ファイルとして保存したいのですが、 どうすれば実現できますか? どなたかご教授ください。お願いします。
- 599 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:22:40 ]
- ぐぐる
- 600 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:35:08 ]
- 遮断機をくぐる
- 601 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:36:45 ]
- 首をくくる
- 602 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:42:39 ]
- せっかくC#でAPI直接もなんだし、MCIかMDXあたりでどうかな。
- 603 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:46:32 ]
- riffを自分で書くなんてどうかしら
- 604 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:50:21 ]
- DirectShow.NET
- 605 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:55:42 ]
- DirecxShowは推奨されないらしいですよ
- 606 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:03:05 ]
- このスレって質問者じゃなくて答える側が初心者っていうオチ?
- 607 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:06:26 ]
- ○×したいんだけど、どうすれば実現できますか?
↓ (´・ω・`)しらんがな こうやったんだけど上手くいきません。どうしたらいいですか? ↓ (´・ω・`)オジサンが教えたるがな
- 608 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:21:14 ]
- Vista + Visual Studio 2008 Express Edition + C# を使っています。
Debugモードでは問題なく動くのにReleaseモードではフリーズする場合、 どういった原因が考えられますでしょうか? 大量の計算を連続してさせているプログラムで、フリーズする箇所は毎回違うようです。 調べようにも取っ掛かりすらなくて困っています。 よろしくお願いします。
- 609 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:21:52 ]
- CPU休めてますか
- 610 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:26:04 ]
- >>609
100万行くらいのtxtファイルを読んできて、数分間延々と処理させてます。 CPUに負荷がかかりすぎるのが問題なんですかね?
- 611 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:28:31 ]
- ぱそこんもたまにはやすみたがっているんだよ。
- 612 名前:608 mailto:sage [2009/02/03(火) 22:36:59 ]
- タスクマネージャで眺めてたら、
処理開始から1〜2分はCPU使用率50%前後で、メモリ使用量が徐々に増加。 メモリが180MBくらいに達したところでCPU使用率が0%になってフリーズしました。 メモリ食いすぎってことでしょうか? debugモードでは動くのに。。。
- 613 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:38:25 ]
- デッドロックしてない?
- 614 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:38:37 ]
- そのデバッグモードってデバッグビルド?
リリースビルドでデバッグでも同じ?
- 615 名前:デフォルトの名無しさん [2009/02/03(火) 22:44:20 ]
- >>603
Thunder Forceの戦闘AI?
- 616 名前:571 mailto:sage [2009/02/03(火) 22:45:47 ]
- >>572-574
ありがとうございます。 VMwareでLive版のLinux立ち上げてISOイメージをマウントしてから、 ローカルディスクに全コピーしてみます。
- 617 名前:608 mailto:sage [2009/02/03(火) 23:00:46 ]
- >>613
マルチスレッド処理なので可能性はあるかもしれません。 ただ、デバッグで起こらないのでどうやって調べればいいのか。。。 >>614 >リリースビルドでデバッグ なんてことができるんですね。 試してみましたが、問題なく動きました。 \Releaseフォルダ内のexeを直接起動したときだけフリーズします。
- 618 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:03:37 ]
- 一般的には排他処理のところっしょ
- 619 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:49:06 ]
- 排他制御に不備があって、微妙なタイミングの差で動いたり動かなかったりするのかね。
いずれにせよ質の悪いバグだ。詳しく設計がわからないとアドバイスのしようがない。
- 620 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:32:14 ]
- >>570
レジストリですか。 すこし見てみたものの、まったく手がかりがありませんでした。 情報サンクスです。
- 621 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:01:40 ]
- 別にレジストリ見なくてもわかる
エクスプローラのメニューからツール→フォルダ オプションを選択 ファイルの種類タブで、データファイルの拡張子がどう登録されているか確認
- 622 名前:デフォルトの名無しさん [2009/02/04(水) 04:07:18 ]
- コンボボックスで質問があります。
コンボボックスに二つの項目があり、項目1を選ぶと変数+変数、 項目2を選ぶと変数-変数といったような処理をしたいのですが if文でどのようにコンボボックスを設定すればそのような処理ができるのでしょうか?
- 623 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 07:57:00 ]
- はい
- 624 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:20:10 ]
- >>622
ComboBox.SelectedIndexChangedでSelectedIndex見て判断しろ
- 625 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 10:06:23 ]
- ComboBoxニdelegate突ッ込ンデ自前デ描画シナサイ
- 626 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 10:39:03 ]
- >>621
どうやって関連づけやったのよ? 関連づけやってるところのソース見せて
- 627 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 10:47:57 ]
- >>626
↓でも読んでろ ttp://dobon.net/vb/dotnet/system/associatedapp.html どうせ実行ファイルのパスに空白が混じってるとかそういうオチだろうけど
- 628 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:37:58 ]
- C#2005で開発したアプリをVistaで動かしてみたところ、
パネルに配置したボタン色がパネルの色に同化してしまいました。 xpでは正常に表示されます 対処方法などあれば教えてください。
- 629 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:09:00 ]
- >>627
おマイには聞いてないってw レジストリを触ったこと無い人がどうやって関連づけしたのかな〜っと それに実行パスに空白があるからどうなるの?
- 630 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:14:36 ]
- 普通にファイルを開くプログラムの選択で関連付けしたんで無いの。
- 631 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:02:29 ]
- >>629
なんで粘着してんの?親切に教えてるだけじゃない そもそもの質問者も、プログラムで関連付けをしたいなんて書いてないし 回答者も、レジストリを触ったこと無いとも書いてない 実行パスの空白はCUIのOS触ったことあるなら解るだろ
- 632 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:05:30 ]
- felicaのシステムを作っているのですが、
felicap = felica_polling(pasorip, (ushort)systemcode, 0, 0); この処理でfelicapに値が入るのですが、この処理の意味が根本的にわかりません。 ここではどういった処理が行われているのでしょうか?
- 633 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:09:18 ]
- FeliCa でソフトを作りまくるスレ 2ブロック目
pc11.2ch.net/test/read.cgi/tech/1210717455/
- 634 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:18:21 ]
- felicaのシステムを作っているのですが、
felicap = felica_polling(pasorip, (ushort)systemcode, 0, 0); この処理でfelicapに値が入るのですが、この処理の意味が根本的にわかりません。 ここではどういった処理が行われているのでしょうか? 連続で同じカードの読み取りができなくて困っています。
- 635 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:19:31 ]
- >>633
すみません。 該当スレに書き込むつもりが同じところに書き込んでしまいました。
- 636 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:28:30 ]
- 生まれて半年の者です。他のクラスの変数に関して質問です。
クラスAとBがあります。 クラスAにStack型stackがあります。 クラスBにString型stringがあります。 クラスBでクラスAをインスタンス化して、stackにstringをpushします。 そして変更されたstackをクラスAに戻して作業を進めたいのですが、 クラスAではstackは元のままになっています。 どのような問題があるのでしょうか?
- 637 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:30:18 ]
- クラスAに戻すとか言われてもよく分からんのでコード貼ってくれ
- 638 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:32:05 ]
- AがStackをそのまま外に晒すのはよくない(別のクラスにした意味がない)
pushするメソッドをAに定義するべき
- 639 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:34:00 ]
- Stackを晒してるなら、Pushしたのが反映されてるはずだがな。
たぶんnewして渡してるとかじゃないかw
- 640 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:40:32 ]
- >>637
戻すじゃなくて戻したいの意味でした。すみません。 ClassA { public void ClassA() { } public Stack stack = new Stack(); } ClassB { public String string = 〜; ClassA a = new ClassA() a.stack.push(string); } これだけだとクラスAでは変更できてないです。 pushしたあとにどのような作業が必要でしょうか?
- 641 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:41:50 ]
- 意味不明すぎる
- 642 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:43:05 ]
- たぶんクラスとインスタンスの関係が分かってないんじゃない?
生まれて半年だし
- 643 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:43:28 ]
- staticだな〜説明は誰かに任す
- 644 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:44:38 ]
- そこでstaticにしろと言うのは教育的じゃないと思う
- 645 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:45:02 ]
- もうちょっと勉強進めればわかるよ
staticにすればいいのかもしれないけど実際は絶対やっちゃダメなパターン
- 646 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:47:02 ]
- つってもなあ
「○○したいんだ」 って言ってる奴に勉強しろっても回答になってない気がするぜー
- 647 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:47:08 ]
- ClassB
{ public String string = 〜; ClassA a = new ClassA() //↓これメソッド内だよね? a.stack.push(string); } ↑でインスタンス化された a の stack にはちゃんとPushされている。 ただそのせっかく作ったClassAのインスタンスaは参照されないまま消えてしまっただけ
- 648 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:10:59 ]
- C#で質問があります。
timeが11:00と入力されなかった場合(たとえば1100と入力された場合)、コロンを追加しようとしています。 string time; if (!(time.Contains(":"))) { time = time[0] + time[1] + ":" + time[2] + time[3]; } で、この値を見ると、11:00ではなくて98:00になっちゃうのですが、なんでこんな数字になっちゃうんでしょう。 原因と改良方法をご示唆いただけないでしょうか。
- 649 名前:636の者です。 mailto:sage [2009/02/04(水) 18:15:02 ]
- windowsフォームのボタンを押したときの動作をプログラムで書きたいときは、
ボタンをダブルクリックすれば、プログラムを書く場所を自動で作ってくれますが、 クラスBにあるボタンを押したときの動作を、クラスAに書くことは可能でしょうか?
- 650 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:17:59 ]
- >>648
char同士の文字コードの加算になってるから time = '1' + '1'; でやってみるとわかるよ time = time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString(); にすればいい >>649 +=を使ったイベントハンドラの登録方法が理解できていればできる
- 651 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:23:58 ]
- > time[0].ToString() + time[1].ToString() + ":" + time[2].ToString() + time[3].ToString();
くどすぎる。 StringBuilder つかおうぜ。
- 652 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:28 ]
- じゃあString.Format("{0}{1}:{2}{3}", time[0], time[1], time[2], time[3])で
- 653 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:30 ]
- >>647
あ〜昔同じ失敗したな〜
- 654 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:27:37 ]
- >>650
早速ありがとうございました。 ToString()でできました。
- 655 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:28:11 ]
- >>651
そこで、StringBuilderは使わないだろ。 time = time.Substring(0, 2) + ":" + time.SubString(2, 2);
- 656 名前:636の者です。 mailto:sage [2009/02/04(水) 18:31:41 ]
- >>650
なんとなくいけそうです。 >>653 お〜友よ〜
- 657 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:44:37 ]
- >>621
ツール-フォルダオプションは、真っ先に見ました〜。 >>626、636 というか、ここで手動で関連づけを登録しました。 そうしたら、登録したとたん、「詳細設定」のボタンが消え、「元に戻す」というボタンに変化しちゃったのです。 詳細設定のボタンがあれば、アプリケーションの挙動を見れるかと思ったのですけど。 たとえば、txtの詳細設定のopenアクションを見ると、アクションを実行するアプリケーションの項目に、「C:\Windows\system32\NOTEPAD.EXE %1」とあり、これを修正すればよいことがわかります。 ところがなにしろボタンがないから、手も足もでない…。 空白かな〜。う〜〜む。 アプリケーションじたいはデータファイルのダブルクリックで起動しているのですが…。 ま、C#とはあまり関係なさそうなので、この件はこれで。 お騒がせしました。ありがとうございました。
- 658 名前:デフォルトの名無しさん [2009/02/04(水) 18:57:25 ]
- お願いします(゚ω゚)
System.Text.RegularExpressions.Regexを使って [ok] 100 [ok] 0.001 [ng] 00 → 0 [ok] 0.1000 前ゼロ入力をReplaceで""に置き換えたいのですが、正規表現が上手く書けませぬ 教えてエロい人
- 659 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:00:35 ]
- >>658
正規表現 Part5 pc11.2ch.net/test/read.cgi/tech/1212498448/
- 660 名前:デフォルトの名無しさん [2009/02/04(水) 19:02:22 ]
- あーd>>659 ここで聞きたかったぜっ♪
- 661 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:49:44 ]
- >>645
他クラスからアクセスする変数には手当たり次第static使ってるんだが… 何を勉強すればいいんですか?
- 662 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:52:53 ]
- 構造化プログラミング
- 663 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:55:56 ]
- オブジェクト指向プログラミング
- 664 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:57:38 ]
- staticフィールドはダメだがstaticメソッドはいいぞ
privateなstaticメソッドが最高だ
- 665 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:58:06 ]
- 構造化プログラミングを理解してない奴が、オブジェクト指向を学んでも無駄。
構造化プログラミングを学んだら、中規模以上のプログラムをたくさん書く。 それからでもオブジェクト指向は遅くないよ。
- 666 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:59:25 ]
- static メンバ変数なんて
ただ1個しか存在しないもんな。 2つ作りてええええええええ!!!! と思っても 1つしか存在できない。 不便過ぎ。
- 667 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:02 ]
- C言語等の非OOA出身者はstaticをメモ帳や定数保管庫程度に考えてない
- 668 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:42 ]
- しか が抜けた
- 669 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:02:49 ]
- オブジェクト指向も関数型プログラミングも
深いとこに行くと実用的じゃない宗教じみたものがうじゃうじゃ出てくるから そこに行ってしまわないように気をつけないと
- 670 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:12:08 ]
- むしろいきなりOOPでいいと思うよ。
>>665みたいな意見はありがちだけど、構造化プログラミングなんて 中身のないスカスカな話で馬鹿でなければ「畳の上の水泳」で十分だと思う。 っていうか、俺も含めてたかがOOP理解したぐらいで鬼の首とったように語るのは とても恥ずかしいよなw
- 671 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:16:29 ]
- 物事をオブジェクトに切り分けるというのは大成功した考え方だと思うけど
継承は失敗だしインターフェースの実装もそんなに上手くない感じだと思う そういった抽象化はクロージャにした方がシンプルで分かりやすい
- 672 名前:デフォルトの名無しさん [2009/02/04(水) 22:19:30 ]
- >>636
> 生まれて半年の者です。 おいおい、生後半年でプログラミングかよ。 たいしたもんだな!
- 673 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:21:38 ]
- どんな天才だよw
- 674 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:24:22 ]
- >>671
使いこなせない人にとって上手くないだけなんだろ
- 675 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:26:16 ]
- 母国語より先にプログラム言語を覚えたんだな
いったいどんな子に育つやら
- 676 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:28:11 ]
- 今さらオブジェクト指向だデザパタだインターフェースだってやるのは
正直違うかなと思うよ 今のC#にはもっとよい道具があるから ただオブジェクト指向の基本的なところは抑えておかないとまずいけど
- 677 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:29:44 ]
- だまれ若造
- 678 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:31:19 ]
- お年寄りは静かにしてください
- 679 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:32:17 ]
- >>676
それはC#が、最近になってより初心者向けの機能を実装をしてるってこと?
- 680 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:33:25 ]
- >>676
>今のC#にはもっとよい道具があるから ないってw 知ったようなこというなよ。 クラスベースのOOPが万能じゃないのは確かだけど、現時点でそのオルタナティブが C#に限らず発案されているとは思えん。
- 681 名前:デフォルトの名無しさん [2009/02/04(水) 22:33:31 ]
- >>679
クロージャはインターフェースよりも初心者にとって使いやすいと思うよ 直観的だし
- 682 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:35:26 ]
- なんでクロージャーとインターフェイスを対置するんだ?
クロージャーとインターフェイスって「代替財」か? わけがわからんよ。
- 683 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:37:16 ]
- 覚え方なんて人それぞれだし。
自分が通ってきた道についてしか語れないだろ。
- 684 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:38:00 ]
- >>680
クロージャは実際には一つのメソッドを持ったインターフェースを 実装したオブジェクトを簡易に作り出す機能だけど それさえあればオブジェクト指向の抽象化は全部出来る オブジェクト指向の継承にまつわるややこしいところはすっ飛ばして そっちに行くのが今は正解なんじゃないかねえ
- 685 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:39:36 ]
- また変な主義者が来ましたねw
- 686 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:44:52 ]
- >>684
それって、昔の1ファンクション1機能の構造化プログラミングと同じじゃないの? 静的なメソッドとは何がちがうのけ?
- 687 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:53:45 ]
- 相談があります。
C#でプログラムを作り始めて半年くらいになります。 ようやく身の回りのソフトは、だいぶ自作できるようになってきました。 ところで、それをリリースしようと思うと、プログラムのなかに直接書いてあるパスワードなどを設定ファイルに移動したり、自分用のディレクトリ構造にあわせて作った部分を汎用にする必要が出てきます。 それはまあやる気になればできそうなのですが、設定不要のかんたんなソフトを知人10人ほどにテストしてもらったところ、だれひとりとして.NETを入れていないため、動作しなかった、ということがわかりました。 ひょっとして、.NETやC#って、すごくマイナーなんでしょうか。 このままC#をつづけた方がよいのか(けっこう使いやすくて気に入ってます)、それとも別の言語に移ったほうがよいのか。 移るとしたら、もっとメジャーな言語ってなんですか? Webベースのプログラムとか、Ajaxとかですか? .NETを組み込んだ状態でコンパイルするとかできないんですかね〜?
- 688 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:55:38 ]
- WebでできるようなことならSiilverlightというのがある
イメージ的には「C#で書けるFlash」 ランタイムは超小さいので配布が手軽
- 689 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:57:55 ]
- だからクロージャとインターフェイスは代替関係にないってw
ただ一部の機能が競合関係にあるだけ。 たぶん従来ICompareをわざわざ用意していたようなのがデリゲートでスッキリ 書けるようになった、みたいな例を見て短絡したんだろうけど。
- 690 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:03:14 ]
- >>687
.netFrameworkをインストールしないって人は多いよね vista以降は.netはインストされてるから、ある程度は問題なくなると思うけど なんのインストもなくて利用可能なのは、VisualStudioのC++のネイティブコードか、 Delphiぐらいじゃないのかな。
- 691 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:13:21 ]
- しつもんです。
クラス内のメンバの初期化はどこでしてますか? 宣言時に初期化してしまうか、コンストラクタ内で初期化するか迷ってます。 ///以下抜粋 internal sealed class 通信 { private UdpClient UDP; private Thread スレッド; private List<byte[]> 受信リスト= new List<byte[]>();///宣言時か private List<IPEndPoint> クライアントリスト= new List<IPEndPoint>(); public 通信(int ポート) { UDP= new UdpClient(ポート);///コンストラクタ内か スレッド = new System.Threading.Thread(new System.Threading.ThreadStart(受信)); ///抜粋以上
- 692 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:18:16 ]
- >>691
基本は宣言時じゃないかな。 コンストラクタでもいいけど、コンストラクタをオーバーロードしているときには、 複数のコンストラクタで初期化しなくちゃいけなくなるから。 別のメソッドを用意して、そこで初期化してもいいけど、意味ない気がするし。 条件によるけど。
- 693 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:18:50 ]
- C#, C♯, C#相談室 Part50
pc11.2ch.net/test/read.cgi/tech/1229661915/ 埋まったけど立てられなかった。 誰か頼む。
- 694 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:22:33 ]
- ホスト規制のためNGですた。
- 695 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:22:51 ]
- >>693
あっちは相談室と名乗りながら、 質問の揚げ足を取って悦に浸っている常連ばかりだから嫌い
- 696 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:23:14 ]
- >>686
Cとの比較で言うと、クロージャは「状態のある関数ポインタ」といえると思う Xの値が欲しい時に void Hoge(Func<int> getX){ int x = getX(); } C#ならこう書ける。getXにはintを返す関数がなんでも入れられるしその場で作れる Cで書くと struct Func_int{ int (*func)(void*); void* args; }; void Hoge(Func_int fi) { int x = fi.func(fi.args); } こんなんだけど引数の型も作らなきゃいけないし関数はvoid*をとらなきゃいけないしで大変だ オブジェクト指向で書くと class Func<int> : IFunc<int> { int x, y; public Func(int x, int y){ this.x = x; this.y = y; } public int Method(){ return x + y; } } クロージャだと Hoge(() => x + y); こうだ。 これが進化だよ。
|

|