トップページ⇒tech
957コメント326KB

C♯相談室 Part2

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん♯NGNG
C#,.NET関連の話題はこちらでどうぞ。

前スレ
http://piza2.2ch.net/test/read.cgi/tech/977112364/

Insider.NET
http://www.atmarkit.co.jp/fdotnet/
.NET関連リンク
http://www.atmarkit.co.jp/fwin2k/rescenter/indexpage/net.html
0809807NGNG
>>808
なんと System 直下でしたか!!
Serializable とか奥深くにあったから Clonable もどっか固有の名前空間あるのかと思ってしまった。
ありがとーございます。
0810名無しさん♯NGNG
もうすぐね。ヽ(´ー`)ノ

 http://wininformant.com/Articles/Index.cfm?ArticleID=23397
0811デフォルトの名無しさんNGNG
こんな本が↓
ttp://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1349-2
0812デフォルトの名無しさんNGNG
>>811
「ドットネット」って、カタカナはやめれ。(w
0813デフォルトの名無しさんNGNG
VB.NET sage
ttp://www.ric.co.jp/hp-staff/book/bin/bkindex.cgi?ct=comp&bk=414-3
0814デフォルトの名無しさんNGNG
>>797
ありがとう。しらべてみるよ。
0815デフォルトの名無しさんNGNG
自動的にダブルディスパッチしたいんですけど、やっぱり無理でしょうか?

using System;

public interface IHogeHoge
{
    void Do ( IFoo Operator);
}

public class CHogeHoge : IHogeHoge
{
    public void Do( IFoo foo)
    {
        Console.Write ("あぁやっぱりこっちか…");
    }
    public void Do( CFoo foo)
    {
        Console.Write ("なんでこっちが呼ばれないの??");
    }
}

public interface IFoo
{
    void Gonyo ( IHogeHoge o);
}

public class CFoo : IFoo
{
    public void Gonyo ( IHogeHoge o)
    {
        // やっぱり o をキャストしなきゃ駄目?
        o.Do(this);
    }
}

public class Program
{
    public static void Main()
    {
        CFoo CFooInstance = new CFoo();
        CFooInstance.Gonyo( new CHogeHoge());
    }
}
0816デフォルトの名無しさんNGNG
WindowsのC(とかほかのやつも)開発ソフトってサクサク動くのでしょうか?
Linuxとかと比べて。
0817デフォルトの名無しさんNGNG
>>816
統合環境がってこと?
0818デフォルトの名無しさんNGNG
Insider .NETで紹介されてたこれ↓
http://gotdotnet.com/terrarium/

よく読んだら
Make sure you have at least the PDC build of the .NET Frameworks installed.
だってよ〜

できねーもん紹介すんなよ・・・鬱だ詩嚢
0819809NGNG
え!ICloneable (綴り間違えてた…鬱……)
って Clone() 自分で実装するの??
(MemberwiseClone() + 参照を適当に処理する? )
というか Clone の戻り値は object なの?クライアントコードでキャストしろと?
0820デフォルトの名無しさんNGNG
C#入門
第17回 処理を委譲するdelegate
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_017/csharp_abc01.html

サンプルはすべてDOS窓。
delegateが何のために導入されたのか、
どのような局面で使うと有効なのかについて
言及がないのが珠に瑕(藁
0821デフォルトの名無しさんNGNG
C#によるマルチスレッドの簡単なサンプルをキボンヌ!!
0822デフォルトの名無しさんNGNG
質問なのですが、Application.Run() にフックをかけたいんですけど、
なにか簡単な方法はありますか?
Application.Idle はメッセージが送られた場合のみしか実行されない様なのですが、
ウィンドウプロシージャのメッセージループのたびに処理したいのです。
何か方法をご存知の方いらっしゃいましたらよろしくお願いいたします。
0823デフォルトの名無しさんNGNG
>>822
メインフォームのWndProc()に処理をはさむ。
0824デフォルトの名無しさんNGNG
>>821
http://www.codeproject.com/dotnet/multithread.asp
http://www.c-sharpcorner.com/2/mt_beginner1.asp
0825822NGNG
>>823
お返事ありがとうございます。
Form を継承したフォームで、 WndProc をオーバーライドして、必要な処理 & base.WndProc() って事ですね?
なるほど〜〜です。ありがとうございました。
0826825NGNG
やってみたんですけど、イメージしてたのとちょっと違うんです。
やっぱり WndProc はメッセージが送られてこないと動かないんですよね。
それより前の段階のメッセージループ?の所で処理したいんです。
ちょっと古い Win32 の本からの引用ですが

while( GetMessage( &msg, (HWND)NULL, 0, 0))
{
TranslateMessage( &msg);
DispatchMessage( &msg);
// ここで処理したい
}

っていう感じなんですけど、何か方法はありますでしょうか??
0827名無しさん♯NGNG
>>826
Application.AddMessageFilter()でどうかしら?
0828826NGNG
♯さんお返事ありがとうございます。

AddMessageFilter を試してみました。でも私の思っている動作ではありませんでした。
ここまでやってみてはじめて気がついたのですが、
わたしが >>826 で書いた Win32 のメッセージループの API
GetMessage(), TranslateMessage(), DispatchMessage()
って、呼んだら新しいメッセージが来るまで処理を返さないんでしょうか?

だとしたら別のアプローチをしないといけないんですが…。
たとえば別のプログラムで、フォームとは関係ない処理が走っていて、
ポーリングして終了を感知したい場合
(こっちのプログラムにウィンドウメッセージが送られてこない場合でも、
その処理が終了する場合がある)
などは、このようなやり方ではできないんでしょうか?
0829デフォルトの名無しさんNGNG
そういう時はAPIならPeekMessage()とか使うのかね。
スレッド分けしたら?
0830名無しさん♯NGNG
>>828
> GetMessage(), TranslateMessage(), DispatchMessage()
> って、呼んだら新しいメッセージが来るまで処理を返さないんでしょうか?

GetMessage()は、文字通りメッセージをゲットするのを待ってるよん。(藁

> たとえば別のプログラムで、フォームとは関係ない処理が走っていて、
> ポーリングして終了を感知したい場合

フォームからワーカースレッドを立てるのなんてどうかしら?
ThreadStartをフォーム内のメソッドにすれば、閉じたりするのも簡単になるし。
0831828NGNG
お返事ありがとうございます。

>>829
いや、あくまでも Application クラスが内部で何をやっているかの話で、
本当に Windows API で処理しているわけじゃないので…。

>>♯さん
なるほど、別スレッドで処理するのですね。さっそく調べてみます。
ありがとうございました。
0832デフォルトの名無しさんNGNG
>>818
来週の.NET DevConでPDC英語版配るんじゃないかなぁ?推測だけど。
推測の根拠は、Webで配布予定って書いてある、Smart Device Extensionとか
.NET MyServices SDKって、.NET Framework PDC版以上じゃないと動かないから。
0833デフォルトの名無しさんNGNG
テキストボックス内でEnterキーだけを無効にするにはどうしたらいいんでしょうか。
0834デフォルトの名無しさんNGNG
VS.NET 上で /win32res オプションを指定することはできないのでしょうか?
xp style にするために .manifest を同じフォルダに置くのも格好悪いし,
かといって埋め込もうとするとコンパイルした後にリソースエディタ使わないといけないし...

要はコンパイルするだけで exe に manifest を埋め込みたいのですが。
0835834NGNG
ちょっと検索してみたのですが,
http://aspn.activestate.com/ASPN/Mail/Message/805889
やっぱりこういう方法になっちゃうのかな...
0836名無しさん♯NGNG
>>834
・プロジェクトのプロパティページを開く
・左側のタブで [構成プロパティ]→[デバッグ] を選ぶ
・[開始オプション] の [コマンドライン引数] を設定する

これでどうかしら?
0837834NGNG
>>836
う〜ん,これだとアプリケーションに引数を渡すだけで,
コンパイラには渡してくれないみたいです...
0838デフォルトの名無しさんNGNG
>>836
ハァ?
それはデバッグ実行するときのオプションだYO!
0839名無しさん♯NGNG
>>837
ごめんちゃい。
ボケててぜんぜん違う回答してた...。

カスタムビルドの方ね。
これは多分手作業じゃないと無理だと思われ。
0840834NGNG
>>839
ぐふっ,やっぱりそうですか...

手作業でコンパイルするのも面倒臭いので,諦めて
コンパイル→リソース弄り
することにしますです...
0841デフォルトの名無しさんNGNG
>>833
サブクラス化
0842デフォルトの名無しさんNGNG
Effective C#が出た、
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894714361/ref=sr_aps_d_1_4/250-3163634-7629009
らしい。(藁)

内容はC#でもほぼ真と思われ。
0843デフォルトの名無しさんNGNG
>>842
最近ピアソン・エデュケーションの本ばっかり買ってる…。
ちょっとばかり日本語が変な事が多いのが残念。
でも英語よりは確実に読みやすいし…。

やっぱり日本製のまともなC#本が出るまでにはまだまだまたなきゃいかんのだろうか?(今出てるのって大半「言語仕様紹介/環境紹介」だよね)
はっきり言って現状C#の参考書はみんなJavaだ。
0844 NGNG
eの値を小数点以下100桁まで求めよ。
πの値を小数点以下100桁まで求めよ。

教えてください
0845デフォルトの名無しさんNGNG
>>843
RTMまではどこの出版社も大した本が出せないんじゃない?
来年4月以降にドバドバでそうな気がする。もちろん糞本もたくさん
出るだろうね。

みんな、どうやって糞本と良本を見分けてるんだろう?漏れは
筆者/訳者くらいしか術を持ってない。
0846843NGNG
>>844
まずは小数点100桁まで扱えるクラスを作る事からはじめましょう。
C#ならオペレーターオーバーロードできるのでJavaで同じ事するときより幸せ〜〜僕幸せうさぎ〜〜〜になれますYO!!

>>845
なるほど〜、よく考えたらまだVS.NET 製品版リリースされてなかったんだよね。
すっかり忘れてた。
漏れは評判の良かった本をちょっと遅れて買うことが多いからなぁ…。
あとは本の表紙、良本かどうかはわからないが、クソ本はオーラが漂ってることが多い。
0847 NGNG
C#のAPIリファレンス(C#ではnamespaceでしょうか)をオフラインで,
読みたいのですが,どこかで手に入りませんか?
クラスライブラリ無しでは1行も書けないJAVA厨なんです…
英語でもよいのでお願いします
0848デフォルトの名無しさんNGNG
>>847
SDKについてくるヘルプじゃ不満か?
0849デフォルトの名無しさんNGNG
847 じゃないけど…
>>848
MSDN 以外にヘルプなんてついてくるの??
0850デフォルトの名無しさんNGNG
[スタート]-[プログラム]-[Microsoft .NET Framework SDK]-[Documentation]
0851 NGNG
確かにありますね,これで十分です.どうして気づかなかったんだろ.
お騒がせしました〜
0852849NGNG
>>848 & 850
あーほんとだー、今まで会社だとMSDNないから辛かったんだよね〜。
ありがと〜う。
0853デフォルトの名無しさんNGNG
unsafeしてもガベージコレクタが勝手に働くんですか?
0854デフォルトの名無しさんNGNG
>>853
ちゃんと知ってるわけじゃないけど、526 で
> unsafeを使ったコードはunmanagedだぞ。
って言ってるから、 unmanaged -管理されない→GCにも引っかからない
んじゃないかなぁ?
0855デフォルトの名無しさんNGNG
標準化団体ECMAがC#とCLIを承認
http://www.zdnet.co.jp/news/0112/14/b_1213_01.html
0856デフォルトの名無しさんNGNG
>>854
526の続き読めって。
0857255NGNG
>>853
unsafe contextでもGCは起こる。
必要に応じてfixed statementを使って、GCでポインタ値が変わるのを防がなければならない。
(これをpinningともいう)
0858デフォルトの名無しさんNGNG
>>854
unsafe != unmanaged
0859デフォルトの名無しさんNGNG
最近このスレ落ち着いてるね。
隔離スレができたせいか。(w
0860名無しさん♯NGNG
>>859
正直、RTMが出るまで動くに動けない。(藁
0861デフォルトの名無しさんNGNG
ねえ、C#ユニットってのは無いの?
JUnit移植しても良さそうなんだけど車輪の再発明嫌なんだよね。
0862名無しさん♯NGNG
>>861
2種類あるよん。どっちもSourceForge。(藁

.NETUnit

 http://dotnetunit.sourceforge.net/

NUnit

 http://nunit.sourceforge.net/
0863861NGNG
>>862
ああ、.NET全体がターゲットだったか。
検索しても気づかなかったわけだ
(つーかはじめにSourceForge調べなかったのがいけないのか)
ありがとう。
0864名無しさん♯NGNG
SharpDevelop .85 が出たよん。ヽ(´ー`)ノ

 http://www.icsharpcode.net/OpenSource/SD/WhatsNew.asp
0865デフォルトの名無しさんNGNG
あーあ、速く製品版のVS.NET出ないかな〜。
そーすれば俺みたいな厨房でも理解できるような本とか出るだろうしなぁ。
期待age
0866名無しさん@もうすぐ1周年NGNG
もうすぐ1週年。皆で盛大に祝おうじゃないか!
オフ会もありかな?なんちゃってw。
0867VC厨NGNG
C#で作ったEXEって.NET Frameworkがないと動かないの?
文法自体はかなりよさげなんだけど動かないんじゃぁちょっと・・・。
0868デフォルトの名無しさん NGNG
>>867
そう、だからWindowsに当たり前のように入っている日を
心待ちにしてるんだよ。
0869VC厨NGNG
が〜〜〜ん!
やっぱりそうかぁ、残念。
しばらくは辛抱ですね。
せめてC++にプロパティをくっつけてくれるだけでハッピーなのになぁ。
0870デフォルトの名無しさんNGNG
>>869
__propertyってのがあるよ。
0871VC厨NGNG
>>870
__propertyも結局.NET Frameworkを要求するんじゃないでしょうか。
0872デフォルトの名無しさんNGNG
>>871
そうだった。スマソ。
0873通りすがりNGNG
C++Builderだったら今でも__property使えるよ
0874デフォルトの名無しさんNGNG
WindowsXP用のツールバーのビットマップ集ってどっかにない?
0875デフォルトの名無しさんNGNG
>>874
http://www.developer.perthweb.com.au/
ここの Download から GlyFX Free。
exe でセットアップ形式だけど,中身は全部 .bmp です。
0876デフォルトの名無しさんNGNG
>>875
こういうアイコンって著作権はどうなるのかな?
使うと著作権違反?
0877デフォルトの名無しさんNGNG
>>873
マジですか?それはちょっと魅力的かも。

>>875
874じゃないけどサンクス
でもCToolBar::LoadToolBarが16色にしか対応してないからちょっと面倒だなぁ。
0878デフォルトの名無しさんNGNG
http://discuss.develop.com/archives/wa.exe?A2=ind0112c&L=dotnet&F=&S=&P=2395
気になるage
0879デフォルトの名無しさんNGNG
>>871 VC++6 でも使えるんとちゃう?
__declspec( property( get=get_func_name, put=put_func_name}) ) declarator
0880デフォルトの名無しさんNGNG
>>879
すげぇ!感動した!
ぜんぜんC#の話じゃないけどありがとう!
0881名無しさん♯NGNG
AmazonにVS.NETの値段が出ちゃってるんだけど、これっていいのかなぁ...。

 http://www.amazon.com/exec/obidos/tg/sim-explorer/explore-items/-/B00005S812/0/101/1/none/session/ref=pd_sim_d_sw/104-9336229-8979135
0882名無しさん♯NGNG
>>866
明日で1周年。ヽ(´ー`)ノ
1年たっても製品が出てないね。(藁

>>878
どうなんだろう...。
やっぱり今週がヤマなのかな?
0883デフォルトの名無しさんNGNG
Microsoft .NET と J2EE テクノロジの比較
http://www.microsoft.com/japan/msdn/net/compare/default.asp

日本語になってVersion 1.5になってます。
0884832 NGNG
>>832
予想通り。ヽ(´ー`)ノ
0885デフォルトの名無しさんNGNG
>>884
RC版( ゚д゚)ホスィ…
0886デフォルトの名無しさんNGNG
一周年記念カキコ。
0887デフォルトの名無しさんNGNG
質問です。
System.Collections.CollectionBase って
継承しないで普通に List に委譲するのとどう違うのでしょう?
0888名無しさん♯NGNG
1周年。ヽ(´ー`)ノ
でも、漏れはいまだにβ2。(藁
0889デフォルトの名無しさんNGNG
今日、書店に行ったらこの本(というより雑誌)が出てました。

TRY!PC 2002年冬号
「.NETとC#によるWindowsプログラミング入門」
http://www.cqpub.co.jp/try/
0890名無しさん♯NGNG
>>887
CollectionBaseは内部でArrayListを持ってるので、
機能的にはあまり変わりはないと思われ。

ただ、CollectionBaseの方が委譲の記述の手間も省けるし、
イベントとかも持ってるので便利ね。
0891887NGNG
>>890
なるほど、イベントとかもあるんですね。
これは自力で書くよりも純粋なコレクション作るつもりなら継承した方が楽ですね。
ありがとう。
0892デフォルトの名無しさんNGNG
C#についてというよりは、英語の基礎についてなんですけど、
ここ↓
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpapndx/html/_cor_capitalization_styles.asp
に書いてある

Rarely used, prefer properties

って、「ごくまれに、プロパティより好まれる」っていう意味なんでしょうか?
なんか私、意味取り違えてるような気がしないでもないんですけど…。
0893名無しさん♯NGNG
>>890
あ、ちょっと訂正。ごめんちゃい。

> イベントとかも持ってる

delegate / eventのイベントじゃなかった。On〜メソッドの方ね。
役割的にイベントに近いということで。
0894名無しさん♯NGNG
>>892
「めったに使われない。プロパティの方が好ましい。」ということよん。

public / protectedのフィールドは他のクラスからアクセスされるから、
それだったらプロパティ経由にしてちょ、ということね。
0895 ◆K1SiC5MI NGNG
きょうのDev.Confで、RTM?ゲット。

RoomBは、おおむね当たりでした。
最後のセッションだけA行ったら、外した。時間の無駄だった。。。

みんな、逝った???
0896892NGNG
> ♯さん
あ、「プロパティの方が好ましい」なのですね。
なんでわざわざ public のフィールドなんか書いてあるんだろう?
と思ったので、変に期待訳してしまいました。

ありがとうございます。
0897あるC♯厨 ◆CSharp82 NGNG
なんか、このスレあんまり盛り上がってないね^^;
あんまりみんなまだ C# 使ってないのかな?
0898デフォルトの名無しさんNGNG
>>897
このスレはある意味、ほんとに使っている人のためのスレだからね。
擁護・アンチ・雑談は別スレで盛り上がってるし。(w

にしても、そのトップリ(・∀・)イイ!
0899デフォルトの名無しさんNGNG
>>897
スゲェトリップ!

ちなみに現在 C# を使って一味違ったチャット作成中でございます。
英語力が皆無な為,適当に説明書いて SourceForge にプロジェクト登録したらあっさり denied されたYO!(鬱)
完成したら紹介する... かも。
0900デフォルトの名無しさんNGNG
>>899
おお〜、かんばれー。
0901名無しさん♯NGNG
Mono & the .NET Framework

 http://www.ddj.com/documents/s=1818/ddj0201a/0201a.htm
0902名無しさん♯NGNG
がんばってるね。ヽ(´ー`)ノ

 http://lists.ximian.com/archives/public/mono-list/2001-December/002288.html
0903名無しさん♯NGNG
>>895
> RTM?ゲット。

RCだよね...?


>>897
トリップ(・∀・)イイ!
前に比べるとかなりマターリしてるね。RTMも近いのに。(藁


>>899
がんばって公開してちょ。ヽ(´ー`)ノ
0904あるC♯厨 ◆CSharp82 NGNG
ところでさ、みんな UML のクラス図で property ってどう書いてる?
明らかに操作なんだけど、get / set みたいなプリフィクスは無いワケで、
書き分けられないよね。
Del や VB の人達はどうやって書いてきたんだろう?

なんか方法あったら教えて欲しいな。
0905名無しさん♯NGNG
お役立ちサイト

 http://www.dotnetremoting.cc/

 http://www.xmlwebservices.cc/

 http://www.dotnetextreme.com/
0906デフォルトの名無しさんNGNG
>>904
クラス図にはプロパティのget,setとか
コンストラクタ、デストラクタは明示的に書かないよね?
書き分けなければならないようなことをするなら
別な名前にしたほうがいいんじゃない?
0907あるC♯厨 ◆CSharp82 NGNG
>>906
え、みんな重要なフィールド(クラス図用語のプロパティ)へのアクセッサメソッド書かない?

例えば Singleton だったら getInstance() とか。
あ、これを (C#の) property にしちゃうからいけないのか。
0908デフォルトの名無しさんNGNG
.NET Framework のクラスライブラリってメソッド名が大文字ではじまってるよね。
小文字マンセーな漏れは、小文字にしようかライブラリに合わせようか悩んじゃうよ。
なんか大文字から始まるのってスマートじゃないんだよねぇ。
レス数が900を超えています。1000を超えると表示できなくなるよ。