C#, C♯, C#相談室 Part41

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part40
http://pc11.2ch.net/test/read.cgi/tech/1181979651/

過去スレは>>2-5あたり。
2デフォルトの名無しさん:2007/07/19(木) 19:15:52
3デフォルトの名無しさん:2007/07/19(木) 19:16:42
4デフォルトの名無しさん:2007/07/19(木) 19:17:23
5デフォルトの名無しさん:2007/07/19(木) 19:18:05
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

ふらっとC♯, C#(初心者用) Part17
http://pc11.2ch.net/test/read.cgi/tech/1182948981/

MSDNライブラリ
http://msdn.microsoft.com/library/ja/

MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx

pinvoke.net: the interop wiki!
http://pinvoke.net/
6デフォルトの名無しさん:2007/07/19(木) 19:18:47
Visual C# Express Edition (無料)ダウンロード
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx

MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
7デフォルトの名無しさん:2007/07/19(木) 19:54:11
8デフォルトの名無しさん:2007/07/19(木) 20:52:22
おつりんこ
9デフォルトの名無しさん:2007/07/19(木) 23:29:11
おっちゃん
10デフォルトの名無しさん:2007/07/20(金) 02:21:39
C#の未初期化変数検出機能が微妙に邪魔になる場合があるんだけどどうしたらいいかな?

LargeStruct hoge;
bool ok = false;
try {
 ok = PossiblyThrowsError(out hoge);
} catch { }
if (!ok) hoge = new LargeStruct();

この時点でhogeが未初期化ってことになってるため利用できない。
宣言時に初期化するしかないのかな?
11デフォルトの名無しさん:2007/07/20(金) 02:34:20
else句でも追加しとけ。
1210:2007/07/20(金) 02:42:18
>>11
え、elseに何書くの?
13デフォルトの名無しさん:2007/07/20(金) 02:44:40
hogeの初期化に決まってるだろ。
14デフォルトの名無しさん:2007/07/20(金) 02:46:01
>>10
finallyで初期化しろよ。ばっかじゃねえの。
15デフォルトの名無しさん:2007/07/20(金) 02:46:11
>>10
PossiblyThrowsErrorが呼ばれる前に非同期例外が発生すると
hogeが未初期化のままcatch以降に流れうるので、
一応コンパイラの言ってることは正しい。

まあ非同期例外というと、キャッチしても再送されるThreadAbortExceptionとか
そもそもキャッチできなくなってしまったStackOverflowExceptionとか
ろくでもないのばっかりだけどな。
16デフォルトの名無しさん:2007/07/20(金) 02:48:23
>>15
bool PossiblyThrowsError(out LargeStruct hoge) { throw new Exception(); }

非同期例外に限らないだろ。
17デフォルトの名無しさん:2007/07/20(金) 02:48:24
>>11>>13
ifで初期化してるのになんでelseでも初期化するの?
18デフォルトの名無しさん:2007/07/20(金) 02:51:04
何も難しいことはない。
cache節の中にも初期化処理書けばいい。
19デフォルトの名無しさん:2007/07/20(金) 02:51:39
typo
○cache
×catch
2015:2007/07/20(金) 02:52:18
>>16
あー、throwの場合はoutの初期化強制されんのだっけか。
なんか勘違いしてたっぽ。thanks。
2110:2007/07/20(金) 02:52:27
>>13
それだと全く意味がないと思うんだが・・・
>>14
finallyに移したところで状況は全く変わらないかと。

>>15
うーんそう言われてみればたしかにそうかも・・・
しかしそんな万に一つも起こらないケースのために二重初期化を強制されるのは
納得がいかないが・・・まあ仕方ないのかなあ。
22デフォルトの名無しさん:2007/07/20(金) 02:55:48
例外拾った場合も、hoge = new LargeStruct(); すればいいんじゃないのかね
23デフォルトの名無しさん:2007/07/20(金) 03:00:58
LargeStruct hoge;
try {
 PossiblyThrowsError(out hoge);
} catch {
 hoge = new LargeStruct();
}
こう?
2410:2007/07/20(金) 03:01:45
ああそうか、例外が発生したってsuccess=falseだから
いずれにせよ初期化はされるんだ。
ってことはやっぱ二重初期化は本来必要ないってことだよね?
>>21の後半は取り消しで。

>>18 >>22
LargeStruct hoge;
bool ok = false;
try {
 ok = PossiblyThrowsError(out hoge);
} catch { ok = true; hoge = new LargeStruct(); }
if (!ok) hoge = new LargeStruct();

ってことっすね。失敗時の初期化が二箇所に分かれるのは気持ち悪いけど、
これしかなさそうですね。
25デフォルトの名無しさん:2007/07/20(金) 03:05:10
なんでokとかifが要るの?
2610:2007/07/20(金) 03:12:28
>>25
まあこういうメソッドがあったらという仮定というか前提の上での話なんで。
PossiblyThrowsErrorがfalseを返した場合、hogeは何らかの初期化がなされてるとはいえ
何が入ってるかはわからないので初期化しておきたいという話です。
27デフォルトの名無しさん:2007/07/20(金) 04:23:04
例外が投げられた場合と偽が返った場合の二つを失敗とみなすなら初期化が二箇所に分かれるのは止むをえんだろうな。
まあ、実際にそういうメソッドがあるなら設計を見直したほうがいいと思うが。
28デフォルトの名無しさん:2007/07/20(金) 06:28:24
>>10
LargeStruct hoge = null; 
29デフォルトの名無しさん:2007/07/20(金) 06:45:33
とりあえず前スレ使い切ろうぜ

C#, C♯, C#相談室 Part40
http://pc11.2ch.net/test/read.cgi/tech/1181979651/
30デフォルトの名無しさん:2007/07/20(金) 07:03:03
>>28
値型だから
LargeStruct? hoge = null;
じゃないと駄目。

>>10
やっぱりPossiblyThrowsErrorが例外を投げるのが諸悪の根源じゃねw
31デフォルトの名無しさん:2007/07/20(金) 07:13:34
例外投げるか bool&out 構造にするかのどっちかにはっきりするべきだな
32デフォルトの名無しさん:2007/07/20(金) 07:16:48
とりあえず前スレ使い切ろうぜ

C#, C♯, C#相談室 Part40
http://pc11.2ch.net/test/read.cgi/tech/1181979651/
33デフォルトの名無しさん:2007/07/20(金) 07:45:43
>>30
値型かそしたらこれで初期化。
LargeStruct hoge = new LargeStruct(); 
34デフォルトの名無しさん:2007/07/20(金) 10:57:04
いやでもこういう設計が必要なケースはあるんじゃないか?
想定範囲内のエラーでは例外はコストが高いのでfalseを返し、
想定しないエラーはより情報の多い例外を使う、とか?
35デフォルトの名無しさん:2007/07/20(金) 10:58:16
TryGetValueでいいわな
関係ないけどLargeStructという名前にすごく違和感を感じる
36デフォルトの名無しさん:2007/07/20(金) 11:08:32
>>33
structをnewで初期化するはそれで正しいのだろうけどひどく違和感がある。
=で代入してないんだよなそれ。
37デフォルトの名無しさん:2007/07/20(金) 11:55:19
LargeなStructならClass使うべきじゃね?
38デフォルトの名無しさん:2007/07/20(金) 12:39:26
>>24
hoge を if の中で宣言するんじゃだめなのか?
if の中でしか初期化しないものを、if(!ok) 以外の時にも使うとは思えない。

>>34
例外処理である try の中でさらに例外起こすような処理してるのも気持ち悪いけど。

>>37
そう思う。
struct にするのは、せいぜい十数バイトくらいまでだと思う。
39デフォルトの名無しさん:2007/07/20(金) 13:23:05
ところでstructを使うメリットは
40デフォルトの名無しさん:2007/07/20(金) 15:26:43
PODとしてP/invokeで使える
41デフォルトの名無しさん:2007/07/20(金) 15:39:36
string.Emptyと""って何が違うんですか
42デフォルトの名無しさん:2007/07/20(金) 15:52:45
>>24
もしホントにそれだけの処理なら、
try {
 if (!PossiblyThrowError(out hoge))
  throw new Exception("hoge is not initialized");
} catch {
 hoge = new LargeStruct();
}
でいいんじゃない?
43デフォルトの名無しさん:2007/07/20(金) 16:08:26
>>41
参照が違います
44デフォルトの名無しさん:2007/07/20(金) 19:32:34
全然関係ない話で申し訳ないが質問。

System.Windows.Forms.ListViewのオーナー描画に関して

DrawListViewSubItemEventArgsで、DrawText()で描画したテキストの位置と
DrawDefaultプロパティをtrueに設定して描画されたテキストの位置が異なるんですよ。
オーナー描画している行もデフォルトで描画されたものとテキストの位置と
同じ位置に描画して欲しいんですが、どうすればよいのでしょうか?
4544:2007/07/20(金) 19:36:11
なんか書き忘れていた。

開発環境はVisualStdio2005
OSはWindowsXP

知りたいことはオーナー描画時にDrawDefaultプロパティを使用せずに
デフォルトと同じ描画を行うにはどうすればよいのか、ということです。
46デフォルトの名無しさん:2007/07/20(金) 19:45:58
>>44
ReflectorでListViewの実装を覗けば
自己責任で
47デフォルトの名無しさん:2007/07/20(金) 22:21:06
>>45
スタイルで位置が変わるんじゃないの?
ウィンドウ枠とか...
48デフォルトの名無しさん:2007/07/20(金) 22:25:05
なんか、TreeViewでの描画ロジックとか専用のAPIがあったような気が・・・
49デフォルトの名無しさん:2007/07/20(金) 23:29:49
vista対応で困っているのでどなたかアドバイスお願いします。

VS2003 C# framework1.1の環境でwindowsアプリを開発しているのですが、
Vistaでのみ二重起動されたときに先に起動していたプログラムをアクティブにする処理で例外が発生します。
ソースはほぼ下記のサイトのままです。
ttp://jeanne.wankuma.com/tips/process/activewindow.html

どうやらProcess.GetProcessesByName()ですべてのProcessを取得しようとするとUAC制御に引っかかるみたいです。
ユーザーが実行しているプロセスだけ取得する方法や、他に指定のプロセスをアクティブにできる方法がございましたら
教えていただけると幸いです。
50デフォルトの名無しさん:2007/07/20(金) 23:48:20
なんでいまどき1.1?
51デフォルトの名無しさん:2007/07/21(土) 05:46:39
環境を自分で選べることの方が珍しい
52デフォルトの名無しさん:2007/07/21(土) 09:57:32
C#を使って、非.netアプリを作ることは出来ますか?
53デフォルトの名無しさん:2007/07/21(土) 10:03:24
>>52
できません
54デフォルトの名無しさん:2007/07/21(土) 10:09:12
使えねー言語だな。
55デフォルトの名無しさん:2007/07/21(土) 10:10:57
むしろ.netが使えないC#なんて・・・
56デフォルトの名無しさん:2007/07/21(土) 10:12:16
そうじゃなくて、.netアプリも非.netアプリも両方できたら使えるだろ。
57デフォルトの名無しさん:2007/07/21(土) 10:16:05
そのためにキモイ拡張しまくったら結局C++/CLIと同じになっちゃうよ
58デフォルトの名無しさん:2007/07/21(土) 10:24:19
自分はネイティブアプリ作成にはVC++使ってる
.NetアプリはVC#使ってる
59デフォルトの名無しさん:2007/07/21(土) 12:11:58
単なるプログラミング言語なんだから、.netに依存しないバイナリをコンパイルできてもいいだろ。
60デフォルトの名無しさん:2007/07/21(土) 12:14:18
C#の言語としての簡素さを実現するために裏でどんだけの
仕事をしているのか想像つかんのかしら。

intひとつとってもそこにある型情報をどこで管理してるんでしょーね。
61デフォルトの名無しさん:2007/07/21(土) 12:39:22
>49
1.1だとなんでもないと思うような処理が内部でUACに引っかかるものを使ってるので2.0にするだけで解決するよと思うよ。
取りあえず2.0を使うよう指定したアプリケーション構成ファイルを配置して実行してみたら?
SendKeyなんかはUACに引っかかるものの修正パッチが出てたのでがんばって指摘してけばパッチが出るのかもしれんがVistaをターゲットにするなら1.1を捨てた方が早い。
62デフォルトの名無しさん:2007/07/21(土) 14:50:47
char**型の引数をもつ関数をP/Invokeしたいのですが、
C#側での定義がわかりません。StringBuilder[]で試してみたのですが、
正しく渡せていないようです。ご存知の方、ご教授お願いします。
63デフォルトの名無しさん:2007/07/21(土) 14:55:57
ref StringBuilderは?
64デフォルトの名無しさん:2007/07/21(土) 14:57:45
今度会社で今までVC+6で作成していたアプリを
VC#に以降することになりました。
ぶっちゃけVC#でVCの機能であぼ〜んされて
まんま移行できなくなる機能とかってありますか?
それともVC#で今までのコードをまんま移行できるくらい
問題ありませんか?
(それでしたら導入の意味ないだろって突っ込まれそうですが
馬鹿な顧客が新しいもの好きで深い考えなしに要求してきたのです)
65デフォルトの名無しさん:2007/07/21(土) 15:01:26
>>62
データの型(char**)だけ書かれてもエスパーにしか解答できないでしょ。
char**で渡すデータの意味がわからないと。
66デフォルトの名無しさん:2007/07/21(土) 15:04:22
>>64
まんま移行って何?
もとのコードのままVC#で再コンパイルって事?
コードは書き直さないといけないよ
C/C++とC#は別の言語
67デフォルトの名無しさん:2007/07/21(土) 15:06:20
>>64
VC++で作ってた部分をネイティブdllにまとめて
エントリポイントをC#から呼び出すだけでいいんじゃね
68デフォルトの名無しさん:2007/07/21(土) 15:06:28
>>63>>65
説明が不足しており、もうしわけありません。
main(int args, char** argv)に渡すやつです。
ですから、参照渡しではなく文字列配列です。
69デフォルトの名無しさん:2007/07/21(土) 15:21:48
すいません、どうもありがとうございました。
C#が基本的にC++の拡張というわけではないんですね。
誰だVCとC#は同じようなもんだって言ってた奴は・・・
70デフォルトの名無しさん:2007/07/21(土) 15:23:19
>>68
これじゃダメ?
http://msdn2.microsoft.com/ja-jp/library/hk9wyw21(VS.80).aspx
71デフォルトの名無しさん:2007/07/21(土) 15:25:05
>>69
それC++/CLIの間違いじゃないの?
C++を拡張したVC++2005で使える新言語
72デフォルトの名無しさん:2007/07/21(土) 15:27:48
[In, Out] string[] argvじゃね?
73デフォルトの名無しさん:2007/07/21(土) 15:31:24
>>71
ああ、そうかもしれんね
>>69
だとしたらとりあえずこの辺り読んでみるといいかも
http://ja.wikipedia.org/wiki/C++/CLI
http://msdn2.microsoft.com/ja-jp/library/ms235289(VS.80).aspx
74デフォルトの名無しさん:2007/07/21(土) 15:32:27
違います。どうにもC#らしいです。
まあ将来を見据えてのことでもらしいんですが。
ちょっとだけ独習したんですが
クラスやらなにやらの概念はそれほど違ってないっぽいですが。
後、MFCなどの利用もやろうと思えば今まで通り利用できるんですよね?
C#習熟者から見てものっそい冗長なことしてるって思われるだけで
75デフォルトの名無しさん:2007/07/21(土) 15:39:16
MFC使ってる部分は.NetFrameworkのクラスに書き換えたほうがいい
76デフォルトの名無しさん:2007/07/21(土) 15:39:35
結局>>74は何がいいたいんだろうか。。
77デフォルトの名無しさん:2007/07/21(土) 15:41:42
移行するなら手で100%書き直し以外にはありえない
78デフォルトの名無しさん:2007/07/21(土) 15:41:52
何のMFCのクラス使ってるの?
79デフォルトの名無しさん:2007/07/21(土) 15:43:00
どっちみちネイティブC++のクラスは使えないよ
80デフォルトの名無しさん:2007/07/21(土) 15:44:40
ほとんどです。API関数はそれほどでもないですが。
応用がきくとかいう考えは止めたほうがいいってことですね。
なんかスレ荒らしみたいになってしまってすみませんでした。
81デフォルトの名無しさん:2007/07/21(土) 15:46:13
さてさて、C# だけれども。Java を意識しまくった言語だというのは
あちこちで言われているみたいね。
Java との比較としていくつかのポイントがあるんだけど、
そのなかでも delegate というのがどうにも乱暴な機能だなぁと思います。

 つーか、言語設計者は何考えてんだと突っ込みたくなるね。
82デフォルトの名無しさん:2007/07/21(土) 15:46:47
俺を雇えば万事解決するんだが
83デフォルトの名無しさん:2007/07/21(土) 15:47:36
>>81
日記はチラシの(r
84デフォルトの名無しさん:2007/07/21(土) 15:55:49
ま、Java もクロージャ導入予定だがな
85デフォルトの名無しさん:2007/07/21(土) 16:03:22
10年以上前のまつもとゆきひろ氏の発言。
現状のJava VS Rubyの状況の伏線と思うと興味深い。

ttp://java-house.jp/ml/archive/j-h-b/001862.html
>Javaでは無理なんじゃないでしょうか?
>
>こういうのを「オブジェクト指向的に美しく」実現するには(私の
>思い付く方法は),
> * 特異メソッド(特定のオブジェクトにメソッドを定義する)
> * クロージャ(手続きをオブジェクト化する)
>がありますが,どちらもJavaにはありません(よね).
>
>JVMのコードを吐くschemeの計画などあるようですから,それがで
>きれば後者は実現できるかも知れませんね.
>
> まつもと ゆきひろ /:|)
86デフォルトの名無しさん:2007/07/21(土) 16:04:10
すっかりJavaを追い越しちゃって最近はJavaに意識されてるからな
87デフォルトの名無しさん:2007/07/21(土) 16:06:16
「ひろみちゅdelegateを語る」、の巻。

ttp://java-house.jp/ml/archive/j-h-b/019802.html
>次に、"delegate" という言語機能そのもののセンスの悪さについて考えてみ
>ましょう。
>
>(中略)
>
>以下、もしこの予想が当りなら、ですが、
>
>なんとまあセンスの悪い言語設計でしょう。こういうのが本当に有効なのなら、
>言語とは別のレベルでフレームワークとして用意すべきではないでしょうか。
>プリプロセッサにしてもいいし、開発環境が自動生成するのでもいいし、rmic
>のようにスタブジェネレータを併用してもいいでしょう。
>
>そんなんでは世の unsophisticated people が便利じゃないと感じるだろうか
>ら、レベルが違うものを言語の中にごちゃ混ぜに入れ混んでしまったのでしょ
>うか。やはり「unsophisticated peopleに媚びた設計」か?
>
>そもそもまともな言語設計者ならポリシーが許さないとおもうんですが、
>もしかして、Hejlsberg 氏自身が unsophisticated なのかな。
>
>(中略)
>
>高木 浩光@電子技術総合研究所
>http://www.etl.go.jp/~takagi/ (工事中)
>#「ms.com」は米国モルガンスタンレー証券のドメイン名です。
88デフォルトの名無しさん:2007/07/21(土) 16:08:52
>言語とは別のレベルでフレームワークとして用意
されてんじゃね?
89デフォルトの名無しさん:2007/07/21(土) 16:13:03
なんとまあセンスの悪い文章でしょう。
90デフォルトの名無しさん:2007/07/21(土) 16:14:27
コピペ君って本当馬鹿だよな。

別に他人の意見を参照することが悪いとは言わないが、(むしろ好ましいが)
ただコピペして何の意味があるのかね。

他人の威を借りて自分を大きく見せてるつもりか。
だとしたら情けない心情だよなw
91デフォルトの名無しさん:2007/07/21(土) 16:15:05
うん
92デフォルトの名無しさん:2007/07/21(土) 16:22:14
ふらっとレベルの質問の後は厨レベルの言語比較か
・・・夏だな
93デフォルトの名無しさん:2007/07/21(土) 16:22:31
高木はいつ見ても痛いな
94デフォルトの名無しさん:2007/07/21(土) 16:24:14
>>88
ひろみちゅが語ってるのは、ドトネトのdelegateじゃなくて
Visual J++時代にMS拡張として提案されてた奴のことね。
ttp://www.asahi-net.or.jp/~dp8h-izn/delegate.html
95デフォルトの名無しさん:2007/07/21(土) 16:30:13
さんざんjavaの真似だといい続けて、javaに無い機能については汚い、いらない言い続けて、
結局javaに導入されまくってるのは悪い冗談かと思ったわ
96デフォルトの名無しさん:2007/07/21(土) 16:31:58
>>95
ヒント:「Java子はツンデレ」
97デフォルトの名無しさん:2007/07/21(土) 16:35:49
>以下、もしこの予想が当りなら、ですが、
仮定してまで批判したいものだったのかね
98デフォルトの名無しさん:2007/07/21(土) 16:49:04
批判大好きですから^^

tp://takagi-hiromitsu.jp/diary/
99デフォルトの名無しさん:2007/07/21(土) 16:50:05
delegate 設計したヤツはバカ その1
http://blog.goo.ne.jp/akatoza/e/a25ea26da02640b53f509d46a36ac0e2

語ってください。
100デフォルトの名無しさん:2007/07/21(土) 16:59:28
>>99
>でもどんな関数でも delegate に利用できるわけじゃないんだよね。
>始めにこれに気付いたときはびっくりした。
>ちょっと勘弁してくれ、と思ったね。
>プロパティを delegate に利用できないなら、
>結局プロパティより getter/setter を使うほうが有利になっちゃうってことだよね。
>これじゃ本末転倒じゃないの。

Hoge x;
Action<int> setter = i => x.IntProp = i;
Func<int> getter = () => x.IntProp;

まあ一段ラップされるからあんまり綺麗じゃないけど。
101デフォルトの名無しさん:2007/07/21(土) 17:03:01
生暖かく見守ろうよ。
102デフォルトの名無しさん:2007/07/21(土) 18:32:06
delegateに限らず、知らん人間が一方的に話した内容なんて
普通「ふ〜ん、そういう意見もあるのね」で終わりじゃねーの?
103デフォルトの名無しさん:2007/07/21(土) 20:18:40
privateメソッドか匿名メソッドを書いて間に挟めばいいだけじゃないの?
プロパティって外からはフィールドのように見せるのが目的なんだから突然メソッドに変身するのは変だろ
104デフォルトの名無しさん:2007/07/21(土) 20:31:03
何でそんな変態プログラムがすきなんだろうね。
普通にデリゲートで出来ることだけやればいいのに。
105デフォルトの名無しさん:2007/07/21(土) 21:05:29
とりあえずヘジより>>99のリンク先が馬鹿なのは確か
106デフォルトの名無しさん:2007/07/21(土) 21:14:45
delegate int Getter();
int X{get{return 1;}}
Getter f = new Getter(get(this.X));
こんな感じにすればいいの?
107デフォルトの名無しさん:2007/07/21(土) 21:46:38
リフレクションでいいよ。
108デフォルトの名無しさん:2007/07/21(土) 22:02:41
Getterって文字見るだけど嫌だ。
109デフォルトの名無しさん:2007/07/21(土) 22:09:03
日本語でおk
110デフォルトの名無しさん:2007/07/21(土) 22:32:11
見るだけど
111デフォルトの名無しさん:2007/07/21(土) 23:33:55
Graphics.DrawString メソッド (String, Font, Brush, PointF, StringFormat)
ってStringFormatにStringAlignment.Far(右寄せ)を指定すると
勝手にPointFが左上隅ではなくて、右上隅になるんだな
良いお節介だけど俺が文字列の幅求めた意味がねえええ
112デフォルトの名無しさん:2007/07/21(土) 23:57:28
>>99ワロタ
ってかプロパティに使えないから馬鹿って言ってるのかよ。
プロパティはそもそもスマートフィールドのような目的が主であって、
デリゲートが主に対象とする「処理」を行うものじゃないだろうに。
113デフォルトの名無しさん:2007/07/22(日) 00:10:48
>>99
馬鹿というより、知識が5年は遅れてるな。日付を思わず確認して
しまうぐらいに。

その辺の時期は皆C#をよく知らずに書いてたからさ、結構いい加減なのよ
114デフォルトの名無しさん:2007/07/22(日) 00:16:58
>>111
RectangleFを受けるオーバーロードがあるでしょ
115デフォルトの名無しさん:2007/07/22(日) 00:26:52
>>111
値型を渡してるのに呼び出し先で元の値が変わるわけないでしょ。
116デフォルトの名無しさん:2007/07/22(日) 00:29:06
>>115
誤爆?
117デフォルトの名無しさん:2007/07/22(日) 00:32:16
いや誤爆じゃない。

でもすまん、PointFで指定した位置が描画される文字列の右上隅になる、
という意味で111は書いているみたいだね。
118デフォルトの名無しさん:2007/07/22(日) 00:42:43
せっかく頑張って幅求めて右寄せコード書いたのにこれで一発じゃねーかウワワーン

と、いいたいんじゃないの?
そうなら良いお節介の使い方が怪しいから分かりにくいのだと思われ
119111:2007/07/22(日) 00:47:02
縦横のStringAlignmentに応じてPointFの示す位置が変わるようだ
StringAlignment.Centerだと中央になる

このほうが便利だけど、MSDNには「PointFは左上隅」としか書いてないもんでね
左上隅だと思い込んでいたので、必死で位置の計算見直してたw
120111:2007/07/22(日) 01:04:56
うんまあ、ちょっと仕様に感心したのでつい書き込んでしまった
文字の右端を目標に合わせたかったんだけど
描画には左上隅が必要だというから、文字の幅を求めて左上隅を計算したのに
PointFはStringAlignmentに応じて示す位置が変わってくれるというオチだった
121デフォルトの名無しさん:2007/07/22(日) 01:54:59
縦書きとか右からとかサポートはしてるけど
やっぱりMSも左横書きのことが念頭にあるんでしょう。

イスラエル人とかアラブ人から俺のアプリ文字表示が変だよとか
メールくるけどどうしたらいいのか検討もつかない
122デフォルトの名無しさん:2007/07/22(日) 10:09:42
>>99
増えてるワロタ
なんとなくこいつのスタンスが分かる
123デフォルトの名無しさん:2007/07/22(日) 10:14:22
こいつはあれか。
例えばjavaのインターフェースと検査例外は相性悪いから設計したやつは馬鹿とか
配列とArrayListがあっても使い分けなきゃならないから
配列設計したやつは馬鹿とかいうのか
124デフォルトの名無しさん:2007/07/22(日) 10:16:11
そもそも機能自体もちゃんと理解せずに書いてるしな。
125デフォルトの名無しさん:2007/07/22(日) 10:21:27
下らん。

言っちゃ悪いが、よくいるキチガイヲッチ大好き人間ってキチガイの「類友」
にしか俺には思えんよ。

なんにしろ、どこかにヲッチスレみたいのがあるだろうからそっちでやれよ。
126デフォルトの名無しさん:2007/07/22(日) 12:57:38
ないよ
127デフォルトの名無しさん:2007/07/22(日) 13:36:45
>パンおいしいねん!
まで読んだ。
128デフォルトの名無しさん:2007/07/22(日) 14:38:14
msdnのコントロールの継承のチュートリアル見ながら
ValueButtonLibを書いてるとおりに作ったのに
toolboxには何にも追加されない。
なんでだろ、なんでだろ・・・・・・・・・・
129デフォルトの名無しさん:2007/07/22(日) 14:47:21
ValueButtonのデザイナ画面のままじゃないか?
フォームとか他のデザイナを開いてみろ
130128:2007/07/22(日) 23:50:49
自己解決しました。
作ったコントロールのdllを、toolboxの参照で加えてなかったからでした。
131デフォルトの名無しさん:2007/07/23(月) 00:20:07
C#ってどこまで言語仕様で決められてるの?
System名前空間のないC#の実装ってありうるの?
132デフォルトの名無しさん:2007/07/23(月) 00:31:00
>>131
すべてのオブジェクトがSystem.Objectの派生である以上は
System名前空間の無い実装はありえないと思うんだけども。
133デフォルトの名無しさん:2007/07/23(月) 00:34:46
>>131
ECMA, JISはタダで読めるんだから読んでみれば?
134131:2007/07/23(月) 00:35:08
気になって言語仕様のドキュメント見てみたら
「objectはSystem.Objectの別名である」とか普通に書いてあるね
135デフォルトの名無しさん:2007/07/23(月) 02:02:36
メインのフォームをLoadイベントが完了するまで非表示にしたいのですが
exeのショートカットで「実行時の大きさ」を最大化にすると、
コンストラクタでVisible=falseにしたり、CreateParamsで
WS_VISIBLEを削除しても、Loadイベントの時にはすでに表示されて
しまいます。

これを非表示にするにはどうすればいいのでしょうか?
お願いします。
136デフォルトの名無しさん:2007/07/23(月) 13:16:46
現在、業務アプリケーションをサーバに置いて、
複数のユーザがリモートデスクトップでサーバに
接続してサーバ側で利用する形態になっています。
そこで、ユーザがサーバからログオフせずにリモート
デスクトップを切断した際、アプリケーションを終了
させたいのですがリモートデスクトップのセッションが
切断された時にアプリケーションに通知されるのでしょうか?
ご存知の方がいらっしゃいましたら教えて下さい。
137デフォルトの名無しさん:2007/07/23(月) 13:47:07
>>136
このあたりかなぁ。どっちにしろP/Invokeを使うことになる。
WTSQuerySessionInformation
138デフォルトの名無しさん:2007/07/23(月) 14:46:50
>>137
どうもありがとうございます。
「WTSQuerySessionInformation」を手がかりに調べてみたいと思います。
139デフォルトの名無しさん:2007/07/23(月) 16:45:43
あるForm(フロートフォーム)のOwnerプロパティにほかのForm(オーナーフォーム)をセットしてShowしてもフロートフォームがオーナーフォームの背面に行ってしまうことがあるんだが,何故でせう・・・
フロートフォームはToplevelです。
オーナーフォームをAlt+Tabなどで一度背面に持っていってフロートフォームを表示しなおすと前面に出てきます。
140139:2007/07/23(月) 16:58:58
フロートフォームが後ろに表示される場合、ほかのアプリをクリックしてアクティベートした後、オーナーフォームをアクティベートするとフロートフォームも前面に出てきます。
141デフォルトの名無しさん:2007/07/23(月) 20:38:59
Showするときにowner指定したらどう?
142デフォルトの名無しさん:2007/07/23(月) 20:40:12
>>135
>exeのショートカット

ってなんだっけ?
143デフォルトの名無しさん:2007/07/23(月) 21:11:37
>>141
Showする前にSetWindowPosでSWP_NOMOVE|SWP_NOSIZE|SWP_NOACIVEで手前に持ってくるようにしたらとりあえず前に出てきました。

でもOwnerに親ウィンドウのハンドルが設定されてるのに(Spyでみた)手前に来ないことってあるんですかね
144デフォルトの名無しさん:2007/07/23(月) 21:15:02
>>139
具体的なコードを示してくれんと何とも言えんけど
解決したのならもういいか。
145デフォルトの名無しさん:2007/07/23(月) 21:20:33
>>144
大きいアプリケーションで出たものなので依存関係の切り分けまでできていないのでコード出せません(´・ω・`)
とりあえずさしあたってのトラブルは回避できそうですが、問題(Ownerに設定されてるのに前面に出てこないこと)自体が解決されてるわけでもなす・・・
なんか気持ち悪い。
146デフォルトの名無しさん:2007/07/23(月) 21:24:18
>>143
それって必ず再現するの?
それと子ウィンドウを表示するタイミングは?
最大化するのはその親ウィンドウ?

実際見てない漏れたちからすれば調べるところはいっぱいあるんだが
147145:2007/07/23(月) 21:32:35
>>146
1.必ず再現します。
2.キーイベントで。
3.最大化は今回関係ないです。たとえば500,500の大きさのオーナーウィンドウから1000,100の大きさのフロートウィンドウを表示しようとするとオーナーウィンドウの後ろにフロートウィンドウがはみ出して表示される感じです。
SetWindowPosすることで前面には出るようになりましたが。
コード切り出そうかと思ってちょっと見てみたんですが、いろいろと食い込んでるのでちょっと難しそうです・・・(ノД`)

Ownerセットされながら前面に表示されるないのは何か見落としがあるんですかね?
148デフォルトの名無しさん:2007/07/23(月) 21:38:08
form2.Show(this);
とか
149デフォルトの名無しさん:2007/07/23(月) 22:02:43
そんな馬鹿なことしないだろw
150デフォルトの名無しさん:2007/07/23(月) 22:16:18
Win95のときはドライバのバージョンによってそんな動きもあったが・・・
151デフォルトの名無しさん:2007/07/23(月) 22:26:21
フロートフォームってなんだ?
152デフォルトの名無しさん:2007/07/23(月) 22:41:09
ドキュメントコメントからHTMLなどへの変換にはNDocとかありますけど、
それとは別に、特定の形式で書いた仕様書から、整形したHTMLや、
ドキュメントコメントつきの未実装コードを生成してくれるツールってないでしょうか?

できる人はXSLTあたりでサクッとやっちゃうんでしょうか?
153デフォルトの名無しさん:2007/07/23(月) 22:42:59
スレタイよんでね。

unixの人に聞いたら?
154146:2007/07/23(月) 23:11:32
>>147
じゃあ2のキーイベントやめてボタンで表示とかに変えてみて。
155デフォルトの名無しさん:2007/07/24(火) 01:19:42
>>154 それ何の意味あんのよ?
156デフォルトの名無しさん:2007/07/24(火) 11:44:22
WindowsFormのTabControlでMultilineをtrueにすると、タブの複数行表示が可能になりますが、
実際にタブの数が増えて複数行になった場合に、上の行に存在するタブを選択すると、
そのタブがアクティブになると同時に、タブの上下が入れ替わってしまいます。
つまり、常に下の行のタブがアクティブになるように、自動的に入れ替えが発生します。

このタブの上下の入れ替えを抑制して、最初に作られたままのタブ順序を維持することは
不可能なのでしょうか?
157デフォルトの名無しさん:2007/07/24(火) 12:08:48
自分でタブコントロール作ればおk
158デフォルトの名無しさん:2007/07/24(火) 12:25:11
>>156
冷静に考えてみ、それってどういうビジュアルにするつもりよw
159デフォルトの名無しさん:2007/07/24(火) 12:30:51
まあクリックしたタブの位置がその場で移動しちゃうから違和感あるが
どれも同じ動作するから慣れてもらうほうがいいぜ
160156:2007/07/24(火) 12:55:27
実は、ブラウザのようなものを作っている最中なのです。
Donut系は、開くサイトが増えても、>>156のようになっていて、タブの位置は変わりません。

ちなみに、IE7だと、タブの制御はどうなっているのでしょうか?入れ替わります?

とりあえず、Multilineをfalseにしてしのぎつつ、解決策を探します・・・。
161デフォルトの名無しさん:2007/07/24(火) 13:03:13
ぶっちゃけ独自のコントロール作ったほうが幸せになれると思う。
162156:2007/07/24(火) 13:08:34
確かに、CodeProjectにいくつかカスタムコントロール出ているので、
その辺りを参考にした方が良い気がしてきました。
タブ列の右端に「閉じる」ボタンを置いたほうがスマートな気もしてきたし。
163デフォルトの名無しさん:2007/07/24(火) 13:30:24
つーかタブブラウザはほとんど2段にならんよ
横スクロールするだけ。数が増減するタブは
多段に向いて無いと思う
164デフォルトの名無しさん:2007/07/24(火) 13:35:30
多段か一列かはユーザーに選択肢を与える方がいいな
165デフォルトの名無しさん:2007/07/24(火) 17:51:19
>>156って実質ラジオボタンじゃないのか
166デフォルトの名無しさん:2007/07/24(火) 19:00:30
タブブラウザはいい加減ツリーブラウザに進化して欲しい。
表示面積を食うのが難点だが。
167デフォルトの名無しさん:2007/07/24(火) 19:23:00
>>166
ツリーが好きな人っているんだねw

まあ好き嫌いは横においても、ツリーはドキュメントの選択には向かないと思うけどな。
168デフォルトの名無しさん:2007/07/24(火) 20:35:01
何で?
タブはリニアなコンテナで、ツリーは階層化されたリニアなコンテナなだけだぞ?
169デフォルトの名無しさん:2007/07/24(火) 20:45:08
そうかな?
複数選択したりいろいろ違うと思うがな?
170デフォルトの名無しさん:2007/07/24(火) 21:45:27
どういういみ?
171デフォルトの名無しさん:2007/07/24(火) 21:59:30
その次の世代の有向グラフブラウザに挑戦だ!!
172困っております:2007/07/25(水) 00:20:11
C#のことをほとんど知らず、質問するのも申し訳ないのですが
コマンド形式の実行ファイルの作成のために
VC6++からCOMを使用して、C#のDLLの関数に
結果格納用の変数(BTSTR型)を引数に渡して、やり取りしたいのですが
コンパイルすらとおりません。
関数の型は以下の通りです。

UINT GetVersion(BTSTR *Version);

当方としては、bstr_tで変数を作り、
引数に渡せばよいのかと思い
以下のように、色々試してはみたのですが、
コンパイルエラーが発生してしまいました。

bstr_t bVersion
pp->GetVersion(&bVer);

BTSTRの受け渡しはどのように行うべきなのでしょうか。
また受け取ったBTSTRをchar型の変数に変換することも可能なのでしょうか
分かる方がおりましたら御教授をよろしくお願い致します。
173デフォルトの名無しさん:2007/07/25(水) 00:25:04
ごめん質問の全体像が見えないや…
c#でとらぶってるの?それともc++

コンパイルエラーってどんな内容?
174困っております:2007/07/25(水) 00:45:59
>>173
「型が変換できません」という引数の型と一致してない
ときにでるようなエラーが出ます。
そもそも、Cでしか作成したことが
ないので、BTSTR型がどういうものか
理解していないのが悪いのですが、CからC#の関数
にアクセスせざるえなくなり・・・
受け渡しはむりなのでしょうか?
申し訳ありませんがお願い致します。
175デフォルトの名無しさん:2007/07/25(水) 02:33:01
C#っていうよりCOMの話じゃね?
そもそもコンパイルできないんじゃC#とはますます関係ない
176デフォルトの名無しさん:2007/07/25(水) 04:37:31
BTSTR? BSTRでしょ。

BSTR bVer = NULL;
pp->GetVersion(&bVer);
bstr_t bstrVer(bVer);
177困っております:2007/07/25(水) 07:11:42
>>176
ご回答の方法を試してみます
有難うございました。
178デフォルトの名無しさん:2007/07/25(水) 07:21:54
マルチするなとは言わんがそれなりの筋は通せと思う今日この頃
179C ◆N1mkQ4hBnU :2007/07/25(水) 11:24:20
突然に失礼します。
HTMLのFORMからの情報をC#で受け取りたいのですが、どうしても出来ません。
よろしくお願いいたします。

=====HTMLデータ=====
<HTML><BODY>
<FORM action=aaa.exe method=port>
<SELECT name="data">;
<OPTION value="1">1
<OPTION value="2">2
</SELECT>
<INPUT type=submit value="表示">
<INPUT type=hidden name=srt value=0>
 ID:<INPUT type=text name=user>
</FORM>
</BODY></HTML>

=====C#データ(aaa.cs)=====
using System;using System.IO;using System.Data;using System.Web;using System.Web.UI;
public class view{
public static void Main() {
string data0 = HttpContext.Current.Request["data"];
Console.WriteLine("Content-type: text/html\n");
Console.WriteLine("<HTML><BODY>");
Console.WriteLine(data0);
Console.Write("</BODY></HTML>\n");
}
}

自分が作ったものは以上です。間違いだらけだとは思いますが、教えてください。よろしくお願いいたします。
180デフォルトの名無しさん:2007/07/25(水) 11:32:39
CGIをわざわざC#で作るのか!C#使うならASP.NETを使えよ。
趣味でやってるなら止めないが仕事ならよしたほうがいい。
181デフォルトの名無しさん:2007/07/25(水) 11:37:24
趣味でも止めたほうが。
182デフォルトの名無しさん:2007/07/25(水) 11:56:24
>>179

ウェブサーバとCGIって標準入出力でやり取りするんじゃなかったっけ?
HttpContextには何にも入っていないのあたりまえだと思うけれど…。
C#でCGIなんて考えたこともなかったもんで間違ってたらスマソ。
183デフォルトの名無しさん:2007/07/25(水) 12:04:26
>>179
http://www.codeproject.com/csharp/cgi_csharp.asp
GETで渡したデータならSystem.Environment.GetEnvironmentVariable("QUERY_STRING")でいいらしいけど
POSTはややこしいみたい。
184デフォルトの名無しさん:2007/07/25(水) 12:12:14
いや、、、標準入力取れればOKだよ、POSTも
185デフォルトの名無しさん:2007/07/25(水) 12:12:46
LANクリップボードというソフト経由でクリップボードに入ってくる画像データを取得できません。
http://quickware.a-quest.com/lanclip/about.htm

if (data.GetDataPresent(DataFormats.Bitmap)) {
Image img = (Image) data.GetData(DataFormats.Bitmap, true);
// img の値が null に
}

アクセサリのペイントやワードパッドでは取得・表示できるのですが、
上記のコードでは失敗します。なぜでしょうか??
186179:2007/07/25(水) 12:35:26
大変お騒がせしました。
無事解決しました。ありがとうございます。
System.IO.ConsoleのInとOutを使ったら、うまくいきました。
大変失礼いたしました。
187デフォルトの名無しさん:2007/07/25(水) 14:27:20
classとinterface使い分けるの嫌気さしてきた('A`)

ダイヤモンド継承とかの話うまく考慮すればclassもinterfaceを使い分ける必要がどこにある?多重継承orMIXINできないとめんどくさいんじゃ《゚Д゚》ゴラァァァァァァァァァァァァア!!
188デフォルトの名無しさん:2007/07/25(水) 14:29:41
>>185
Clipboard.GetImageは?
189デフォルトの名無しさん:2007/07/25(水) 14:42:31
そのソフト、シェアウェアだから試す気にはならんが
クリップボードビューワで形式確認してみたら
190デフォルトの名無しさん:2007/07/25(水) 15:15:35
>>188
申し遅れました。
事情がありまして、.NET1.1で書いてますのでGetImageは存在しません
191デフォルトの名無しさん:2007/07/25(水) 15:23:54
>>189
DIB BITMAPの可能性が高いようなので、下記のようにしてみたのですが、これもダメでした・・・

Image img = null;
if (data.GetDataPresent(DataFormats.Dib)) {
  try {
   img = (Image) data.GetData(DataFormats.Dib, true);
  }
  catch {
    MemoryStream mem = (MemoryStream)data.GetData(DataFormats.Dib);
    img = Image.FromStream(mem);
  }
}
192デフォルトの名無しさん:2007/07/25(水) 15:41:12
JavaのDaoパターンをC#のウィンドウアプリに適応するのってどうなの?
トランザクション管理が難しそうで結局Daoオブジェクトにビジネスロジック実装して本末転倒になりそうなんだけど・・・●rz
193デフォルトの名無しさん:2007/07/25(水) 16:10:28
今時C#ってwwwwwwwwwwwwww
194デフォルトの名無しさん:2007/07/25(水) 16:31:32
>>191
じゃぁDataFormats.EnhancedMetafileかな
195デフォルトの名無しさん:2007/07/25(水) 16:36:50
>>192
君の言うJavaのDaoパターンというのが何をイメージしてるかはよくわからないけど、
プラットフォーム依存がでる部分じゃないと思うぞ?
DataSetがどうこうと言いたいのかも知れないがあれも必須じゃない。
196デフォルトの名無しさん:2007/07/25(水) 18:30:01
>>194
VisualStudioでウォッチすると、下記のようになっていて、
GetDataPresent(DataFormats.EnhancedMetafile)としてfalseになってしまいます。
なんなのでしょうかね

-data.GetFormats()  {Length=4}  string[]
  [0]  "DeviceIndependentBitmap"    string
  [1]  "System.Drawing.Bitmap"       string
  [2]  "Bitmap"                            string
  [3]  "Format17"                         string
197デフォルトの名無しさん:2007/07/25(水) 20:18:54
C#あんま使わないのにC#知らないと.net関連の本が読めないから困る
198デフォルトの名無しさん:2007/07/25(水) 20:23:57
>>197
つまり?
199デフォルトの名無しさん:2007/07/25(水) 20:25:20
C#1.1 の範囲なら大して特徴もない言語だろ
ほかの .NET 対応言語知ってればやりたいことは読めるもんだ
読もうともしない奴もいるけどな
200デフォルトの名無しさん:2007/07/25(水) 21:48:50
自分.NET言語はC#以外全然やらんけどサンプルコードとかがVB.NETとかC++/CLIで書かれてても読むよ
書けなくても使うクラス・メソッドとか使用手順とかは読み取れる
逆は難しいのか?
201デフォルトの名無しさん:2007/07/25(水) 22:04:02
C#なんてなにも難しいことないと思うんだけどな。
罠っぽい構文なんてないし。
202デフォルトの名無しさん:2007/07/25(水) 22:11:13
>>201
3.0はすばらしくキモイ(罠っぽい)書き方がいっぱいできますよ。
2.0まではjavaのパクリって感じだったけど3.0の変態っぷりは最高!
203デフォルトの名無しさん:2007/07/25(水) 22:11:51
つーかみんな3.0入れてるの?
204デフォルトの名無しさん:2007/07/25(水) 22:17:11
VS いらねと思って再頒布ファイルだけと思ったらインストーラがエラー吐くので放置
205デフォルトの名無しさん:2007/07/25(水) 23:02:33
来年くらいにはC#4.0の情報も出てくるのかな
この調子で突っ走ってほしい
206デフォルトの名無しさん:2007/07/25(水) 23:25:32
207デフォルトの名無しさん:2007/07/25(水) 23:54:17
>>205
3.0 なんて、2.0 の正式版が出た瞬間に仕様公開されたもんね。
来年には 4.0 の話出てもおかしくはない。
208デフォルトの名無しさん:2007/07/26(木) 00:56:55
>>207
いや、C# 3.0の最初のドラフト公開はC# 2.0正式版出荷前のはず。
209デフォルトの名無しさん:2007/07/26(木) 00:59:00
ぶっちゃけC#3.0のキモイ書き方を使いこなす自身あるんだが、それをすると他の人が理解できないコードになってしまいます('A`)
210デフォルトの名無しさん:2007/07/26(木) 01:00:30
あんなんLINQ以外で使いたくないなぁ
211デフォルトの名無しさん:2007/07/26(木) 01:11:46
ところでキモイ書き方ってのはどの辺指してんの?
LINQ? ラムダ式? var?
212デフォルトの名無しさん:2007/07/26(木) 01:27:36
個人的にvarはキモいな。LINQを実現するために仕方なく実装したんだろうけど。
213デフォルトの名無しさん:2007/07/26(木) 15:10:43
varってコンパイル時に右辺値の型に置き換えられるだけだよ
214デフォルトの名無しさん:2007/07/26(木) 15:12:28
ふらっとと同じ話題になってるな
215デフォルトの名無しさん:2007/07/26(木) 15:40:21
>>213
まあ、その通りなんだけど、
左右両辺に冗長に型を書くことが、人的エラー耐性につながったりもするから。
216デフォルトの名無しさん:2007/07/26(木) 17:28:12
右辺が単純にnewしてるだけの場合は使いたいと思う。
右辺がファクトリーとかの関数だったらしっかり型で定義したい。
前者の場合VBだと今でもやれてるんだけどね。
Dim xxx As New ABC()
217デフォルトの名無しさん:2007/07/26(木) 18:07:55
>>216
それは、でもなぁ、VS 使ってると、
ABC xxx = new まで打ったらあとはインテリセンスが効くしね。

エディタで書いてると、確かにたまにそういう機能欲しくなるけど。
218デフォルトの名無しさん:2007/07/26(木) 18:13:22
foreachはvar使いたい
どうせスコープ限られてるし
219デフォルトの名無しさん:2007/07/26(木) 18:31:55
んー自分はvar多用したい。
同じ定義を2個も書くのが耐え切れん。
220デフォルトの名無しさん:2007/07/27(金) 00:31:05
var 機能はいいんだけど
foreachコードスニペットのデフォルト変数がvarでかぶるのがやだなぁ
221デフォルトの名無しさん:2007/07/27(金) 02:52:54
まぁどんなモノにも長所・短所があって
長所のうちどれをセレクトするかの違いだね
222デフォルトの名無しさん:2007/07/27(金) 10:20:47
他人のソースで、stringとStringを使い分けているものがあるのですが、
どういう意図でstringとStringを使い分けているのでしょうか?

どうやら、クラス内やメソッド内のローカル値ではstringで定義し、
メソッド定義の際の返り値になるものでは意図的にStringを使っているようなのですが・・・。

こういう記述をすることで、何かメリットあります?

string str = "Hello";
String str = "Hello";

こういう初期化で始まるなら、どっちも同じですよね?
223デフォルトの名無しさん:2007/07/27(金) 10:23:15
どういう意図って、そんなもの書いた人間に聞けよ…
224デフォルトの名無しさん:2007/07/27(金) 10:29:05
自分はstaticメソッドを呼び出す時Stringを使う。
String.Format()とかString.IsNullOrEmpty()とか。
>>222の場合だったらstringで統一。
225デフォルトの名無しさん:2007/07/27(金) 10:29:41
しばらく見ていたのですが、Stringの方は激しく連結しまくっているので、
どうやら、そもそもStringBuilderを使うべきじゃないのかと・・・。

もしかして、激しく文字列連結するときの速度定価は、
string > String > StringBuilderだったりするのでしょうか・・・。

まぁ、だからといってStringを使う理由は、相変わらず分かりませんが。
元のがJavaからの移植で、たまたまそのままっていう線もありそうですな。
226デフォルトの名無しさん:2007/07/27(金) 10:36:02
>>224
どうも有り難うございます。
参考になります。私も気にせずにstringで統一する方向にします。
227デフォルトの名無しさん:2007/07/27(金) 10:38:03
あほなことを想像で言ってても得る物はない
228デフォルトの名無しさん:2007/07/27(金) 10:38:33
using String = MyString;
class MyString {
 public static implicit operator MyString(string s){
  return new MyString(s);
 }
 MyString(string s){
 }
}
229デフォルトの名無しさん:2007/07/27(金) 10:50:52
そもそもintとかstringとかは無くしてしまえばよかったのに
230デフォルトの名無しさん:2007/07/27(金) 10:57:02
>>225

  ( ⌒ ) ポッポー
   l | /

⊂(#・∀・)    String == string, Int32 == int,
 /   ノ∪         もうやってらんないっすよ!!
 し―-J |l| |
         人ペシッ!!
      (_)
     )(__)(_
    ⌒)   (⌒
      ⌒Y⌒
231デフォルトの名無しさん:2007/07/27(金) 11:02:23
本とかMSDNすら調べようとしない人が多いのに驚く
232デフォルトの名無しさん:2007/07/27(金) 11:05:11
いまさらそんなのに驚いてる人が居ることに驚く
233デフォルトの名無しさん:2007/07/27(金) 11:08:24
ふらっと込みでいうと、ここ数週間で3度目だぜ(string Stringネタ)
いくらなんでも非道いだろ とおもつた
234デフォルトの名無しさん:2007/07/27(金) 11:10:56
string = System.String ,  int = System.Int32
using System が抜けてる場合、
System.StringとかSystem.Int32 とか書かないとコンパイルエラーになる。
235デフォルトの名無しさん:2007/07/27(金) 11:19:56
javaみたいに全部
using Graphics = System.Drawing.Graphics;
using TextReader = System.IO.TextReader;

みたいに書いてる人っているのかな
236デフォルトの名無しさん:2007/07/27(金) 11:55:30
もうテンプレに入れとけよ
237デフォルトの名無しさん:2007/07/27(金) 11:57:07
まとめWikiとか無いの?
238デフォルトの名無しさん:2007/07/27(金) 13:54:31
つーかStringとstringの違い?
プログラム作っていったらイヤでも違いが分かると思うけど・・・。
C#は大文字と小文字を使い分けてなきゃいけないのに
何故そういった疑問を持つのか分からない。
239デフォルトの名無しさん:2007/07/27(金) 13:58:42
うん?
240デフォルトの名無しさん:2007/07/27(金) 13:59:05
こ?
241デフォルトの名無しさん:2007/07/27(金) 14:01:58
いや、だから人のソースで使い分けているものがあったから、
自分の知らない用法でもあるのかと思って聞いただけじゃん。

文句があるなら、スルーすれば良いのに、みんな耐性ないよね。
いかにも、相手を探してますって感じ。
ほんと昼間っから見てる人は戦闘種族多いよね。
242デフォルトの名無しさん:2007/07/27(金) 14:03:42
なぐるよ
243デフォルトの名無しさん:2007/07/27(金) 14:05:51
244デフォルトの名無しさん:2007/07/27(金) 15:53:22
アクセサのgetとsetで違う型とか指定できたり・・・しないよね
245デフォルトの名無しさん:2007/07/27(金) 15:55:32
無理
246デフォルトの名無しさん:2007/07/27(金) 18:39:49
そんなもん出来てもやりとうないだろうw
247デフォルトの名無しさん:2007/07/27(金) 19:36:46
>>244 キャストしないといけないけど
class Class1{ public int MyProperty { get { return 0; } } }
class Class2 : Class1 { public new string MyProperty { set { } } }
248デフォルトの名無しさん:2007/07/27(金) 19:59:25
何それうっざいw
249デフォルトの名無しさん:2007/07/27(金) 20:12:45
>>247
そういうとんち的なの全然思いつかんかったわ
250デフォルトの名無しさん:2007/07/27(金) 20:24:58
get_MyProperty や set_MyProperty を違う型で手作業で実装してみたらどうなるんだろう
251244:2007/07/27(金) 20:25:50
boolのプロパティを持つクラスのBindingListをグリッドにバインドしたときに意味の分かる文字に変換したかったんだよね。
getで文字列を返せたとしてもXML化するときにboolで保存できないからどうせ意味無かったです、ごめんなさい。_ト ̄|●
252デフォルトの名無しさん:2007/07/27(金) 20:46:38
>>250
MSDNのPropertyBuilderのサンプルコードをいじってみたらこんなプロパティができた
.property class string CustomerName
{
.get instance string CustomerData::get_CustomerName()
.set instance void CustomerData::set_CustomerName(int32)
}
もちろんC#からアセンブリを参照して使おうとするとコンパイルエラー

253デフォルトの名無しさん:2007/07/27(金) 20:46:43
>>250
無理。
アクセサメソッドは作れても、propertyとしてくっ付けることができない。
254デフォルトの名無しさん:2007/07/27(金) 21:08:33
Objectにしちゃえばいいじゃない
255デフォルトの名無しさん:2007/07/27(金) 21:41:58
>>238
で、Stringとstringの違いって何?
>string は、.NET Framework の System.String のエイリアスです。
ってことはわかったんだけど違いがわからん。
256デフォルトの名無しさん:2007/07/27(金) 21:45:43
>>238
>C#は大文字と小文字を使い分けてなきゃいけないのに
なぜこれを持ち出すのかがわからない
257デフォルトの名無しさん:2007/07/27(金) 22:00:38
string って書いてあったらそこのところが global::System.String に置換されると思えばいい
258デフォルトの名無しさん:2007/07/27(金) 22:01:33
>255
エイリアス
259デフォルトの名無しさん:2007/07/27(金) 22:05:25
エイリアスなんだから違いはないだろ

まぁ普通各言語の型を使うよな
260デフォルトの名無しさん:2007/07/27(金) 22:07:15
エイリアスだといっても、定数に使えるという点で特別だから
261デフォルトの名無しさん:2007/07/27(金) 22:08:47
定数?
262デフォルトの名無しさん:2007/07/27(金) 22:11:23
if (int.Parse("12345")==1)
どう見ても特別だろ
263デフォルトの名無しさん:2007/07/27(金) 22:14:49
ホニャァ?
264デフォルトの名無しさん:2007/07/27(金) 22:23:33
>>262
何が言いたいのかわからん
どう見てもとか言ってないで説明してよ
265262:2007/07/27(金) 22:27:10
すまん例が悪かった
"12345"がSystem.String型になって、1がSystem.Int32型になるのは
それらが特別扱い(あくまでC#の言語上の話ね)されてるから、って言いたかっただけ
266デフォルトの名無しさん:2007/07/27(金) 22:28:11
全く意味が分からん。
267デフォルトの名無しさん:2007/07/27(金) 22:30:51
>>265
それがエイリアスと何の関係があるのかね
268デフォルトの名無しさん:2007/07/27(金) 22:33:50
[C#] int

[.NET Framework] System.Int32

[VB] Integer

っつーだけじゃん。
269268:2007/07/27(金) 22:37:50
途中で切れた。
.NETは異なる言語のアセンブリでも使用できるので、共通のデータ型が必要。
で、
「C#という言語」では string という文字列型が内部的に
「共通ランタイムライブラリ」の String と同じになってるだけ。
270デフォルトの名無しさん:2007/07/27(金) 22:39:12
intがSystem.Int32の、stringがSystem.StringのエイリアスだというのはC#の言語仕様だよ
271デフォルトの名無しさん:2007/07/27(金) 22:42:15
何このレベル低いスレwwwwwwwwwwwwwwwwwwwwwwwwwww
俺wwwがwwwもwwwっwwwとwww下wwwげwwwてwwwやwwwるwww
272デフォルトの名無しさん:2007/07/27(金) 22:42:16
しかし、定数に使えるっていうのは意味不明でしかないな。
273デフォルトの名無しさん:2007/07/27(金) 22:46:57
意味不明だが気になる
是非>>260には恥をかきながらもまた出てきて欲しい
274デフォルトの名無しさん:2007/07/27(金) 22:51:04
どこのふらっとスレデスカ?ここは。
275デフォルトの名無しさん:2007/07/27(金) 22:57:20
System.Delegateはデリゲート型ではありません
276デフォルトの名無しさん:2007/07/27(金) 23:05:53
なにを言っているんだ
277デフォルトの名無しさん:2007/07/27(金) 23:09:04
ネタをやるなとは言わんが、つまらないネタ(語義矛盾だが)ならやらないでくれよまったく
278デフォルトの名無しさん:2007/07/27(金) 23:11:05
int.Parse は書けるのに enum.GetValues って書けないぞ
とか言ってみるテスト
279デフォルトの名無しさん:2007/07/27(金) 23:11:53
まあマジレスすると、enumは型のエイリアスじゃないからな
280デフォルトの名無しさん:2007/07/28(土) 00:10:03
int.ParseとかEnum。GetValuesとか必須というかあると便利なんだが他にもいろいろとこんなん出来たんだとか、こんな風にやれば出来たんだというものがまだまだたくさんある予感。
281デフォルトの名無しさん:2007/07/28(土) 00:17:45
VBでのプログラム終了のEndはC#では何にあるのでしょうか?
282デフォルトの名無しさん:2007/07/28(土) 00:18:58
}
283デフォルトの名無しさん:2007/07/28(土) 00:35:10
>>string は、.NET Framework の System.String のエイリアスです。
>ってことはわかったんだけど違いがわからん。

何がわかったんだw

エイリアスだよ、見た目が違うだけだよ。
見た目以外は違わんてこったよ。
284デフォルトの名無しさん:2007/07/28(土) 00:40:42
>>280
日本語……地球語でおk
285デフォルトの名無しさん:2007/07/28(土) 00:49:01
>>283
それ以外にも違いがあるかのような発言をしてる奴が居るから混乱してるんだろう
286デフォルトの名無しさん:2007/07/28(土) 00:49:48
いろんな言語使うプログラマが母国語も使えないなんてw
287デフォルトの名無しさん:2007/07/28(土) 00:50:38
すみません。母国語は朝鮮語なもんで。
288デフォルトの名無しさん:2007/07/28(土) 01:49:02
100円玉を「コイン」と呼んでも「硬貨」と呼んでも100円玉が100円玉であることは変わらない
289デフォルトの名無しさん:2007/07/28(土) 02:13:32
>>222
ライブラリ化を意図してるとか?
外部に公開するところは、言語に依存しない表現にしておきたいってことじゃないの。
290デフォルトの名無しさん:2007/07/28(土) 02:14:33
コンパイルしたら言語に依存も糞もないだろ
291デフォルトの名無しさん:2007/07/28(土) 02:22:20
あきれたw
292デフォルトの名無しさん:2007/07/28(土) 05:03:47
260じゃないが。
定数(式)は割りかし重要な概念だしCLR的には確かにintやらは
扱いが変な感じになっているので総出で馬鹿にせんでも。
この例なら一緒、エイリアスでいいんだけど。

C#的に「どちらもOK」ではないのはenumの型指定ぐらいか
293デフォルトの名無しさん:2007/07/28(土) 08:39:10
うんこちんちん
294デフォルトの名無しさん:2007/07/28(土) 09:11:39
enum はキーワードであってエイリアスじゃねえんだよ
他にも class と Class は別物だし delegate と Delegate も…
295デフォルトの名無しさん:2007/07/28(土) 09:22:45
Class ってなんかあったか?
296デフォルトの名無しさん:2007/07/28(土) 09:36:28
知ったか多すぎワロタ
297デフォルトの名無しさん:2007/07/28(土) 10:36:32
.NETFramework Programing
だっけか?
ていう本を読めばいいと思うよ
298デフォルトの名無しさん:2007/07/28(土) 11:13:24
結局invokeってなんなの?
デリゲートを発動させるだけ?
わっかんね
299デフォルトの名無しさん:2007/07/28(土) 11:14:03
何のinvokeかくらい家よ。
300デフォルトの名無しさん:2007/07/28(土) 11:59:48
メソッドAをBeginInvokeを使って非同期で処理したい場合、メソッドAからコールするメソッドB、メソッドCについても
BeginInvokeが必要なのでしょうか?

メソッドA
 →メソッドB
 →メソッドC
301デフォルトの名無しさん:2007/07/28(土) 12:04:16
いい加減そういう話はふらっとでしてくれ
http://pc11.2ch.net/test/read.cgi/tech/1182948981/
302デフォルトの名無しさん:2007/07/28(土) 12:04:35
いや、invokeでググっても〜のinvoke,・・・のinvokeって出てくるけど
invoke自体の存在理由、活用法がわからんねぇ
プログラミング.NET Framework[第二版]をめんたま擦れるくらい
読めってことか?
めんどくせーよ
303デフォルトの名無しさん:2007/07/28(土) 12:06:08
>>302
使う必要のないものを知る必要はないだろ。
304300:2007/07/28(土) 12:23:14
>>301
スマソ
305デフォルトの名無しさん:2007/07/28(土) 13:28:13
<ぐち>
ToolStripItemCollection.AddRangeはなんで配列を引数にとるんだ・・・
別に配列に特化した処理してるわけじゃないしIList<T>でいいじゃないか
導入されたの2.0からなんだし。
</ぐち>
306デフォルトの名無しさん:2007/07/28(土) 14:04:41
System.Windows.Forms だから
307デフォルトの名無しさん:2007/07/28(土) 14:07:45
>>306
kwsk
理由になってないように見える
308デフォルトの名無しさん:2007/07/28(土) 14:14:24
ほかのがそうだったからそれとの整合性のためってことでしょ
Menu.MenuItemCollection.AddRange とか

WPF の方は割り切って AddRange なんかそもそも無いな
309デフォルトの名無しさん:2007/07/28(土) 14:46:41
>AddRange なんかそもそも無い
なお悪い気がするが・・・
310デフォルトの名無しさん:2007/07/28(土) 14:57:08
305みたいな意見はたぶんたまたま自分が使ってる場面での使い勝手を前提としたものだね。

配列になってる最大の理由はたぶん初期化されたインスタンスが
一番簡潔に書けるからじゃない?

まあでも確かに、それならIEnumerable<T> でかまわないような気がしないでもない。
311デフォルトの名無しさん:2007/07/28(土) 15:01:11
enumはそれ自体の話じゃないよ。
enum Foo : System.Int32 {...} とかやってみ?
312311:2007/07/28(土) 15:06:57
ごめん >>294 宛てね
313デフォルトの名無しさん:2007/07/28(土) 15:07:43
>>310
配列ってのはIList<T>の部分集合なわけで、引数として配列を受け取るのは
意味もなく利用範囲を狭めてるだけだよ。
IList<T>として宣言したって配列を渡すことはできる。
内部でArrayクラスのメソッドを使ってるならわかるけど、forで回してるだけみたいだし。
314デフォルトの名無しさん:2007/07/28(土) 15:12:31
でも IDE は IEnumerable<ToolStripItem> よこせって言われても困ると思うんだ
315デフォルトの名無しさん:2007/07/28(土) 15:14:22
普通にToolStripItem[]わたせばいいじゃん。リテラルあるんだし。
316デフォルトの名無しさん:2007/07/28(土) 15:16:35
List<ToolStripItem>でつくっといてToArrayするだけでは?
317デフォルトの名無しさん:2007/07/28(土) 16:05:32
そのレベルのことが分からない奴はいないと思うけどw
318デフォルトの名無しさん:2007/07/28(土) 17:12:11
すげーつまらない話題だと思うんですが、
stringて引数に渡す場合新たにコピーされるんですよね?
A(string str){}で渡すより、A(IList<string> list, int index:リスト内のインデックス){}
で渡したほうがコスト小さいのでしょうか?
319デフォルトの名無しさん:2007/07/28(土) 17:15:06
コピーなんざされねえよ
320デフォルトの名無しさん:2007/07/28(土) 17:18:27
一応、参照はコピーされるけどなw
321デフォルトの名無しさん:2007/07/28(土) 17:26:35
それ言ったら殆どコピーだろww
322デフォルトの名無しさん:2007/07/28(土) 17:41:45
文字列型以外のプリミティブ型は、値型、構造体としてスタックに置かれる
323デフォルトの名無しさん:2007/07/28(土) 18:22:11
スタックにおかれるって決まってるんだっけ

そりゃ実際スタックに置かれるんだろうけどさ
324デフォルトの名無しさん:2007/07/28(土) 18:34:57
複合型のメンバは型の一部としてヒープにおかれることもあるよ。
(そういう意味ではない?)
325デフォルトの名無しさん:2007/07/28(土) 18:37:09
配列の要素だって、それどころかボクシングするだけでヒープ行きだぜ
326デフォルトの名無しさん:2007/07/28(土) 21:34:59
松井ゴーーーーーーーーーーーーーーーーーーーーーーーール!!!!
327デフォルトの名無しさん:2007/07/29(日) 20:54:22
>>290
おまえにはドキュメントを作るという考え方が無いのか?
せっかくの.NET Frameworkなのに、ライブラリのドキュメントを
特定言語に依存したものにするのか?
328デフォルトの名無しさん:2007/07/29(日) 20:56:55
あと、ドキュメントでなくても。
他言語の使用者がコードを読んで、引数とか返り値の仕様が分かるというのもあるしね。
329デフォルトの名無しさん:2007/07/29(日) 20:58:57
>>327
普通、ドキュメントはアセンブリのメタデータを使って作成しないか?
330デフォルトの名無しさん:2007/07/29(日) 22:10:25
文脈読まずにレスするアホが沸いたな
331デフォルトの名無しさん:2007/07/29(日) 22:18:22
C#コンパイラでXMLドキュメント生成したらちゃんとSystem.Int32になるぞ
332デフォルトの名無しさん:2007/07/29(日) 23:53:56 0
てす
333デフォルトの名無しさん:2007/07/30(月) 08:37:49
全然詳しくないので質問させてください。
いつも仕事中にWebばかり見てる派遣クンが
「C#がプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
でもうちの会社ではプログラムを書いた人がデバッグして原因を調べるのが当たり前です。
頑固な派遣クンをどうやって説得したらいいでしょうか?
334デフォルトの名無しさん:2007/07/30(月) 08:56:32
斬る
335デフォルトの名無しさん:2007/07/30(月) 09:19:27
>C#がプログラムどおりに動かない
これを額面どおりに受け取るなら確かに派遣クンの責任ではない
336デフォルトの名無しさん:2007/07/30(月) 09:20:51
説得は時間の無駄だろ
辞めてもらえ
337デフォルトの名無しさん:2007/07/30(月) 09:24:00
このコピペまだまだ反応する人居るんだね
338デフォルトの名無しさん:2007/07/30(月) 10:12:38
>いつも仕事中にWebばかり見てる派遣クンが に一致するページは見つかりませんでした。
339デフォルトの名無しさん:2007/07/30(月) 10:22:03
340デフォルトの名無しさん:2007/07/30(月) 14:08:00
335デフォルトの名無しさん2007/07/30(月) 00:54:56
全然詳しくないので質問させてください。
いつも仕事中にWebばかり見てる派遣クンが
「Win32APIがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のWindowsプログラムが動かないのを調べるのは誰の仕事なのでしょうか?


341デフォルトの名無しさんsage2007/07/30(月) 01:07:17
この>>335のネタどこが元ネタなんだろな。
知る限りの最古はここなんだが。
ttp://pc11.2ch.net/test/read.cgi/tech/1182351826/387-


387デフォルトの名無しさん2007/07/22(日) 15:38:01
全然詳しくないので質問させてください。
仕事全然できない派遣クンが
「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
原因を調べるのは誰の仕事なのでしょうか?


Google様に捕らえられてないって事は随分最近のネタくさいな
重度2ch患者は昨日あった事でもずいぶん前にあったように感じるらしい
一週間も経っていればそうとう昔の出来事に感じるんだろうな
341デフォルトの名無しさん:2007/07/30(月) 18:41:03
俺から見たら、平日昼間からそういうくだらない調査を一生懸命やってる
奇特なお方だって十分に「重度2ch患者」に見えるけどなw

なによりその「自分で自分に突っ込む能力の欠如」って「重度2ch患者」とやらの
顕著な特徴じゃないか?w
342デフォルトの名無しさん:2007/07/30(月) 20:11:31
それに突っ込むお前もかなりきてるけど
343デフォルトの名無しさん:2007/07/30(月) 22:36:14
スルーできないなら2chなんか見るなよwww
344デフォルトの名無しさん:2007/07/30(月) 22:49:21
とりあえず夏休みのせいにしとこうぜ
345デフォルトの名無しさん:2007/07/30(月) 23:07:06
夏休み
暇をもてあました学生もこのスレみてるんだぜ
346デフォルトの名無しさん:2007/07/30(月) 23:42:45
delegate の第4回が来てたけどだいぶトーンダウンしてるな
347デフォルトの名無しさん:2007/07/31(火) 00:08:35
GetInvocationListも知らないアホはほっとけよ。
348デフォルトの名無しさん:2007/07/31(火) 00:24:03
そんな便利なメソッドあったのか・・・アホでサーセンwww
349デフォルトの名無しさん:2007/07/31(火) 00:58:33
>>346
>>347
kwsk
350デフォルトの名無しさん:2007/07/31(火) 07:29:58
言語のバージョンアップで言語仕様の変わらない言語って何?
351デフォルトの名無しさん:2007/07/31(火) 08:03:46
何をバージョンアップするんだよ・・・
352デフォルトの名無しさん:2007/07/31(火) 08:22:44
本人に聞けよ
353デフォルトの名無しさん:2007/07/31(火) 08:57:41
バージョンだけ上がって変更無し?ワロスwww
354デフォルトの名無しさん:2007/07/31(火) 10:06:55
Brainfuck
355759:2007/07/31(火) 17:43:02
質問です。

タブは追加した順番に左から右に配置されますよね。
途中のタブを削除すると
削除したタブの右側のタブは全て左に詰められて再描写されますよね。
新しくタブを追加すると、一番右に表示されますよね。

この動きを別のコントロールで再現したいのですが、
どういうアルゴリズムを使えばよろしいでしょうか。
ユーザコントロールを上下に並べて表示し、
とあるイベントで削除されたコントロールの下にあるコントロールは
上に詰めて表示する。
新規にコントロールが追加された場合は一番下に表示する。
コントロールは最大3つ。
コントロールの数によってフォームのSize.Yを変更する。
というストーリーです。

タブの描写のアルゴリズムが分かれば全て解決するので、
だれか教えてください。
356デフォルトの名無しさん:2007/07/31(火) 17:48:35
FlowLayoutPanelを使えば自動でやってくれると思うけど
357デフォルトの名無しさん:2007/07/31(火) 17:49:57
タブの描写のアルゴリズムもなにも、
普通のIListで管理するだけじゃない?

358デフォルトの名無しさん:2007/07/31(火) 18:32:59
>>346
馬鹿馬鹿しいな。
ただのキモイやつにしか見えん。
359デフォルトの名無しさん:2007/07/31(火) 18:39:48
それぐらいのアルゴリズムが思いつかない人は自分でコントロール作ろうとしちゃいけないと思う(´・ω・`)
360355:2007/07/31(火) 19:10:05
>>356
.NET1.1なんでFlowLayoutPanelは使えないです。

>>357
IListでできました。
内部で管理してくれてるんですね。
ありがとうございます。

>>359
それぐらいとはどれくらい?
「答えてくれる人」からしてみれば質問はすべて"それぐらい"にあてはまる。
質問スレの意味がわかってないのでは? 
361デフォルトの名無しさん:2007/07/31(火) 19:30:53
なんでIListを使ったらできたのかが理解できない
コントロールのレイアウトのアルゴリズムについての質問だったんじゃないのか?
IListはほとんど関係ないと思うんだが
362デフォルトの名無しさん:2007/07/31(火) 19:30:56
確かに「それぐらい」が通ったらこのスレの存在意義が無いよなw
363デフォルトの名無しさん:2007/07/31(火) 19:33:34
>>360 自分でコントロールを作ろうとしている人にとって当たり前だろうと思うぐらいが"それぐらい"ですが( ゚Д゚)ナニカ?
364デフォルトの名無しさん:2007/07/31(火) 19:57:48
アルゴリズムなんて言葉が蛇足だっただけだろ
365デフォルトの名無しさん:2007/07/31(火) 20:52:04
アルゴリズムなんて高尚なもんじゃないだろこれ
366デフォルトの名無しさん:2007/07/31(火) 20:52:09
さぁいつもの調子にもどってきました
367デフォルトの名無しさん:2007/07/31(火) 21:20:25
別にアルゴリズムに高尚な意味はないよ。
t = a; a = b; b = t; てのもアルゴリズムだし。
368デフォルトの名無しさん:2007/07/31(火) 21:27:15
いや普通アルゴリズムといえば多少なりとも難解な価値ある手続きのことをさすんじゃまいか
369デフォルトの名無しさん:2007/07/31(火) 21:28:55
いや、勝手に意味を付加するなよ
370デフォルトの名無しさん:2007/07/31(火) 22:49:30
>>363
一個人にとっての当たり前が他人にとっての当たり前じゃないから
人間は戦争するんだろうな。
371デフォルトの名無しさん:2007/07/31(火) 22:58:34
戦は個人でするものじゃないだろうw
というか、糞みたいな話題が話したければ他所行けよ。
372デフォルトの名無しさん:2007/08/01(水) 23:13:53
ちょwww
まじでみんな他所いったの?wwww
ぼくちんさみしいおwwww
373デフォルトの名無しさん:2007/08/01(水) 23:23:34
キミはひとりじゃないお
374デフォルトの名無しさん:2007/08/01(水) 23:32:57
ああ、看板を営業中にかえるのを忘れてたよ
375デフォルトの名無しさん:2007/08/02(木) 02:25:00
がめんに「はろーわーるど」ってだすにはどうすればいいの?
376デフォルトの名無しさん:2007/08/02(木) 02:27:57
マジックで書けばいいんだよ
377デフォルトの名無しさん:2007/08/02(木) 09:38:02
>>376
すっげ〜尊敬する答え。素晴らしい。
378デフォルトの名無しさん:2007/08/02(木) 09:44:43
油性で書いたら消えない!
379デフォルトの名無しさん:2007/08/02(木) 09:48:06
モニタにサランラップ貼ればいい
380デフォルトの名無しさん:2007/08/02(木) 10:50:54
あたまいいな
381デフォルトの名無しさん:2007/08/02(木) 13:35:34
夏休みはすげぇな。
正直こんなにガキが沢山いるとは思わなかった…
382デフォルトの名無しさん:2007/08/02(木) 14:08:58
このスレのこと言ってるなら普段と変わらないと思うが。
383デフォルトの名無しさん:2007/08/02(木) 14:10:25
夏だなぁ厨なんかほっとけよ
384デフォルトの名無しさん:2007/08/02(木) 15:29:57
プログラムのバージョン管理とかってどうやってやってます?
385デフォルトの名無しさん:2007/08/02(木) 15:31:35
普通にVSS
386デフォルトの名無しさん:2007/08/02(木) 15:47:16
ラップスキャンを思い出した。
387デフォルトの名無しさん:2007/08/02(木) 16:37:56
svn、トータスがあるんでDev以外も触れるから。
388デフォルトの名無しさん:2007/08/02(木) 16:49:32
VSSはMSも駄目出ししてたよw
389デフォルトの名無しさん:2007/08/02(木) 17:15:02
全くの初心者ですが、囲碁のソフトを作っています。

Form1にグラフィックを利用して碁盤を描きました。
マウスの左クリックで、交点に碁石を置きたいのですが、どのようにすればいいのでしょうか?

マウスの左クリックのイベントのキャッチは以下でいいと思うのですが、碁石(stone.bmp)
をどのように描画すればいいのかが分かりません。

マウスポインタの位置は、e.Location で取れそうです。

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
・・・
}
}
390デフォルトの名無しさん:2007/08/02(木) 17:21:32
マウスカーソルでクリックされた交点の求め方がわからないの?
碁盤の目の間隔を使って計算するしかないだろ
碁盤の目のまま考えてるからややこしい
描画位置が半目ずれたオセロだと思えばいい
391デフォルトの名無しさん:2007/08/02(木) 17:30:37
1.マウス座標から碁盤座標に変換
2.碁盤座標から石の描画座標に変換
碁盤のサイズ・碁盤の位置・目の間隔・碁石のサイズはわかってるよね?
392デフォルトの名無しさん:2007/08/02(木) 17:44:42
ラップスキャンってまだやってる人いるのかね?
393デフォルトの名無しさん:2007/08/02(木) 17:47:03
描画方法を聞いてるんじゃないの?
Form1_MouseClickでは盤面データを更新したのちInvalidate()を呼ぶ。
でOnPaintをオーバーライドしてそこで盤面データにもとづいて描画する。
盤面データはint[19,19]みたいな感じになるかな。
ビットマップの描画はPaintEventArgs.Graphics.DrawImageあたりを使えばいいでしょ
394デフォルトの名無しさん:2007/08/02(木) 17:48:00
>>390-391
ありがとうございます。
わかりました。

碁石のイメージを描いたり、消したりするのはどうするのでしょうか?
描くのは、これでいいのでしょうか?

Graphics.DrawImage (Image, Point)
395デフォルトの名無しさん:2007/08/02(木) 17:49:28
すこしは自分で努力しろ、このフナムシ!
396デフォルトの名無しさん:2007/08/02(木) 17:51:52
>>393
丁寧な回答ありがとうございます。
DrawImageでよかったんですね。
知らない用語も多いので調べてみます。
397デフォルトの名無しさん:2007/08/02(木) 17:56:03
ググってサンプルプログラムを読むとか
MSDNライブラリでGraphicsクラスについて調べるとか
インテリセンスで出てくるメソッドとその説明から目的のもの使えるか想像するとかできないのかね
398デフォルトの名無しさん:2007/08/02(木) 18:57:16
そういう愚痴はスレ違い
399デフォルトの名無しさん:2007/08/02(木) 20:10:58
教えてください。
リッチテキストボックスを使ってワードパッドと同等の機能を持たせた
プログラムを作ったのですがワードパッドにある、挿入→オブジェクト
の機能も付けたいのです。方法があったら教えて下さい。
400デフォルトの名無しさん:2007/08/03(金) 00:35:48
ごめん俺には無理だ。
401デフォルトの名無しさん:2007/08/03(金) 09:01:05
キチガイの俺様がティラノサウルスでオナニーしつつ401get
402デフォルトの名無しさん:2007/08/03(金) 09:25:00
時の哲学者が脱出しながら09:25:00get
403デフォルトの名無しさん:2007/08/03(金) 09:25:29
時の哲学者が脱出しながら09:25:00get
404デフォルトの名無しさん:2007/08/03(金) 11:52:32
汗臭い自宅警備員が台風の予兆に苛まれつつ適当な番号をゲット
405デフォルトの名無しさん:2007/08/03(金) 17:37:41
ComboBoxのSelectedValueを選択時点で変更させる手段ってないもんかね?
Leaveしないと変わらないみたいでイマイチ
406デフォルトの名無しさん:2007/08/03(金) 18:54:56
それ本当に確認したのか?
まあそういう2分で確認できることを怠る奴は何やってもダメだと思うよw
407デフォルトの名無しさん:2007/08/03(金) 20:04:21
ComboBoxじゃなくてアクセサの動きが良く分かってなかったぽい

ttp://www11.axfc.net/uploader/16/so/N16_24473.txt.html

をコンボボックス1つとテキストボックス2つ貼り付けた状態で動かしたときの挙動が分からない。
HageクラスのSelectedValueのアクセサがLeaveしないと呼ばれないのは何故なんだ・・・。rz
408デフォルトの名無しさん:2007/08/03(金) 20:32:22
それダウンロードできるか本当に確認したか?
まあそういう(
409デフォルトの名無しさん:2007/08/03(金) 20:33:21
キーワードは「ほげ」
410デフォルトの名無しさん:2007/08/03(金) 22:55:18
万が一あなたの愛用のテキストエディタがC#やVB.NETで書き直されたらどうする?
411デフォルトの名無しさん:2007/08/03(金) 22:59:06
Reflectorで覗いてみる
412デフォルトの名無しさん:2007/08/03(金) 23:06:46
NGenでコンパイル
413デフォルトの名無しさん:2007/08/04(土) 12:05:08
C#の勉強の一環として、ダイアログ(フォーム)を一個表示して、
その中でキャラクタが動く簡単なゲームを作ろうと思います。
キャラクタはキーボードで操作します。ユーザの操作に関係なく動く敵(タイマ割り込み)は想定しません。

こういった場合、Formクラスのソースコードでキー入力イベント処理を行うべきでしょうか。
それともMain()メソッド内でスレッドを生成してキー入力待ちを行うべきでしょうか。

どちらでも動作はすると思うのですが、
個人的に前者はFormという表示を担うクラスに
メインロジックが入ってくるのが気にくわないんです。
でもウィザードはそのように生成しますし、
そちらが正しいんでしょうか?
414デフォルトの名無しさん:2007/08/04(土) 12:09:36
>そちらが正しいんでしょうか?

正解なんてない
415デフォルトの名無しさん:2007/08/04(土) 12:21:27
>>414
正解はあるだろw
まともなプログラマでViewにロジック書け、といってる奴見たことないが。

>>413
ウィザードは単に「ハリボテ」( = GUI部品)の状態を制御するコードを生成しているだけで、
ロジックなんて書かないと思いますが。。
416デフォルトの名無しさん:2007/08/04(土) 12:46:22
スレッドとか言ってるあたり、クラスをまともに理解してるとは思えないが……。
417デフォルトの名無しさん:2007/08/04(土) 12:50:08
非同期な入力をスレッドに担当させるとかは別にありじゃね
418デフォルトの名無しさん:2007/08/04(土) 13:05:02
ゲームならキーイベントで直接キャラクタの位置を変えるんじゃなくて
とりあえず「キーが押されてる」フラグを立てといて
フレーム毎に移動させるのが普通じゃないの?
419デフォルトの名無しさん:2007/08/04(土) 13:09:24
OSが返すキーコード自体が「フラグ」なのになんでさらにユーザーコードの中で
フラグを立てる必要があるんだよアホか。
420デフォルトの名無しさん:2007/08/04(土) 13:14:30
ゲーム造ったことのない奴は黙ってろ
421デフォルトの名無しさん:2007/08/04(土) 13:16:21
void Update(){
if (isRightKeyPress) character.X += 1;
再描画();
}
こういうのを一定時間ごとに呼び出す感じ
422デフォルトの名無しさん:2007/08/04(土) 13:19:26
おまえらゲームごときに必死すぎワロス
423デフォルトの名無しさん:2007/08/04(土) 13:21:23
ゲームすら語れないカスは黙ってろ
424デフォルトの名無しさん:2007/08/04(土) 13:37:36
時代はアナログゲームだろ。
425413:2007/08/04(土) 14:04:27
多数の回答、ありがとうございます。
勉強なので>>421で教えていただいた方法を含め、
いろいろ試してみようと思います。

ただ、やはりMVCは分けたいな、とも思いますねえ。
staticなMain()メソッド以外にControlがあるのかはわかりませんが・・・。
426デフォルトの名無しさん:2007/08/04(土) 14:09:38
HWスプライト機能がある昔のゲーム機でもなけりゃ、(その場合だって冷静に考えると変だが)
座標が変化したときだけ描画って処理はありえないでしょ。

そんなのゲームなんて20年以上作ってない俺だってわかるよ。
427デフォルトの名無しさん:2007/08/04(土) 14:12:34
ありえるだろ
ゲームなんて色々あるわけだし

マインスイーパで定期的な処理や入力のポーリングなんてしてないだろ
428デフォルトの名無しさん:2007/08/04(土) 14:17:29
何意味不明なこと言ってるんだ?

だから入力のポーリングなんざosの仕事だっつーにw
それと、Winの描画の基本も知らないのかね君は
429デフォルトの名無しさん:2007/08/04(土) 14:28:09
お前はDirectXとか知らんのか・・・
430デフォルトの名無しさん:2007/08/04(土) 15:12:14
なんでこう自信満々なんだろうな
自分の知らないことがあるかもしれないって思わないのかね
431デフォルトの名無しさん:2007/08/04(土) 15:18:28
知ってる知らない以前に、描画とキー入力とキャラの描画が密に結合するような
設計は今時ありえない。

というか、80年代にアセンブラでコード書いてた時代だってありえないよ
そんな設計は。
432デフォルトの名無しさん:2007/08/04(土) 15:50:44
具体的にどういうことを言ってるのかわからん
>>421はキーが押されてなくても座標が変わらなくても再描画されるよ
433デフォルトの名無しさん:2007/08/04(土) 16:30:57
ローグみたいのならキー操作即ち描画だな。
434デフォルトの名無しさん:2007/08/04(土) 19:09:33
○○○○も知らないのかね君は
435デフォルトの名無しさん:2007/08/04(土) 21:58:08
>>413
ダイアログって言ってるからc++使い?
436デフォルトの名無しさん:2007/08/05(日) 05:40:31
>>431
設計の話は設計の話でしょ。
Win描画の基本がどうのこうのとは別問題。
437デフォルトの名無しさん:2007/08/05(日) 15:23:10
ゲームは大体使い捨てだから
設計考えるより書いたほうが速いよ…
438デフォルトの名無しさん:2007/08/05(日) 23:47:17
ファミコンの時代なら別だが今のご時世で使い捨てはねえよ
439デフォルトの名無しさん:2007/08/06(月) 15:29:34
C#のソースを見ていて
namespace ServerAppTest
{
[TestFixture]
public class MaxDataSizeRecorderTest
{
}
というのが出てくるのですが[TestFixture]って何ですか?
[]が何を表すのかわかりません。検索して調べるためにキーワードを教えて下さい。
440デフォルトの名無しさん:2007/08/06(月) 15:34:33
Attribute
属性
カスタム属性
441デフォルトの名無しさん:2007/08/06(月) 15:35:03
ふらっとレベルの質問だ( ´ー`)フゥー...
442デフォルトの名無しさん:2007/08/06(月) 15:37:24
>>439
NUnitだっけか
443デフォルトの名無しさん:2007/08/06(月) 16:24:58
テンプレートクラスをキャストしたいのですが、うまくできません。
あるインターフェース IMyInterface と、それを実装したクラス MyClass1 と MyClass2 があります。
このクラスのリスト List<MyClass1> と List<MyClass2> を、List<IMyInterface> を引数とするメソッドへ渡したいのですが、
これは許されないようです。
MyClass1[] や MyClass2[] を IMyInterface[] へキャストすることはできるようなのですが、同じようにテンプレートクラスを
キャストすることはできるでしょうか。
444デフォルトの名無しさん:2007/08/06(月) 16:26:02
_
445デフォルトの名無しさん:2007/08/06(月) 16:27:00
テンプレートではなくジェネリックと呼べよ
446デフォルトの名無しさん:2007/08/06(月) 16:32:47
OfType<T>
447デフォルトの名無しさん:2007/08/06(月) 16:56:55
リリースビルドをしても、使用してない関数も含まれちゃいますよね?
そういう関数を除外する属性ってありますでしょうか?
448デフォルトの名無しさん:2007/08/06(月) 16:58:37
>>440
あり
>>442
そそ
449443:2007/08/06(月) 17:00:09
>>444
むりっすか・・・
本当は呼び出される側のメソッドの引数は IList<IMyInterface> とか IEnumerable<IMyInterface> とかで受け取りたいのですが、
こういうのはできないんですね・・・

>>445
あ、こういうのはジェネリックって言うんですか。
勉強になりました。ありがとうございます。

>>446
.NET 3 からのものみたいですね。
2 くらいでなんとかしたいです。すみません。
450デフォルトの名無しさん:2007/08/06(月) 17:05:33
>>443 たぶんF#ならできるよ
451JAVA:2007/08/06(月) 17:50:26
C#君ってうちのこと嫌いなん?(;_;)
452C#:2007/08/06(月) 18:03:41
君誰?

やだ、気持ちわるーいwギャハハハwww
453デフォルトの名無しさん:2007/08/06(月) 18:05:51
>>449
IEnumerable<TDst> 変換<TSrc, TDst>(IEnumerable<TSrc> enumerable)
where TSrc : TDst
{ foreach (TSrc item in enumerable) yield return item; }
454デフォルトの名無しさん:2007/08/06(月) 18:17:37
C#.NETにおいて,
ボタンをクリックするとイベントが起こる
を一括して行いたいのですが・・・

button1についてのプログラム
button2についてのプログラム
button3についてのプログラム
・・・・・
ではなくて,
ボタンについてのプログラム
 スイッチで,button1だったらケース1
       button2だったらケース2
というようにしたいのですが,どのように
プログラムすればいいのでしょうか?

初歩的な質問ですみません
よろしくお願いします。
455デフォルトの名無しさん:2007/08/06(月) 18:19:18
全部のハンドラを同じにすればいいべや
456デフォルトの名無しさん:2007/08/06(月) 18:26:17
switchは直接使えないだろ
Nameを使えばswitch使えるけどそれはまずいからif(sender==…){…}else if…でやるしかない
457デフォルトの名無しさん:2007/08/06(月) 18:43:17
スイッチ使いたかったら

Button b = (Button)sender;
として

switch(b.Text)
switch(b.Name)
switch((string)b.Tag)
この辺つかえばいける
458443:2007/08/06(月) 18:49:04
>>453
それ面白いですね!
とても参考になります。ありがとうございます。
459デフォルトの名無しさん:2007/08/06(月) 19:05:28
>>447
C# 3.0のpartial methodならそういう用途に使える、
というネタは置いておいて
標準でそういう機能は無いので
アセンブリ編集ツールを探したり作ったりが正攻法だと思う。
ILMergeのたぐいね。

AbstractIL使ったら楽に作れそうだが……
460デフォルトの名無しさん:2007/08/06(月) 21:33:50
FxCop は未使用のメンバを警告してくれるよ
461デフォルトの名無しさん:2007/08/06(月) 22:02:56
>>456
>Nameを使えばswitch使えるけどそれはまずいから
これってなぜ?俺は頻用しているし、優秀そうな人のコードでも使われていた(だから真似したんですがw)。
462デフォルトの名無しさん:2007/08/06(月) 22:07:08
例えば、リファクタリングして名前が変わったらどうなる?
463デフォルトの名無しさん:2007/08/06(月) 22:10:07
>>456
ifだらだらは美しくないのでDelegateぶっこんどいて_dic[sender]()だな。
464デフォルトの名無しさん:2007/08/06(月) 22:20:20
>>462
const string使うとかはどうですか?いざとなりゃ全文置換すりゃいいわけだし。
それにそれをいったらPropertyChangedとかDataBindingも同様じゃん。
MSがメタプログラミングっぽいの薦めてるっぽいから、その流れに沿おうと思ってたんだけど。
465464:2007/08/06(月) 22:21:45
「っぽい」連発してごめんなさいw 自信のなさの表れです。
466デフォルトの名無しさん:2007/08/06(月) 22:31:11
>>464
いざとなったら全文置換っていったって、
何ヶ月もたって「その」必要性を忘れてたら、あるいは最初から知らなかったらどうするの?

もちろんそれ以外他に方法がなければ、そういうリスクを犯すのも仕方がないかもしれないが、
必要もないリスクを犯すのは下策じゃないかな
467デフォルトの名無しさん:2007/08/06(月) 22:55:26
>>463

そのやり方を、もう少し教えてくださいませんか?
468デフォルトの名無しさん:2007/08/06(月) 22:59:54
俺はそんなくだらないことに策を弄せようとせず、ベタにやった方が
いいと思うけどね。

100も200もコントロールがあるのなら話は全然別だろうけど
469デフォルトの名無しさん:2007/08/06(月) 23:02:07
なんつうかGUIは基本的に使い捨てだしねぇ
470デフォルトの名無しさん:2007/08/06(月) 23:56:03
数ヶ月もたってからコントロールの名前なんかリファクタするかよ
471デフォルトの名無しさん:2007/08/07(火) 00:15:24
>>469 
たぶんその考えが根本的に間違ってるんだと思うよ
472デフォルトの名無しさん:2007/08/07(火) 00:44:32
>>462
Button b = (Button)sender;
switch(b.Name){
 case button1.Name :
  break;
}
って書いておけば安心じゃないの?
473デフォルトの名無しさん:2007/08/07(火) 00:49:55
>>472
定数値じゃないと無理だろ?
多分それコンパイルもできないぞ
474デフォルトの名無しさん:2007/08/07(火) 01:01:06
>>473
あ、ごめん。button1ってのはフォームにおいてあるボタンね。>>454のやつ。
private void button_Click(object sender,EventArgs e) {
 Button b = (Button)sender;
 switch(b.Name){
  case this.button1.Name :
   break;
 }
}
475デフォルトの名無しさん:2007/08/07(火) 01:29:40
>>474
言ってる意味がわからないんだが
thisはあっても無くてもコンパイルできなかったし
476デフォルトの名無しさん:2007/08/07(火) 01:30:05
ふらっと以下だな
477デフォルトの名無しさん:2007/08/07(火) 08:28:49
フォーム上のボタンを、デザイナで作ったダミーボタンのクローンとして
いくつもコピーしたいのですが、CloneメソッドやSerializeメソッドがないため
コピーできません。何か簡単でいいアイデアないでしょうか?
478477:2007/08/07(火) 08:56:46
ボタン自体をコピー出来なくても
プロパティ全てをコピー出来ればそれでいいんですが
一つ一つコピーするしかないでしょうか
479デフォルトの名無しさん:2007/08/07(火) 09:49:01
ボタンを継承しろ
480デフォルトの名無しさん:2007/08/07(火) 10:51:51
>>474
おちつけ、一旦ここは引くんだ
481デフォルトの名無しさん:2007/08/07(火) 10:56:24
>>477
WPFならスタイル書いといてボタンに登録するだけだよ!
482デフォルトの名無しさん:2007/08/07(火) 12:12:39
481
ありがとう。
しかし、とりあえずの所敷居が高くてスタイルは使っていません
UI自体はBlend使っていますが
スタイルを適用するとプッシュダウン時の外観が設定出来なったので…

なので、今回は単純に配置したボタンのマージン等の情報をコピーしたいんです
483デフォルトの名無しさん:2007/08/07(火) 14:41:22
http://msdn2.microsoft.com/en-us/library/ms954621.aspx
にObjectパターンの説明があり、最後のところにイベントパターンが少しだけ書いてあります。

サンプルコード通りに実装した場合、MainClassはどうなるのでしょうか?
stock.AskPriceChanged +=
new Stock.AskPriceChangedHandler(stockDisplay.Notify, ・・・
のようなコードが必要になると思うのですが、自分でやってみても、
メソッド名が必要です、のエラーが出ます。

そもそも、
AskPriceChangedEventArgs e = new AskPriceChangedEventArgs(stock);
のような感じで、自分でEventArgsをインスタンス化して、情報を入れるんですよね?

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/dnpatterns/htm/ImpObserverInNET.asp
これで、なんとなく理解したので、後はEventArgsを継承した、
汎用的なObjectパターンを知りたいのです・・・。
484デフォルトの名無しさん:2007/08/07(火) 16:24:06
>>483
あなたはまずC#の入門サイトを探す事から始めた方がいいんじゃないか?
485デフォルトの名無しさん:2007/08/07(火) 16:53:07
Stock.csとAskPriceChangedEventArgs.csはサンプルコード通り。

StockDisplayを、以下のように修正して、
class StockDisplay {
  public void Notify(object sender, AskPriceChangedEventArgs e) {
    Console.WriteLine("The new ask price is:" + e.AskPrice);
  }
}

MainClass.csに下記行のどちらかを追加ですよね。
//stock.AskPriceChanged += stockDisplay.Notify;
stock.AskPriceChanged += new Stock.AskPriceChangedHandler(stockDisplay.Notify);

上記2行はどちらでも動くような気がしますが、後者の方が正しいんですよね?
486デフォルトの名無しさん:2007/08/07(火) 16:56:23
オブジェクトパターンとは目新しい
487デフォルトの名無しさん:2007/08/07(火) 17:02:15
>>485
文法と動作の点ではどちらも同じ程度に正しい。
どう書きたいか、書くべきか意見はあるかもしれないが、それは思想的なものでしかない。
488デフォルトの名無しさん:2007/08/07(火) 17:06:11
前者は2.0から使えるようになったような・・・記憶はあいまいだが
489デフォルトの名無しさん:2007/08/07(火) 17:34:17
C#からファイル名と行番号を指定してVisualStudioにソースを表示させたいんですが、どうしたらよいんでしょう(´・ω・`)
490デフォルトの名無しさん:2007/08/07(火) 17:49:58
C#のプログラムから、VSのエディタにタグジャンプしたい、ということ?
491デフォルトの名無しさん:2007/08/07(火) 17:57:25
オートメーション
492デフォルトの名無しさん:2007/08/07(火) 18:03:35
一行糞レスはいりません><
493デフォルトの名無しさん:2007/08/07(火) 18:44:16
>>492
こらこら、思っても言ってはいけません。
ネットは社会の縮図です。現実の社会に必要とされていない人間なんて居ないのです。
(棒読み)

しかし質問の内容からすると、コマンドラインからVSを起動できて、引数にファイル名と行数とか、
そういうVSの起動方法があればOKってこと?

でも、プロジェクトとして開かないと意味無いような気もするけれど、もしかしてそっちなのかな。

いずれにしても、私にはさっぱり分かりませんが・・・。
494デフォルトの名無しさん:2007/08/07(火) 18:50:40
まあ一行レスクンがいらないのはまったく同意だけど、
同じかより以上に>>489みたいのもイラネエな俺は
495デフォルトの名無しさん:2007/08/07(火) 18:53:24
以下質問禁止
496デフォルトの名無しさん:2007/08/07(火) 18:58:01
以下つっこみ禁止
497デフォルトの名無しさん:2007/08/07(火) 19:01:11
string file = "ファイルパス";
string line = "50";//行数
EnvDTE80.DTE2 dte2;
dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0");
dte2.ExecuteCommand("File.OpenFile", file);
dte2.ExecuteCommand("Edit.GoTo", line);
498デフォルトの名無しさん:2007/08/07(火) 19:06:14
天才がキタ━━━━(゚∀゚)━━━━ッ!!。なるほどー。
499デフォルトの名無しさん:2007/08/07(火) 19:07:53
神光臨!!!!!!!!!!!!!!!!!
500デフォルトの名無しさん:2007/08/07(火) 19:10:01
コロンブスの卵といわれればそのとおりだけど、
コードみちゃうとなんてことないね
501デフォルトの名無しさん:2007/08/07(火) 19:55:07
すごいな。EnvDTE80名前空間なんてはじめて知った。
その程度使いこなせる人はどれくらいいるんだ?
502デフォルトの名無しさん:2007/08/07(火) 19:57:31
vs2003で動きません><
は禁止。
503デフォルトの名無しさん:2007/08/07(火) 20:00:38
VSに付いてたペラい本に書いてなかったっけ?
504デフォルトの名無しさん:2007/08/07(火) 20:41:44
>>503
割だからわかりません><
505デフォルトの名無しさん:2007/08/07(火) 20:46:12
つーかVSのポスターいらないよな。

誰かやめろって言わないのかな〜
506デフォルトの名無しさん:2007/08/07(火) 21:12:06
http://strawberry.web-sv.com/cgi/up/vcc/nm8408.zip

グーグルのソースを表示するプログラムなのですが
モデムの電源を切って実行するとたまに反応無しになってしまいます。
その後、e.Errorが呼ばれたり名前が解決できなかったりエラーもバラバラのようです。
モデムの電源を切っていてもキャンセルボタンを押せたり、
何回かプログラムを再起動したら反応無しになったりと、
再現性がないのですが、解決方法はないでしょうか?
507デフォルトの名無しさん:2007/08/07(火) 21:16:18
>>506
俺(俺たち?)はデバッガーじゃない。

お前のソース全部見て教えてやる気にはならない。
もっとスマートにやれ。
508デフォルトの名無しさん:2007/08/07(火) 22:00:46
↑意味不明
509デフォルトの名無しさん:2007/08/07(火) 22:06:08
>>506
エスパー回答

インターネット接続が不安定。
で、それに対応するようにコードが書かれていない。
510506:2007/08/07(火) 22:06:10
>>507
何が言いたいのか分かりません・・・。
教科書通りのプログラムで非同期が出来ないのは
WebClicentのバグなのかと思って投稿したのですが
何に気がさわったのでしょうか?
511デフォルトの名無しさん:2007/08/07(火) 22:09:36
>>510
半年romってろ。
512デフォルトの名無しさん:2007/08/07(火) 22:10:47
>>510
zip落としたり解凍したりコード全部眺めたりするのはマンドクセ
まるなげしてんじゃねーぞこのクソハゲ
質問は要点を3行でまとめろ低能


ってことじゃない?
おれはそんな酷いことは言わないよ。ただスルーするだけ。
513デフォルトの名無しさん:2007/08/07(火) 22:11:34
教科書のコードってのは、例外処理を始めとして極限まで省いてる最低限しかないコードだぞ。
514デフォルトの名無しさん:2007/08/07(火) 22:13:32
コントロールのバグを疑う前に自分のコードを疑えよ……
515507:2007/08/07(火) 22:13:52
>>512
それは言いすぎかと。。。
516デフォルトの名無しさん:2007/08/07(火) 22:15:29
ウチでは再現できないので答えられないけど
数行のコードでウダウダ言ってる奴は本当にプログラマーなのか?
517デフォルトの名無しさん:2007/08/07(火) 22:16:20
そもそもダウンロードしないと数行かどうか分からないわけで
518デフォルトの名無しさん:2007/08/07(火) 22:16:58
>e.Errorが呼ばれたり
ふらっと向けだな。


でも住人も態度も同じ。
519デフォルトの名無しさん:2007/08/07(火) 22:17:33
つまり落としもせずに文句を言っているのかw
520デフォルトの名無しさん:2007/08/07(火) 22:19:40
落とす気になりませんなあ。

ちなみにユーザー名はなに?
521デフォルトの名無しさん:2007/08/07(火) 22:24:01
button1をクリックするたびにイベントが積ってくぞ
522デフォルトの名無しさん:2007/08/07(火) 22:24:15
質問です。
ソースコード数万行、数十万行のプログラム書いたことある?
皆さん、数千行程度のプロトタイプ位のアプリしか作成したことないのかな?
って感じるところがあったもんで・・・

行数が多いからすごい、すごくないの議論をするつもりではありません。
523デフォルトの名無しさん:2007/08/07(火) 22:24:44
>モデムの電源を切って実行するとたまに反応無しになってしまいます。
モデムの電源切ってインターネットに繋がるの?

>その後、e.Errorが呼ばれたり名前が解決できなかったりエラーもバラバラのようです。
バラバラでも全部書いたら?
多分、名前が解決できなかったりとあるからネットに正しく繋がってないんじゃないかな?

>モデムの電源を切っていてもキャンセルボタンを押せたり、
意味不明
524デフォルトの名無しさん:2007/08/07(火) 22:25:11
だからなんなの?
525デフォルトの名無しさん:2007/08/07(火) 22:25:56
>>522
ない。
必要ないから。
526デフォルトの名無しさん:2007/08/07(火) 22:27:13
wcをフィールドでもったほうがいくない?
527デフォルトの名無しさん:2007/08/07(火) 22:29:00
>>523
ネットに繋がってないときにキャンセルが出来るときと出来ないときがあるのです。
エラーは書いてあるとおり、e.Errorと名前の解決が出来ないです。
つまりエラーの内容が一定ではないのです。
バラバラと書いたのは伝わりにくかったかも知れません。
528デフォルトの名無しさん:2007/08/07(火) 22:33:45
名前の解決が出来ない

DNSにアクセスできてない。

ネットに上手く繋がってない。
529デフォルトの名無しさん:2007/08/07(火) 22:38:20
数行ならそのまま貼れよ
530デフォルトの名無しさん:2007/08/07(火) 22:39:25
いや、すうぎょうじゃないおy
531デフォルトの名無しさん:2007/08/07(火) 22:42:40
>ソースコード数万行、数十万行のプログラム書いたことある?
開発の仕事ならないなあ。
仕事での開発じゃせいぜい月数千行くらいじゃないの?
したら100ヶ月もかかっちゃうよ
532デフォルトの名無しさん:2007/08/07(火) 22:43:55
え、一人で作るんじゃない?
そんなの数十万行のプログラムとか自慢げに言うことじゃないしなあ

まあそうでなくとも自慢げにいえるプログラムなんてそうそうないけどな
533デフォルトの名無しさん:2007/08/07(火) 22:47:08
けど、数十行程度のサンプルプログラムをwwwに公開して
あたかも、C++が出来ますなんてひといっぱいいんじゃんw
534デフォルトの名無しさん:2007/08/07(火) 22:54:01
VBAで数十万行のソースかいてたら本当に尊敬するわ。
535デフォルトの名無しさん:2007/08/07(火) 22:56:03
まあ数十行ならエッセンスの詰まったすごいコードはあるけどね。
もちろんそれが完成したプログラム、ではないけど。

くそソースはそらもう腐るほどあるが
536デフォルトの名無しさん:2007/08/07(火) 23:00:00
>>6
宇宙仮面のところは引っ越したらしいよ。

http://uchukamen.com/
537デフォルトの名無しさん:2007/08/08(水) 00:24:44
以前一緒にCOBOLの仕事してた奴のコーディング量は凄かった

ループとか普通の制御構造も使わずにひたすらコピペでまっ平らな処理書いてた
そんなんで「今日は何千ステップも作って疲れたぜ」とか言っててもう・・・
538デフォルトの名無しさん:2007/08/08(水) 00:31:35
>ループとか普通の制御構造も使わず

なにその縛りプレイ
539デフォルトの名無しさん:2007/08/08(水) 00:35:56
>>537
なんでそんな極端な例をもってくるかな?

けっきょく、サンプルプログラム程度しか書いたこと無いんでしょw
540デフォルトの名無しさん:2007/08/08(水) 01:05:36
なにその無意味なつっかかり
541デフォルトの名無しさん:2007/08/08(水) 01:24:45
>522を要約すると
数十万行のプログラム → 凄いプログラム
数千行のプログラム → プロトorサンプル程度のプログラムwwwっうぇwww

>行数が多いからすごい、すごくないの議論をするつもりではありません
とか言いながらそういう議論をしていることにも気付いてないのか・・・
542デフォルトの名無しさん:2007/08/08(水) 01:26:52
議論をするつもりではありません = 異論は認めません
543デフォルトの名無しさん:2007/08/08(水) 01:37:17
普通夏が来るならふらっとだろ・・・
544デフォルトの名無しさん:2007/08/08(水) 01:42:21
コードを書く2000行くらいのプログラムを書いて約5万行のコードを書いた事ならあるな
全体で8万行くらいのプログラムの一部だけど
545デフォルトの名無しさん:2007/08/08(水) 01:55:46
>>475
ボタンの名前が違ったりとかじゃないの?
そもそもどういうエラーがでるの?

というかみんなは>>454みたいな事をしたいときに
ハンドラを同じにして>>474の書き方しないのけぇ?
546デフォルトの名無しさん:2007/08/08(水) 02:05:22
したくならないからなぁ
547デフォルトの名無しさん:2007/08/08(水) 02:10:04
>ハンドラを同じにして>>474の書き方しないのけぇ?
おまえはいったいどこのコンパイラを使ってるんだw
VBっておちじゃないだろな
548デフォルトの名無しさん:2007/08/08(水) 02:10:56
エラー CS0150: 定数値が必要です。
エラー CS0150: 定数値が必要です。
エラー CS0150: 定数値が必要です。
エラー CS0150: 定数値が必要です。
エラー CS0150: 定数値が必要です。
エラー CS0150: 定数値が必要です。
549デフォルトの名無しさん:2007/08/08(水) 02:13:29
>>545
エラー 1 定数値が必要です。
caseのラベルの部分でこのエラーが出る
550デフォルトの名無しさん:2007/08/08(水) 02:14:57
>>545
実際にコード書いて試してみなよ
コンパイルできるんならそのコードを晒してみせてよ
551506:2007/08/08(水) 02:18:56
結局試した人はいないのか
そのくせアレコレ書きもむとは
口先ばっかのとんだスレですな
552545:2007/08/08(水) 02:22:34
>>547-550
あ、ほんとだw
コンパイル通ったのは気のせいだったみたい。
ごめんなさい。
553デフォルトの名無しさん:2007/08/08(水) 02:56:13
ふらっと行けよ。君らの居場所はここじゃない。
554デフォルトの名無しさん:2007/08/08(水) 03:57:30
>>552
君のコンパイラは気まぐれでつねw
555デフォルトの名無しさん:2007/08/08(水) 12:02:02
DTE80、いろいろ面白そうなObjectあるね。何かやるのに便利かも。オートメーションってところがなんか('A`)マンドクセそうだが。
556デフォルトの名無しさん:2007/08/08(水) 12:30:31
オートメーションってところはマンドクセじゃなくて普通に便利そうだろwww
だが、実際にどれくらい効率UPするかは疑問だけどね。
557デフォルトの名無しさん:2007/08/08(水) 12:47:31
いや、C#からだとメソッドの呼び出しとか('A`)マンドクセくなかった?普通の.NETみたいな感じで呼べたっけ?
ちょっといじってから股報告するノシ
558デフォルトの名無しさん:2007/08/08(水) 13:52:34
pathからドライブ文字の取得方法ってありますでしょうか?



たとえば C:\ から "C"という文字列だけを取り出したいのですが。。。
559デフォルトの名無しさん:2007/08/08(水) 14:13:12
strig drv;
string root = Path.GetPathRoot( path );
if( !String.IsNullOrEmpty( drv ) )
 drv = root[0].ToString();
560デフォルトの名無しさん:2007/08/08(水) 14:13:57
ひどいまちがい

string drv;
string root = Path.GetPathRoot( path );
if( !String.IsNullOrEmpty( root ) )
 drv = root[0].ToString();

561デフォルトの名無しさん:2007/08/08(水) 14:24:59
FormのVisibleがfalseのままで位置を変更できないでしょうか?
VisibleがfalseだとTopとLeftを変更しても意味がないようです。
562デフォルトの名無しさん:2007/08/08(水) 14:41:46
>>561
普通に Visible が false でも変更できるよ
一度もShowしてない状態で位置を変更するなら Form の StartPosition が Manual にする必要があるけどね
563デフォルトの名無しさん:2007/08/08(水) 15:17:06
>>562
ありがとうございます。
>StartPosition が Manual にする必要
この通りでうまくいきました。
564デフォルトの名無しさん:2007/08/08(水) 18:56:13
任意の型Tをstringに変換するにはToStringを使えばいいんですが、
その逆で、stringから任意の型Tのインスタンスを作るのに便利なクラスとかはないでしょうか?
自前でやるなら、型TからParseメソッドを検索するとかでできるかなと思うんですが、
もしFrameworkにそういうクラスがあれば、そっちを使いたいと思いまして。
565デフォルトの名無しさん:2007/08/08(水) 19:04:13
Tyoe
566デフォルトの名無しさん:2007/08/08(水) 19:04:45
>>565はtypo
Type
567デフォルトの名無しさん:2007/08/08(水) 19:13:14
Typeでそんなことできたっけ?
568デフォルトの名無しさん:2007/08/08(水) 19:41:53
TypeConverter
569デフォルトの名無しさん:2007/08/08(水) 19:51:24
>>564
出来るけどやめたほうがいい。
レベルが上がったら試してみればいい。

createObjectだったら話は別だが。
570デフォルトの名無しさん:2007/08/08(水) 20:01:56
デザイナ関連でよく使われるしそんなに大したものでもない
>>568でおk
571デフォルトの名無しさん:2007/08/08(水) 20:23:24
TypeConverterっていうのは文字通り「変換屋」のベースクラスに過ぎず、
変換方法を自分で実装するんだぞw
572デフォルトの名無しさん:2007/08/08(水) 20:30:09
自動でやってくれたら革命起こるぞ
プログラマ不要時代の到来w
573デフォルトの名無しさん:2007/08/08(水) 20:31:43
>>572
ひょとして「嫌味」が通じない人か?w
574デフォルトの名無しさん:2007/08/08(水) 20:34:46
>>573
ひょとして「嫌味」が通じない人か?w
575558:2007/08/08(水) 20:41:50
>>560
ありがとう
576564:2007/08/08(水) 20:46:11
TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red")
とかすればいいわけですね。
自前構造体では、TypeConverterの派生クラスを実装して、
TypeConverterAttributeつけると。

intとかにはTypeConverterAttributeがないようなので、
統一的に扱えないのが少し残念ですが。。。
ありがとうございました。
577デフォルトの名無しさん:2007/08/08(水) 20:51:44
だからんなことしなくてもType.GetTypeとリフレクションの組み合わせで
普通にできるって
578デフォルトの名無しさん:2007/08/08(水) 21:02:33
"Red"とかParseとか言ってるから、
インスタンスが作りたいだけじゃなくて同時にメンバに値を入れたいんだろ
579デフォルトの名無しさん:2007/08/08(水) 21:03:59
>564
任意の型にToStringを何も考えずにやるのはやめた方がいい。
DateTimeみたいにフォーマットとか指定しないと地域と言語のオプションに依存するのがあったりして挙動が変わったりする。
たまにtipsとしてエクスプローラなどの日付の形式を変えるものが紹介されてたりするし。
日付の形式を和暦で元号付きとかにしてみるのがおすすめ。

まぁ表示用だけならかまわないんだが元に戻す変換もやろうとしてるみたいだし。
580デフォルトの名無しさん:2007/08/08(水) 21:12:15
>>579
また訳のわかんないことをw
581デフォルトの名無しさん:2007/08/08(水) 21:22:38
業務連絡

つりはするーしろ
582デフォルトの名無しさん:2007/08/08(水) 23:10:12
>>577
あほう?
583デフォルトの名無しさん:2007/08/08(水) 23:11:32
TypeConverterとstringひとつのコンストラクタとParse検索のあわせ技で
584デフォルトの名無しさん:2007/08/08(水) 23:12:56
だからTypeConverterって線はありえんだろうw
本当にコード書いてる人間か?
585デフォルトの名無しさん:2007/08/08(水) 23:18:09
しつこいな、なんで?
何つかったって似たようなもんだろ。

ああ、Type.GetTypeとリフレクションの組み合わせか
そうかそうか
なんのこっちゃ
586デフォルトの名無しさん:2007/08/08(水) 23:19:43
まさか任意の型では使えない(実装しなきゃならんから)
ありえんとか言ってるのか?
じゃあ実装しなくても任意の型対称にできる方法を出してくれ
587デフォルトの名無しさん:2007/08/08(水) 23:20:26
ああ、Type.GetTypeとリフレクションの組み合わせか
そうかそうか
なんのこっちゃ
588デフォルトの名無しさん:2007/08/08(水) 23:24:28
リフレクションだけで一般的にやれたらそれこそ>>572だぞ
589デフォルトの名無しさん:2007/08/08(水) 23:26:11
>本当にコード書いてる人間か?
コード書かない人間がTypeConverterなんか知ってるのか!!
590デフォルトの名無しさん:2007/08/08(水) 23:39:32
なんだ今日は撤退が早いな…
591デフォルトの名無しさん:2007/08/08(水) 23:57:40
Button button = 神<Button>("クリックされたらメッセージボックスでHello World!と表示するボタン");
592デフォルトの名無しさん:2007/08/09(木) 09:29:42
>>564 何がしたいのかわからんが文字列でのシリアライズみたいのしたいんだったら作ったよ。
593デフォルトの名無しさん:2007/08/09(木) 10:18:19
C++ようにはVCCodeModelとかあるみたいなんだが、C#にはないの?
それともデフォルトのCodeModelで全部間に合うってことかね?
ためしてみようとおもったけどComえらー(なんたらREJECT)が出たので検証できず・・・orz
594デフォルトの名無しさん:2007/08/09(木) 13:52:24
なんたらってシネヨ。
595デフォルトの名無しさん:2007/08/09(木) 17:38:57
Dictionaryをグリッドとかにバインドするうまい手段はないもんかね
596デフォルトの名無しさん:2007/08/09(木) 17:41:35
最初からDataTable使えばすむこと
597デフォルトの名無しさん:2007/08/09(木) 18:38:49
UIスレッドで処理を実行するためにControl.BeginInvokeやControl.Invokeがありますが、
ウインドウのインスタンスが特定できない場合にも使えるようなメソッドってありますか?
System.Windows.Forms.Timerを使えばできなくもないですが、やや面倒なので。
598デフォルトの名無しさん:2007/08/09(木) 18:47:32
>>597
UI スレッドってのはウィンドウにひもづいてるわけで、
「どのウィンドウの UI スレッドに処理させたいのか」が
不明では何もしようがないよ・・・
599デフォルトの名無しさん:2007/08/09(木) 18:48:43
ないと思うけどな。
普通にテキトーなコントロールをスレッド使うクラスに渡せばいいじゃん。

ライブラリ作ってるとかで(くだらない体裁上の問題だとは思うが)どうしても
そういう泥臭いのがいやという事情なら、後々他で使うことも考慮して
ダミーの非表示フォームでもシングルトンで作ってそれを利用するとか。

ダミーフォームのインスタンスはApplication.Idleとかで作成すればいい。
600597:2007/08/09(木) 19:00:43
>>598
メッセージループはウインドウの存在に関わらず存在するんで無理ではないような。

>>599
やっぱないですかね。
適当なコントロールを渡すのが嫌という訳ではなくて
任意の時点で必ず存在しているコントロールというものがないんです。
ダミーフォームっていうのも手ですがそれならTimer使ってやったほうがよさげですね。
601デフォルトの名無しさん:2007/08/09(木) 22:38:57
どういう状況なんだろ
602デフォルトの名無しさん:2007/08/09(木) 23:12:43
>>600 
ふつーーーーーに、ダミーフォームをメインスレッドで作って、それをメインスレッドを体現するオブジェクトとして扱えばいいと思うけれど。
FACADEで隠せば何も問題がない。
603デフォルトの名無しさん:2007/08/09(木) 23:15:23
599書いたのは俺だけど、さすがにダミーのフォーム(別にボタンでもラベルでもいいんだが、本当は。。)
を作るのがそんなにフツーのこととも思えないよw
604デフォルトの名無しさん:2007/08/09(木) 23:17:53
いやごく普通のテクニークだろ
605デフォルトの名無しさん:2007/08/09(木) 23:43:32
全てのフォームは同じスレッドで作成して
if(Application.OpenForms.Count>0)
Application.OpenForms[0].Invoke(hoge);
じゃだめなの?
606デフォルトの名無しさん:2007/08/09(木) 23:53:53
フォーム数がゼロの時はどうなるんだよw
607デフォルトの名無しさん:2007/08/09(木) 23:56:59
WPF なら Application に Dispatcher があるんだがな
608デフォルトの名無しさん:2007/08/10(金) 00:45:28
フォーム数0の時にInvokeが必要なコントロール操作ってなにがあるんだ?
609デフォルトの名無しさん:2007/08/10(金) 00:56:00
MessageBox.Showとかワーカースレッドでやるとまずくなかったか?
610デフォルトの名無しさん:2007/08/10(金) 00:59:29
フォームが無かったりタスクバー使用してないアプリでメッセージボックス出されると腹立つ
611デフォルトの名無しさん:2007/08/10(金) 01:01:41
>>607
Dispatcherて何さ?あと英単語の間に空白いれてるのはなぜ?
612デフォルトの名無しさん:2007/08/10(金) 01:08:52
Wikipedian の嗜み
613デフォルトの名無しさん:2007/08/10(金) 01:23:02
>>611
>英単語の間に空白いれてるのはなぜ?
× IamJapanese.
○ I am Japanese
614デフォルトの名無しさん:2007/08/10(金) 01:32:41
>>605
所詮C#なんておこちゃま言語使ってるのに
hogeなんてunixを恰も知ってるような単語を使うのは止めましょう
615デフォルトの名無しさん:2007/08/10(金) 01:34:15
英単語の間じゃなくて
日本語とアルファベットの間ってことかな?
俺は Wikipedia とかない頃から space よくいれる。
文字によってはくっついて読みづらかったりするからね。

>>614
次から foo にしますね。
616デフォルトの名無しさん:2007/08/10(金) 01:36:10
wikipediaはそういう書き方は禁止されてると思ったが・・・
617デフォルトの名無しさん:2007/08/10(金) 01:56:01
MSDNはスペース入ってるな
618デフォルトの名無しさん:2007/08/10(金) 02:24:07
間延びしてマヌケに見えるだけ。
加えてバッドノウハウだし。
619デフォルトの名無しさん:2007/08/10(金) 02:29:05
バッドノウハウねぇ・・・
620デフォルトの名無しさん:2007/08/10(金) 02:45:29
等幅フォントだと間延びして間抜けに見えるので
プロポーショナルフォントでコードを書いてみよう
621デフォルトの名無しさん:2007/08/10(金) 02:53:46
>>619
元々、和欧文字間の1/4スペースがちゃんと空けられずに表示されてしまう
ことから来てるものなんだが、
これをバッドノウハウと言わずしてなんという?
622デフォルトの名無しさん:2007/08/10(金) 07:04:08
ていうかなんでいきなりそんなどうでもいい話題?
623デフォルトの名無しさん:2007/08/10(金) 09:00:23
こういう話題になると必ずハッスルする奴が出てくるな
624デフォルトの名無しさん:2007/08/10(金) 09:07:39
おなぬーのやり方に凄いポリシー持ってそうな香具師だな
625デフォルトの名無しさん:2007/08/10(金) 10:53:01
つーかここをおなぬー公開場だと思ってんじゃね
626デフォルトの名無しさん:2007/08/10(金) 11:10:46
http://blogs.wankuma.com/tatsumihr/articles/79793.aspx
このサイトを参考に、アプリケーション構成ファイルに独自セクションと独自エレメントを追加
しようとしているのですが、わからないことがあります。

このサイトの例は
<myCustomSection>
 <myChildSection />
 <myChildSections>
  <myChildSection />
  <myChildSection />
  </myChildSections>
</myCustomSection>
と、myCustomSectionの子のmyChildSectionsがmyChildSectionのコレクションになってますが、
<myCustomSection>
 <myChildSection />
 <myChildSection />
 <myChildSection />
</myCustomSection>
と、myCustomSectionが直接myChildSectionのコレクションとなるようにしたいです。
そこでわからないのが、<configSections>の<section>のtype属性で指定するハンドラの作り方です。
サイトをみると、セクションを定義するハンドラはConfigurationSectionクラスを継承し、
コレクションであるにはConfigurationElementCollectionを継承してコレクション独自のメソッドを
オーバーライドする必要があるようですが、それぞれ継承しているのがインタフェースではなくクラス
であるため、多重継承ができず、セクションを定義するハンドラかつコレクションというのが
できないように思えます。
上記のような構成ファイルを作るには、どうすればいいのでしょうか。
よろしくお願いします。
627デフォルトの名無しさん:2007/08/10(金) 11:36:47
コレクションはコレクションでいいよ。
ただし、そのコレクションをあらわすプロパティの属性名を""のように空にして
IsDefaultCollection をtrueにする。

ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1772648&SiteID=7
参考

628デフォルトの名無しさん:2007/08/10(金) 22:19:49
C#ってどんな局面で必要になりますか?
内の部署はWINアプリは相変わらず、VC++MFCです。


629デフォルトの名無しさん:2007/08/10(金) 22:32:32
VC#2005Express(無料)落として簡単なアプリ作ってみ
630デフォルトの名無しさん:2007/08/10(金) 22:32:48
.NET指定の案件が来たとき
631デフォルトの名無しさん:2007/08/10(金) 22:41:57
C#は.NETでベストな選択。
.NET以外は使えないの2択。
632デフォルトの名無しさん:2007/08/10(金) 22:45:02
っ F#
633デフォルトの名無しさん:2007/08/10(金) 22:45:52
内の部署は全部C#.NETです。
でもWinFormsは糞です。
634デフォルトの名無しさん:2007/08/10(金) 23:34:44
Activator.CreateInstanceで動的にインスタンスを生成するクラスを指定しようとしているのですが、
そのときに必要なキャストも動的にやりたいです

void func ( string classname, Type type ) {
 何か = ( classname ) Activator.CreateInstance( type );
}

みたいな感じで…
キャストするクラス名を動的に決めるのってどうやればいいんでしょうか?
635デフォルトの名無しさん:2007/08/10(金) 23:35:12
簡単なアプリ作るなら確かに簡単だが、お金を頂くアプリだと
標準のコンポーネントなんてほぼ使えないからほとんど一から
書き起こすことになるそうなるとVC++MFCもVC#も大して変わらん

そのくせ、遅い
とてもじゃないが、業務用では無理
636デフォルトの名無しさん:2007/08/10(金) 23:37:02
>>634
フラット池よ
637デフォルトの名無しさん:2007/08/10(金) 23:43:50
>>634
キャストって何か考えてみろ。
まあジェネリック使えばできる。
638デフォルトの名無しさん:2007/08/10(金) 23:44:31
いやごめんできんわww
動的に文字列で指定だったな、すまんw
639デフォルトの名無しさん:2007/08/10(金) 23:48:36
>>635
え?業務アプリこそC#だと思うのだが…
業務用ってなんのこと?
640デフォルトの名無しさん:2007/08/11(土) 00:56:24
業務用じゃなくて、入力系アプリだと無理だと言ってるんだろう。
入力系アプリにエフェクトやアニメーションなんかいらないからな。
641デフォルトの名無しさん:2007/08/11(土) 00:58:02
>634
普通の特定のインターフェースや基底クラスを持つクラスのインスタンスを動的に作るんだろ?
キャストする型名もその時点で決まってるのだから動的に型名を指定するなんて状況にはならないだろ?
642デフォルトの名無しさん:2007/08/11(土) 07:10:56
>>641
この間リフレクションでenumのフィールドか何かに対して何か処理したいときに何か対照の型に変換したらすっきりするという状況あったんだが・・・
他の逃げ方あったので忘れた。その場で型変換して使うというよりも動的に相手の型のインタフェースに合わせるために変える必要があるみたいな。
643デフォルトの名無しさん:2007/08/11(土) 07:16:44
C#で業務用アプリ作んなきゃいけないんだけど
ユーザ環境にACCESSがインストールされてなくても
ADO使ってMDBにアクセス出来ますか?
644デフォルトの名無しさん:2007/08/11(土) 08:29:06
その程度のこともわからない人が作ったアプリケーションを
お金を出して買う気にはなれん
645デフォルトの名無しさん:2007/08/11(土) 10:39:41
うむ
646デフォルトの名無しさん:2007/08/11(土) 10:48:34
>>644
こういうことだけを書きに来る人って生きてる価値ないよな
647デフォルトの名無しさん:2007/08/11(土) 10:56:12
へむ
648デフォルトの名無しさん:2007/08/11(土) 14:03:57
メンバに持ってるマネージオブジェクトに対してDisposeを呼ぶだけの目的でIDisposableを実装する場合
(アンマネージリソースは直接持ってない)、ファイナライザは実装しなくてもいいの?
649デフォルトの名無しさん:2007/08/11(土) 14:11:01
うん。
650デフォルトの名無しさん:2007/08/11(土) 14:11:43
てかファイナライザで何する気だw
651デフォルトの名無しさん:2007/08/11(土) 14:12:20
Dispose メソッドの実装
http://msdn2.microsoft.com/ja-jp/library/fs2xkftw(VS.80).aspx
652デフォルトの名無しさん:2007/08/11(土) 15:25:14
コピペ君って馬鹿だな、まで読んだ。
コピペ君っていうのは、ひょっとしてコピペするだけで、人は俺様の考えを
読み取ってくれるだろう、あるいは読み取るべきだ、とでも思ってるのかなw
653デフォルトの名無しさん:2007/08/11(土) 15:54:43
使いどころ間違えてるよ。
654デフォルトの名無しさん:2007/08/11(土) 16:01:06
うむ
655デフォルトの名無しさん:2007/08/11(土) 17:19:23
「コピペ君って馬鹿だな、まで読んだ。 」がコピペである件について
656デフォルトの名無しさん:2007/08/11(土) 17:27:24
ガベコレされてるか確かめるのはファイナライザにWriteLineメソッドでも書けばよかったね
657デフォルトの名無しさん:2007/08/11(土) 17:33:59
ドラッグ&ドロップについて質問です。
自コントロール内のオブジェクトを外にドラッグドロップするにはDoDragDropメソッドを
使うと思うんですが、例えば書庫内のファイルをエクスプローラにドロップする場合のように、
ドロップした時に何らかの処理(この場合一時ファイルとして解凍する)を行いたいときは
どうすればよいのでしょうか?
658デフォルトの名無しさん:2007/08/11(土) 17:41:06
まずヘルプでドラッグとか調べてみろ
659デフォルトの名無しさん:2007/08/11(土) 17:45:48
D&Dを受け付けるコントロールのDragDropイベント
660657:2007/08/11(土) 18:09:51
>>658
え、どの辺に載ってます?
一応DoDragDropとかOnDragDropとかは調べたつもりなんですが。

>>659
ドロップ先が自分のアプリの管轄とは限らないんで。
661デフォルトの名無しさん:2007/08/11(土) 18:20:03
相手がドロップを受け取る直前直後に何かしたいってこと?
662657:2007/08/11(土) 18:42:02
そうです。
663デフォルトの名無しさん:2007/08/11(土) 18:53:13
>書庫内のファイルをエクスプローラにドロップする場合

こういうのってブラウズしてる時点でテンポラリフォルダに解凍してんじゃね?
もしファイルをエクスプローラにドラッグするなら
すくなくともパス等をDataObjectに入れとかなきゃいけないのでは
そうでないと受ける側がeffectきめらんないでそ
664デフォルトの名無しさん:2007/08/11(土) 18:56:46
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1325458&SiteID=7
QueryContinueDrag 使えばなんとかなるらしいが
665657:2007/08/11(土) 19:53:12
>>664
あ、まさにこれです。どうもありがとうございます。
666デフォルトの名無しさん:2007/08/11(土) 22:39:25
気になったんだけど>>643は出来るの?
667デフォルトの名無しさん:2007/08/11(土) 22:40:08
できる
668デフォルトの名無しさん:2007/08/11(土) 23:19:47
MDAC居るだろ
669デフォルトの名無しさん:2007/08/12(日) 00:52:57
いらないよ
Frameworkのみ
670デフォルトの名無しさん:2007/08/12(日) 01:49:11
2000はMDACのインストールが必要
XP以降は不要
671666:2007/08/12(日) 02:52:19
>>667->>669
ありがとう
672666:2007/08/12(日) 02:53:56
まちがった。
>>667-670ね。
673デフォルトの名無しさん:2007/08/12(日) 10:25:08
VisualStudio2005でRADを使いながらGUIプログラミングをしているのですが、
GUIのプログラムを長くしてなかったため(してたときも初心者でした)、
ソースコードがスパゲッティになってしまいます。
一応オブジェクト指向や、テストなど一通り学んだつもりだったので、
足りない物を探して、MVCかPACといわれるものではないかと思ったのですが、あってますか?
また、それらを学ぶための良い本などありましたら、是非教えてください。お願いします。
674デフォルトの名無しさん:2007/08/12(日) 12:50:33
コンポーネント単位で独立してさえいれば中はどうでもいいと思うよ
675デフォルトの名無しさん:2007/08/12(日) 13:02:07
Formsはイベントドリブンだから完全なMVCじゃないよ。
WPFだと、XAMLだけでViewを定義することも可能だからMVCモデルも
イベントドリブンも可能
676デフォルトの名無しさん:2007/08/12(日) 15:21:13
スパゲッティと
オブジェクト指向、MVC、PACとの関連性がわかんね
それ以前のもんだいじゃね
677デフォルトの名無しさん:2007/08/12(日) 15:56:07
完全なMVCなんてどうでもいい
678デフォルトの名無しさん:2007/08/12(日) 16:13:50
MVCがどうのとか言うのは、まともなモノが作れるようになってからでいい。
679デフォルトの名無しさん:2007/08/12(日) 18:36:19
WPFでStrutsの様なMVCモデルを実現するフレームワークは無いのかな?
自分で作るのはとてつもなく面倒なんだけど。
680デフォルトの名無しさん:2007/08/12(日) 21:24:56
それって何がうれしいわけ?
681673:2007/08/12(日) 21:43:15
>>674
コンポーネント単位っていうのは、つまりForm単位ってことですか?
今はとりあえず単一のFormでプログラムをしてますんで、独立してると思います。

>>675
WPFですか、本格的にMVCを勉強するならやってみようと思います。

>>676-678
まだ経験がないため、うまく作れるよう手法を探してたのですが、
MVCなど以前の問題ということなら、どのように勉強すればいいですか?
682デフォルトの名無しさん:2007/08/12(日) 21:43:27
欲しいものは自分で作る
それがこの世の掟
683デフォルトの名無しさん:2007/08/12(日) 22:11:21
そして車輪を再開発すると・・・
684デフォルトの名無しさん:2007/08/12(日) 22:54:15
>>681
>コンポーネント単位
ユーザコントロールも積極的に使う
WPFでは推奨されないらしいけどw
685デフォルトの名無しさん:2007/08/12(日) 23:16:43
とりあえず>>673はOOPがよくわかってないんだろうから、まずOOPの考え方を
理解するのが先決だと思うよ。

たぶん、クラスによる役割分担も考えず、VB的に全部の処理をFormのに書いてるんだろうけど、
OOPがほんのちょっと理解できればそんな馬鹿なことはやれって言われても
したくなくなるよ。
686デフォルトの名無しさん:2007/08/12(日) 23:24:15
それはそもそもOOPがどうとか以前の問題だろう。
687デフォルトの名無しさん:2007/08/12(日) 23:25:16
俺のFormは700行ある
688デフォルトの名無しさん:2007/08/12(日) 23:35:33
Java のコードをC#に変換しようと思い、調べてみると
Java Language Conversion Assistant 3.0というのがVisutla Sudio 2005
に入っていて、JavaのコードをC#に変換できると書いてありました。
さっそく使ってみようとすると、メニューの「ファイル→開く」あたりに
それらしき機能が見あたりません。
(MSのサイトには、「ファイルメニュー→開く→変換」で実行する、とあります)

下のページでは、セットアップ中にJava Language Conversion Assistantを
入れるか選択できると書いてありますが、インストールはほぼ全自動で、
インストールする機能の選択はできませんでした。

このJava Language Conversion Assistantというのは、VS2005の
Express Editionでは利用できないのでしょうか?

http://msdn2.microsoft.com/ja-jp/vstudio/Aa718346.aspx
>How to install the Java Language Conversion Assistant 3.0:
>For customers using Visual Studio 2005, the official release of the
>Java Language Conversion Assistant 3.0 can be selected for installation
> during the setup of Visual Studio 2005.

よろしくお願いします
689デフォルトの名無しさん:2007/08/12(日) 23:40:00
それ以前に、対応する Java のバージョンは大丈夫かい? 無理だろうけど。
690デフォルトの名無しさん:2007/08/12(日) 23:42:13
APIが違うのに変換できるのか、
J#と言う落ちじゃないよな?
691デフォルトの名無しさん:2007/08/12(日) 23:46:38
>>690
もちろん、そういうオチ。バージョン見れば自明だけど。
692デフォルトの名無しさん:2007/08/13(月) 00:00:28
>>681
>まだ経験がないため、うまく作れるよう手法を探してたのですが、
さしあたってCode Complete第2版〈上〉かな
基本的な技法が網羅されている

最初から、全部を読んだり、全てをやろうとする必要はなく、
スパゲティになる原因で心当たりのありそうなところを重点的にやるのが良と思われる
693デフォルトの名無しさん:2007/08/13(月) 00:08:01
>>689
はい。自分が変換したいJavaのコードはJLCAで変換できるそうです。

>>690
↑の英文サイトみてもらうとわかりますけど、JavaからC#に変換する
ツールですよ。対応する.net frameworkの機能に置き換えてくれます。

MicrosoftがC#に移行してもらうためにつくったツールなので
JavaでもJ#のコードでも大丈夫みたいです。

>>691
バージョン見れば自明とはどういう意味でしょうか?
694デフォルトの名無しさん:2007/08/13(月) 00:46:12
Express Edition は厳密には Visual Studio ではなくて言語別の製品、Visual C# だしな。
乗ってなくても不思議はない。

J# は J2EE1.3 の独自実装ライブラリを含む、
言語というよりは .NET Framework の副次的なフレームワーク。

想像だけど、自分のコード分は C# に翻訳してくれて、使うライブラリは J# のなんだろうね。
695デフォルトの名無しさん:2007/08/13(月) 00:49:28
>Express Edition は厳密には Visual Studio ではなくて言語別の製品

Visual Studioは言語だったんだ
696デフォルトの名無しさん:2007/08/13(月) 01:01:38
別言語、じゃないぞ。VC#やらVBやらのそれぞれ言語別の製品、だぞ。
697デフォルトの名無しさん:2007/08/13(月) 01:02:32
>>695
日本語大丈夫?
698デフォルトの名無しさん:2007/08/13(月) 01:38:29
>>697
だめ
699デフォルトの名無しさん:2007/08/13(月) 09:39:56
J#でクラスライブラリとしてビルドしてC#から呼び出すとか
700デフォルトの名無しさん:2007/08/13(月) 11:33:18
>>694 >>699
ありがとうございます。
もう一度ISOファイルを落として再インストールしてみましたがやはり
Expressはインストール機能の選択不可でしたので、Java Language
Conversion Assistantは利用できなさそうです。
さらに、JLCAはVisual Studio 2008からはサポートされないそうです。

>>699
コード変換ができないとなると、J#でアセンブリを作るしかないですかね。
J#でdllへコンパイルすることはできました。
ただC#からそのアセンブリを使う方法がわからず、SDKを読んでいましたw

アセンブリを作ってC#からそれを利用する場合、
Java(J#)側のコードを大きく書き換える必要はないという理解で
あっていますでしょうか?
701デフォルトの名無しさん:2007/08/13(月) 18:01:59
クラスのアクセスレベルはpublicになってる?
702デフォルトの名無しさん:2007/08/13(月) 19:41:00
複数のIEnumerable<T>を連結する方法について、(1)と(2)に効率の違いはありますか?
また、これよりもいい方法はないでしょうか?

(1)List<T>をつくって追加していきそれを返す。
(2)
public MultipleEnumerable<T> : IEnumerable<T>
{
List<IEnumerable<T>> List{get;set;}
public IEnumerator<T> GetEnumeratot()
{
foreach(IEnumeratble<T> enu in this.List)
foreach(T value in enu)
yield return value;
}
703デフォルトの名無しさん:2007/08/13(月) 19:48:16
IEnumerable<T>を実装したラッパーを
自分が一番いいと思うように手で書けばいいんじゃね
704デフォルトの名無しさん:2007/08/13(月) 19:48:44
スペルミスが多いな
705デフォルトの名無しさん:2007/08/14(火) 12:22:00
ある文字列がローカル変数に入ってるんだけど、これをストリーム経由で呼び出せないかな?
XmlTextReader で XML を処理するんだけど、その XML がファイルに入ってるんじゃなくて
変数に入ってる。一度ファイルに吐き出してから読みだすこともできると思うけど、直接
変数から読みだしたいなと思ったんだけど、こういうの出来る?
706デフォルトの名無しさん:2007/08/14(火) 12:23:56
StringReader
707デフォルトの名無しさん:2007/08/14(火) 12:35:31
>>706
セックス
708デフォルトの名無しさん:2007/08/14(火) 20:22:49
質問。WebBrowserクラスのInvokeScriptで、数値や文字列が戻り値の場合は簡単に扱えるけど、
オブジェクトの場合はどうやって操作すればいいんだ?
例えば、JavaScriptで

function hoge()
{
return new Array( 1 , 2 ,3 ,4 , 5 );
}

って宣言していて、このほげが返す配列の中身にアクセスするにはどうすれば・・・。
709デフォルトの名無しさん:2007/08/14(火) 20:25:59
>>708
この程度のことが分からない奴がUNIXを触っていたとは思えんが
なぜhogeなんですか?
710デフォルトの名無しさん:2007/08/14(火) 20:39:57
どうでもいいだろそんな事
711デフォルトの名無しさん:2007/08/14(火) 20:53:02
>>709
お前なんか勘違いしているぞ。

それともわざと書いてるのか?
712708:2007/08/14(火) 21:11:47
hogeの中身をJSONにした場合は取得できました
function hoge()
{
return { name:"hoge",id:50 };
}
VBですまそ。
Dim obj As Object = WebBrowser1.Document.InvokeScript("hoge")
Dim name As String = obj.GetType().InvokeMember("name", Reflection.BindingFlags.GetProperty, Nothing, obj, Nothing).ToString()
Dim id As Integer = CType(obj.GetType().InvokeMember("id", Reflection.BindingFlags.GetProperty, Nothing, obj, Nothing), Integer)
結果はnameがhoge,idが50
MSDNライブラリに「GetTypeしてInvokeMemberしろ!」書いてあったので、
とりあえずフラグをGetFieldにしたら例外を投げられてしまい、
GetPropertyに変更したら値を取得できました。

ただ、名前を特定できるメンバならともかく配列の場合はどうすれば・・・。
713デフォルトの名無しさん:2007/08/14(火) 21:22:32
0 とか 1 とかのメンバ名でアクセスできるんじゃね
714708:2007/08/14(火) 21:29:05
>>713
できました、thxです!
715デフォルトの名無しさん:2007/08/15(水) 20:18:41
.NET CF 2.0 上の c# ですが、XML で文字列を取得して、それを
ラベルとかに貼り付けていますが、「〜」という文字が化けてしまいます。
デバッガで変数内の「〜」をみるとちゃんと入っていますが、PPC 上では文字が□になっています。
どうしてでしょうか?
716デフォルトの名無しさん:2007/08/15(水) 20:52:14
フォント
717デフォルトの名無しさん:2007/08/15(水) 22:07:11
>>715
「〜」はFULLWIDTH TILDEだったり、WAVE DASHだったりするから。
同じ文字を意図してるのに ベンダによってコードポイントが違う。
718デフォルトの名無しさん:2007/08/16(木) 17:01:50
「あらかじめ文字列とメソッドがペアになっていて、“何か”に文字列を与えるとペアになったメソッドが呼ばれる」

抽象的すぎて申し訳ないのですが、この“何か”を実現する構文ってありませんか?


例えば文字列"hoge"とメソッドpiyo()がペアだったとき、
array["hoge"];
method("hoge");
などとすることで
piyo();
と書いたときと同じ結果が得られる
ということをやりたいのです。
最初はswitch-case文でやっていたのですが、さすがに冗長になりすぎてしまいました。
そこで、もっと優れた方法があるはずだと思ったしだいです。
よろしくお願いします。
719デフォルトの名無しさん:2007/08/16(木) 17:07:34
なんでこんなに文字列好きって多いんだろうな

Dictionary<string, MethodInvoker> でも使ってれば?
720デフォルトの名無しさん:2007/08/16(木) 17:15:20
デリゲートでいいじゃん
721デフォルトの名無しさん:2007/08/16(木) 17:17:24
あるTypeのdefault名値をobject型でいいんでとりたいんだが、いいほうほうある?
MakeGenericMethodとか使ってゴリゴリやれば取れそうなんだけど、微妙に遅そう。
722デフォルトの名無しさん:2007/08/16(木) 17:18:08
動的言語でも自作してるんかね。

普通はキーが string で値がデリゲートの Dictionary 使うか。
723デフォルトの名無しさん:2007/08/16(木) 17:31:19
default名値ってナニ?
724デフォルトの名無しさん:2007/08/16(木) 17:31:46
>>721
static object GetDefaultValueOf(Type type)
{
return type.IsValueType ? Activator.CreateInstance(type) : null;
}
725721:2007/08/16(木) 17:40:39
>>724 あーそれでいいんかな・・・
こんなんしといたけどそっちのほうが早そうだ。
static MethodInfo _defaultValueMI;
static Dictionary<Type, object> _typeToDefaultValueDic = new Dictionary<Type, object>();

static DBStorageUtil() {
_defaultValueMI= typeof(DBStorageUtil).GetMethod("GenericDefaultValue", BindingFlags.Static|BindingFlags.NonPublic);
}
static object GenericDefaultValue<TYPE>() {
return default(TYPE);
}
static public object DefaultValue(Type type) {
object value;
if (!_typeToDefaultValueDic.TryGetValue(type, out value)) {
value = _defaultValueMI.MakeGenericMethod(type).Invoke(null,null);
_typeToDefaultValueDic.Add(type, value);
}
return value;
}
726デフォルトの名無しさん:2007/08/16(木) 21:13:31
static object GenericDefaultValue<TYPE>() {
return default(TYPE);
}
だけとか
static object GenericDefaultValue<TYPE>() where TYPE : new() {
return new TYPE();
}
だけではなんでだめなのか
727デフォルトの名無しさん:2007/08/16(木) 21:14:47
ああTypeで指定したいからか、ちゃんちゃん
728デフォルトの名無しさん:2007/08/17(金) 00:10:41
ほんと、文字列でのメタ操作とリフレクションの質問多いな。
業務用で多用するものかね?デバッグやりづらいと思うんだけど。
729デフォルトの名無しさん:2007/08/17(金) 00:53:34
実際に直接的に扱うのは基盤部分だと思うけどね。
業務では知らないうちに知らないとこで使われてるくらいだろ。
730デフォルトの名無しさん:2007/08/17(金) 01:00:00
>>728
業務じゃ使わないとおもう
最初に設計されているからね。

分けのわからん素人か、トリッキーなコードが好きな人しか使わないよ。
731デフォルトの名無しさん:2007/08/17(金) 01:12:52
フレームワーク作る人なら多分使うよ
732デフォルトの名無しさん:2007/08/17(金) 02:48:33
まあ大抵はクラスの文字列指定くらいですむ使い方が多いな。
733デフォルトの名無しさん:2007/08/17(金) 16:09:55
すいません、C#でレポート機能を使ってみたいのですが、なぜか他のPCでバイナリを実行すると、下のエラーが出て
実行できません・…

別途何かファイルを用意しないといけないのでしょうか?


System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Microsoft.ReportViewer.WinForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ファイル名 'Microsoft.ReportViewer.WinForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' です。
734デフォルトの名無しさん:2007/08/17(金) 16:12:04
「レポートと ReportViewer コントロールの配置」
735デフォルトの名無しさん:2007/08/18(土) 21:31:20
くっそー悔しいからチラ裏みたいなことだけど書く

ボタンをおすと、ファイルダイアログとかフォントダイアログが
開くある親ダイアログを作ってた。

いつのまにかどのダイアログボタンでOKをおしても、親のダイアログが
閉じてしまう。DialogResultはCancel。
なんかスレッドまわりで変なことしてないか小一時間悩んだあげく、
Designer.csみたらすべてのボタンに
.DialogResult = System.Windows.Forms.DialogResult.Cancel;
が勝手についてた。

たのむよデザイナorz
736デフォルトの名無しさん:2007/08/18(土) 23:32:12
VC#のIDEが.NETでかかれていない理由はなんですか?
737デフォルトの名無しさん:2007/08/18(土) 23:41:13
>>736
それはよくある質問

よくある回答
MSに聞け
738デフォルトの名無しさん:2007/08/18(土) 23:43:32
企業秘密ですぅ
739デフォルトの名無しさん:2007/08/19(日) 00:00:31
想定される用途が違うから。
740デフォルトの名無しさん:2007/08/19(日) 00:14:20
C#コンパイラがC#でかかれていない理由はなんですか?
741デフォルトの名無しさん:2007/08/19(日) 00:21:02
逆アセンブルされちゃうから
742デフォルトの名無しさん:2007/08/19(日) 00:27:38
C#には自己記述能力がないのですか?
743デフォルトの名無しさん:2007/08/19(日) 00:46:07
チューリング完全
744デフォルトの名無しさん:2007/08/19(日) 00:47:18
C#やJavaはネイティブ対応してないから書かれていないだけ。
745デフォルトの名無しさん:2007/08/19(日) 00:48:11
>>736
Visual C# 2005やVisual Basic 2005のプロジェクトプロパティを表示して
おもむろにそこをSpy++で見てみると……

というかプロジェクトプロパティが表示されるまでなまら時間がかかる理由は、
よせばいいのにWinForms使ったからというのがもっぱらの噂。
746デフォルトの名無しさん:2007/08/19(日) 00:52:01
>>740
あなたバカですか?
その質問とおまえの質問が等価とでも?hw
747デフォルトの名無しさん:2007/08/19(日) 00:52:46
>>745
あと、WinFormsのデザイン画面でデザイン中のウィンドウを描画してる部分は.NETで動いてるよ。
考えてみれば当たり前の話だけど。

他にはIDEのマクロが(.NETの)VBで書かれてるとか。
748デフォルトの名無しさん:2007/08/19(日) 01:02:33
>>746
どう考えても釣り
749デフォルトの名無しさん:2007/08/19(日) 01:15:44
釣りと分かってて釣られてやんのw
750デフォルトの名無しさん:2007/08/19(日) 01:19:20
>>740
例えばIntelliSenseサポートのためとかかな?

MSのC#コンパイラには、メモリ常駐するモードがあって、
IDEでコード書いているときに常に裏で動きながらIntelliSenseをサポートしている。
IntelliSenseをサポートするためには、
不完全な文の処理とかIDEとの通信とか余計な機能が必要になるので、
高速化のためにメモリ常駐までやるそうな。

コンパイラもC#で書いた方がMSとしては楽なんだろうが、
速度のためには開発コストが余計にかかっても良いと判断したんだろう。

ちなみにC# 3.0に付属するExpression Treeの実行時コンパイラは完全マネージド実装。
多分C#で書かれてる。

あとはMonoのC#コンパイラもC#で書かれてる。
ttp://anonsvn.mono-project.com/viewcvs/trunk/mcs/mcs/

余談ついでにNemerleコンパイラをソースからビルドするにはNemerleコンパイラが必要。
ttp://nemerle.org/
751デフォルトの名無しさん:2007/08/19(日) 01:34:14
コンパイラをその言語でつくったら
コンパイラをコンパイルするときどうすんの?
別の言語であらかじめコンパイラをコンパイルしとくわけですか?
752デフォルトの名無しさん:2007/08/19(日) 01:37:13
予め既にコンパイラが存在する別の言語でコンパイラを作成しておく。
753デフォルトの名無しさん:2007/08/19(日) 10:29:08
.NETのクラスライブラリは大体C#で書かれてるんだっけ
754デフォルトの名無しさん:2007/08/19(日) 10:37:45
>>753
SSCLIのsscli20\clr\src\bcl\以下のクラスもC#で書かれてるね。
System.Int32とかSystem.VoidとかもC#で書かれてる。
(プリミティブ型そのものじゃなくてboxingされた参照型状態のSystem.Int32の方)

ttp://research.microsoft.com/sscli/

例えばSystem.Voidはこう定義されてる。
namespace System {
using System;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Void
{
}
}
755754:2007/08/19(日) 10:40:32
boxingされた参照型状態ってのは嘘か。
単に.NETの構造体としてのInt32を定義してるだけだな。

[Serializable, System.Runtime.InteropServices.StructLayout(LayoutKind.Sequential)]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Int32 : IComparable, IFormattable, IConvertible
, IComparable<Int32>, IEquatable<Int32>
{
internal int m_value;

public const int MaxValue = 0x7fffffff;
public const int MinValue = unchecked((int)0x80000000);
756デフォルトの名無しさん:2007/08/19(日) 14:36:25
既出で初歩な質問かもしれませんが、
たとえば、テキストオブジェクトが100個あって、それぞれ
txt_00〜txt_99
まで連番の名前が付いている場合、あるボタンがクリック
されたときに、それぞれの値のチェックをして、その結果で
Visibleを制御したいようなとき、100回も同じような
処理をするのは無駄なので For で回してオブジェクト
を操作したいのですが、どのようにすれば、idの一部だけ
異なるオブジェクトを、オブジェクトとして操作できるように
取得できますか?
757デフォルトの名無しさん:2007/08/19(日) 14:44:05
つ【List】
758デフォルトの名無しさん:2007/08/19(日) 15:36:42
>>756
こういうことでいいのかな?
panel1 に TextBox が100個あるとして、TextBoxの値が"visible"の時だけ表示させるコード

for (int i = 0; i < 100; i++)
{
TextBox tb = (TextBox)panel1.Controls["txt_" + i.ToString("00")];
if (tb == null) continue;
tb.Visible = tb.Text == "visible";
}
759デフォルトの名無しさん:2007/08/19(日) 15:41:11
TextBox100個デザイナで並べるやつがいたら色んな意味で凄いな
760デフォルトの名無しさん:2007/08/19(日) 16:28:32
さすがにコードで配置するでしょ
でも100個ぐらいならデザイナでもコピペでいけるが
プロパティ弄るのがきついな
761デフォルトの名無しさん:2007/08/19(日) 16:31:41
範囲選択でいいよ。
762デフォルトの名無しさん:2007/08/19(日) 16:36:43
そもそもWinFormでコントロール100個並べたら表示が重くてやってられなさそうだ
763デフォルトの名無しさん:2007/08/19(日) 16:38:01
Formなんであそこまで遅くなるの?
自分で作ったライブラリだと100並べようが1000個並べようが速度ほとんど変わらないのに。
764756:2007/08/19(日) 16:48:56
>>758
 そんな感じのことがやりたいです。
 (書いた後に思いついたのですが、Javascriptでいう、getElementsById です)
 教えていただいた方法でやってみたのですが、Controls[int]らしく、文字列で
 指定できないと怒られてしまいました。
 環境を書き忘れてましたが、ASP.NET 2.0 上で開発しています。
 Windows.Form と Web.UI では違うんでしょうか?


>>759
 今回は例えで100と書きましたが、以前VBScript時代に200表示したことも
 あります。
 (設定画面でそうしてくれと言われたので。ハイスペックを要求するページでした)
765デフォルトの名無しさん:2007/08/19(日) 16:54:13
中に自動でテキストボックスを並べるコントロールを作るべき
766デフォルトの名無しさん:2007/08/19(日) 17:08:52
>>764
>環境を書き忘れてましたが、ASP.NET 2.0 上で開発しています。
>Windows.Form と Web.UI では違うんでしょうか?

全然違うのでその書き忘れは正直ヒドイ。

いまどきのブラウザはテキストボックスだろうがボタンだろうが自前描画しているので
数を増やしたからといって表示がそこまで遅くなることはないし。
騙された>>762>>763に謝れw
767デフォルトの名無しさん:2007/08/19(日) 17:29:53
System.Web.UIならFindControlでええんやないの
768756:2007/08/19(日) 18:27:27
>>766
 Windows.Formではコーディングしたことがないので、それほど違うとは思って
 いませんでした。(といっても.NET自体ほとんど使ったことがないですが)
 申し訳ないです。

>>767
 FindControlでいけました。ありがとうございます。
769デフォルトの名無しさん:2007/08/19(日) 20:11:39
private A a;

public A Value
{
 get
 {
  return a;
 }
 set
 {
  a = value;
 }
}

これを

public A Value;

にするべきでないのはなぜ?
770デフォルトの名無しさん:2007/08/19(日) 20:14:39
マイクロソフト様がそのようにしてはならないと仰っているから。
771デフォルトの名無しさん:2007/08/19(日) 20:24:15
カプセル化について調べつつネットワークの海を漂ってください
772デフォルトの名無しさん:2007/08/19(日) 20:26:25
クラスとかメソッドはpublicにして良いのに
なんで変数だけプロパティ経由じゃないとダメなのか謎
773デフォルトの名無しさん:2007/08/19(日) 20:36:10
クラスやメソッドだって必要の無いものはなるべく厳しいアクセスにすべきだろ
774デフォルトの名無しさん:2007/08/19(日) 20:37:48
値・データを保持するだけのクラスならpublicフィールドにする事は有る
775デフォルトの名無しさん:2007/08/19(日) 20:39:16
>>772
アクセッサの事かな?
内容を直接見られないようにするのと
値が変更された際の処理の記述が簡単になるからでよいのかしら…
776デフォルトの名無しさん:2007/08/19(日) 20:52:31
>>774
いいえ。どうしてもフィールドをpublicにしたい場合は、構造体をお使いください。
777デフォルトの名無しさん:2007/08/19(日) 21:01:30
>>776
構造体も使うよ
コピーじゃなく参照で扱いたい時はクラスにする
778デフォルトの名無しさん:2007/08/19(日) 21:09:05
>>776
おかしなことを言うな。
真似する馬鹿がでるだろ。
779デフォルトの名無しさん:2007/08/19(日) 21:12:23
>>776
お前のプログラムって性能悪そうだな
780デフォルトの名無しさん:2007/08/19(日) 21:16:22
とりあえず適当に作るときは全部public。
そのうち、暇なときとか他の人に見せるときにいそいそとプロパティ化している。
781デフォルトの名無しさん:2007/08/19(日) 21:20:37
理由はいろいろあるが、フィールドがインターフェイスに出来ない、
継承してoverrideできないという理由が結構大きい。
リモート呼び出しがインターフェイス限定といってみるとわかるかなぁ。
782デフォルトの名無しさん:2007/08/19(日) 21:21:10
>>772
そもそもダメってことはないんだけどね。

publicでフィールド公開しても別にいいんだよ。
それで本当に問題がないと確証できるのならね。現在も将来も。
783デフォルトの名無しさん:2007/08/19(日) 21:28:24
>>780
自分は他人に見せないものでも初めからプロパティで書くなぁ
半年後やら1年後やらにソースを見るかもしれない自分のために
784デフォルトの名無しさん:2007/08/19(日) 21:31:13
>>783
VSつぢおのIDEがもうちょっとつかいやすければ、たとえば複数のフィールドに対して、まとめてチェックボックスとかでget,set分けたプロパティの生成ができたりするならやるんだけどね・・・
785デフォルトの名無しさん:2007/08/19(日) 21:33:19
すんまそん、教えてください。

オンライン上のjpegファイルをWindowsフォームで表示したいのですが、
これって、一度ダウンロードしてローカルにファイル化した後に
Streamで開いて読み込みしなきゃダメでしょうか?

ファイル化しないでそのままメモリに貯めて表示ってできないでしょうか?
786デフォルトの名無しさん:2007/08/19(日) 21:40:56
>>785
MemoryStream
787デフォルトの名無しさん:2007/08/19(日) 21:47:39
HttpWebResponse.GetResponseStream
788デフォルトの名無しさん:2007/08/19(日) 21:48:04
>>786
自分の用途ではConnectStreamでよかったっぽいです。
ありがとうございました。
789デフォルトの名無しさん:2007/08/19(日) 22:35:44
>>781
正直リモート呼び出しでプロパティアクセスはどうかと。
まあリモートといってもいろいろなわけではあるけども。
790デフォルトの名無しさん:2007/08/19(日) 22:52:28
Magic Docking
フリーなら許せたが、金とってあの程度か・・・

791デフォルトの名無しさん:2007/08/19(日) 22:53:08
ここはC#のスレです。
792デフォルトの名無しさん:2007/08/19(日) 23:02:10
C#, C♯, C#
音楽スレかも
793デフォルトの名無しさん:2007/08/19(日) 23:03:01
C minor
794デフォルトの名無しさん:2007/08/20(月) 02:24:29
VC#で書いたアプリってVB6でかかれたものより遅いって本当?

昔は速度や柔軟性を求めるならVC++
動けば良いハリボテならVBなんて言われてたけど
VC#はなんと言われるのかな?
795デフォルトの名無しさん:2007/08/20(月) 02:30:30
#♯

ナンバーとシャープって微妙に違うんだな
796デフォルトの名無しさん:2007/08/20(月) 02:38:53
見た目はナンバー
読みはシャープ
その名はC#
797デフォルトの名無しさん:2007/08/20(月) 02:42:39
むかしから#includeは「シャープインクルード」って読んでたし違和感は無いかな
798デフォルトの名無しさん:2007/08/20(月) 02:53:27
このスレタイ考えた奴すげーなw
ちゃんと検索に引っかかりやすいようになってるw
799デフォルトの名無しさん:2007/08/20(月) 03:53:49
800デフォルトの名無しさん:2007/08/20(月) 04:53:02
C#は入門にはもってこいですか?
801デフォルトの名無しさん:2007/08/20(月) 05:13:45
Formsの表示が遅いのは事実。
なにせ、コントロールすべてそれぞれが描画制御を行っているからな。
コントロールの数が多くなればなるほど、あほみたいに遅くなる。
802デフォルトの名無しさん:2007/08/20(月) 10:02:44
>>800
いいんじゃね
簡単に環境が整えられるし
すぐに目に見えるものが作れて挫折しにくそうだし
VB.NETやJavaもすぐ使えるようになるし
803デフォルトの名無しさん:2007/08/20(月) 10:05:29
そうだね
804デフォルトの名無しさん:2007/08/20(月) 23:11:11
あるクラスAがあり、Aにある属性aを追加したい

そのとき、
・Aから派生させてクラスAAを作成し、そのクラスにaを追加する
・クラスBを作成しそのBの中にAのインスタンスを保持させ、さらにaを追加する

どちらのほうがいいのでしょうか?
805デフォルトの名無しさん:2007/08/20(月) 23:16:28
804はどういう回答を望んでいるんだろうか
ケースバイケースって言って欲しいのかなw
806デフォルトの名無しさん:2007/08/20(月) 23:19:45
属性aというのはプロパティのことでいいの?
C#では属性っていうと具体的に別の概念を指すから注意
回答しようがないからどうでもいいところに突っ込んでみたw
807デフォルトの名無しさん:2007/08/20(月) 23:20:27
Aに追加したいのなら1番目じゃないの?
2番目じゃAに追加したとはいえない気がする。
808デフォルトの名無しさん:2007/08/20(月) 23:31:56
>>804
class AA : A {
private object a = new object();
}

class B{
private A instance = new A();
private object a = new object();
}

このどっちが良いかってことだよね?
>>805が言うとおりケースバイケースだけど、
一般的に、集約で片付けれるものは集約で。
が原則〜みたいなことを本で読んだような。
しかし、aがAに密接に関連する情報ならば、
下の構造でやるのは嫌かな〜って感じ。
809デフォルトの名無しさん:2007/08/20(月) 23:35:53
インターフェースもわすれないでくださいね。
810デフォルトの名無しさん:2007/08/21(火) 00:17:46
MDIでちょっとしたアプリを作成中です。
親ウィンドウのActivateMdiChildプロパティを
子ウィンドウの型にキャストしようとするとビルドエラー発生

((FrmMyChildWindow)ActivateMdiChild).hoge();
811デフォルトの名無しさん:2007/08/21(火) 00:24:46
あたりまえ
812デフォルトの名無しさん:2007/08/21(火) 08:56:04
型が違うのにエラーは発生しなければおかしいわな。
奇抜なコードを書こうと考えないほうが身のためだぞ。
人に迷惑かけるだけでなく、何時までたってもきれいなプログラミングができないから。
813デフォルトの名無しさん:2007/08/21(火) 08:58:43
というか何がしたかったんだろうか
814デフォルトの名無しさん:2007/08/21(火) 09:02:48
public Form ActiveMdiChild { get; }
というか、定義よく見ろw
815デフォルトの名無しさん:2007/08/21(火) 09:06:55
ActivateMdiChildプロパティのForm型をFrmMyChildWindowにキャストしてhoge()を呼びたいと
考えたんじゃないか?
816デフォルトの名無しさん:2007/08/21(火) 09:50:31
>>804
AAなりBが、「Aとして振舞いたいか?」で決める。
振舞いたいなら上、そうじゃないなら下

EffectiveC++みたいなC#の本があれば
そういうことについての指針みたいなのが書いてあると思うけど。

GUIのコンポーネントに機能を加えて、既存のコンポーネントを使いやすくしたい
なんてときは上

ファイルを開いて処理して必要なデータを読み込んで構造体に設定する
なんてときは下(これは無意識にやってるとは思うけど)
817デフォルトの名無しさん:2007/08/21(火) 13:48:24
Javaみたいに例外を必ずCatchさせるなり
Throwsつけさせるなりするようなコンパイルオプションとかないの?
818デフォルトの名無しさん:2007/08/21(火) 13:51:30
Java設計の一番の失敗と言ってもいいくらい、検査済み例外は糞
そういうわけでC#にはそんなもの実装されてない。
819デフォルトの名無しさん:2007/08/21(火) 14:00:24
どれくらい糞かなんてどうでもいいんだけど
なぜ糞かが知りたい
820デフォルトの名無しさん:2007/08/21(火) 14:06:34
チェック済み例外の糞さ
* http://www.artima.com/intv/handcuffs.html

なぜC#はJavaを真似なかったか
* http://msdn2.microsoft.com/en-us/vcsharp/aa336812.aspx
821デフォルトの名無しさん:2007/08/21(火) 14:09:25
822デフォルトの名無しさん:2007/08/21(火) 14:19:28
ざっと読んだ
あとでまた読んで咀嚼する
サンクス
823デフォルトの名無しさん:2007/08/21(火) 14:30:04
ふつうにFormを表示して、左上隅を左上と右下に縮めたり広げたりすると縮めたときに一瞬縮める前の大きさで描画されてから縮めた後のあるべき大きさになりますよね?
これを防ぐ方法ってあるんでしょうか?
それらしいメッセージ、
WM_SIZE,
WM_WINDOWPOSCHANGING,
WM_WINDOWPOSCHANGED,
WM_EXITSIZEMOVE
などみてみたんですが期待した動きになりません・・・(´・ω・`)
824デフォルトの名無しさん:2007/08/21(火) 16:04:49
Vista買え
825デフォルトの名無しさん:2007/08/21(火) 23:08:09
VC#で、あるプロジェクトProjectXを作成中、大幅な変更をしたいが
元に戻すため別プロジェクトとして保存ってできないの?

わざわざVC#閉じて、フォルダごとコピペしてんだけど面倒
826デフォルトの名無しさん:2007/08/22(水) 00:00:23
>>825
そこでVSS
827デフォルトの名無しさん:2007/08/22(水) 11:07:44
TCPで通信するのにNetworkStreamを使っているのですが
サーバ側のRead処理よりも速い速度でクライアント側でWriteされた場合に

クライアント側で
AAAAAAA
BBBBBBB
CCCCCCC
と3回に分けてWriteされたのに

サーバ側でReadするタイミングが遅いために
1回のReadで
AAAAAAABBBBBBBCCCCCCC
と全部取れてしまい3回のWriteがあった事が判断できません
(1つのデータとしてしまう)

こういう場合に、ちゃんと3回のWriteがあって
AAAAAAA
BBBBBBB
CCCCCCC
と分けて受信する方法は無いのでしょうか?

828デフォルトの名無しさん:2007/08/22(水) 11:36:26
固定長で通信しているのか?
829デフォルトの名無しさん:2007/08/22(水) 11:44:03
>>828
いいえ、可変長です。
830デフォルトの名無しさん:2007/08/22(水) 11:49:05
TCPなんだからプロトコル作ってやりとりするしかないだろ
831デフォルトの名無しさん:2007/08/22(水) 11:59:24
>>830
そうですよね・・・
何らかのルール決めないとダメですよね

有難うございました。
832デフォルトの名無しさん:2007/08/22(水) 14:12:07
AsyncOperationManagerやSynchronizationContextについて詳しいサイトか本か、
ご存知ないでしょうか?
MSDNライブラリの記述だけでは、どうにも使いこなせるようにはならない気が・・・。
なんか、サンプルとか沢山あったりしないですかねぇ。
833デフォルトの名無しさん:2007/08/22(水) 14:27:20
>>832
MSDNだけでは不足って、以下の箇所も役に立たないってこと?
ttp://msdn2.microsoft.com/ja-jp/library/hkasytyf(VS.80).aspx
834デフォルトの名無しさん:2007/08/22(水) 14:51:27
>>833
そうですよね、普通、これで十分な情報なのですよね、きっと。
スレッドと非同期デリゲートについて始めから勉強しなおします。
ありがとうございました。
835デフォルトの名無しさん:2007/08/22(水) 15:05:03
まあ、十分かどうかは人によるけど、
この手のは個人のホームページのネタになりにくいから、
GUIとかに比べて情報を探しにくいのは確か。
836デフォルトの名無しさん:2007/08/22(水) 16:20:17
通信処理はWCFがでるから、多少はわかりやすくなると思うよ。
837デフォルトの名無しさん:2007/08/22(水) 16:51:43
フォームに直接絵を描くのと
ピクチャーボックスを貼ってそこに描くのとでは速さに違いとかあるですか?
838デフォルトの名無しさん:2007/08/22(水) 16:59:47
Formはコントロールそれぞれが描画処理行うから、フォームに直接絵を描くほうが速い。
839デフォルトの名無しさん:2007/08/22(水) 16:59:49
>>834
ヘルパーを使わない場合はどうするかの例があれば何をやってるかがわかりやすいのだけどね。
840デフォルトの名無しさん:2007/08/22(水) 18:28:12
>>837
貼ったピクチャーボックスに描くのはあまり意味がないだろ
ピクチャーボックスを継承して描けば、独立してどこにでも貼り付けられて便利
841デフォルトの名無しさん:2007/08/22(水) 22:42:27
>>827

>サーバ側でReadするタイミングが遅いために
ってのは誤解だよね?
842デフォルトの名無しさん:2007/08/22(水) 22:45:06
誤解だねぇ
タイミングとは関係ない
843デフォルトの名無しさん:2007/08/22(水) 23:15:46
本当?
844デフォルトの名無しさん:2007/08/22(水) 23:24:17
>>843
それはどんな意図で言ってるんだ?
845デフォルトの名無しさん:2007/08/22(水) 23:25:57
EventHandler<TEventArgs>を使うなら
EventHandler(非ジェネリック)も使わずにEventHandler<EventArgs>を使うべき?
846デフォルトの名無しさん:2007/08/22(水) 23:29:28
別にどっちでもいいよ。一緒だし
847デフォルトの名無しさん:2007/08/23(木) 03:30:24
>>844
writeで送信したデータとreadで読み込んだデータが1対1で対応する
っていう書き込みに見えたので、そうだっけ?と。
TCPはレコード境界っていうのを保存しないって思ってたもので。
違ってたらごめん。
848デフォルトの名無しさん:2007/08/23(木) 04:13:56
いやそもそも日本語w
849デフォルトの名無しさん:2007/08/23(木) 06:51:55
827はRead/Writeが対になると思ってたようだな
850デフォルトの名無しさん:2007/08/23(木) 06:57:43
Read/Writeだけで通信制御できるなら、米国でソケット通信専用のプログラマーがいなくなるよ。
851デフォルトの名無しさん:2007/08/23(木) 13:07:48
FormのBorderStyleにNoneを設定してSize(0,0)をSizeにセットした場合に、Sizeが0,0にならずに2,2になってしまうんだが、
こういう仕様?
多分、枠がらみなんだろうけど、BorderStyle.Noneだし・・・
852デフォルトの名無しさん:2007/08/23(木) 18:41:49
>>851
理由は大体想像つくじゃん。
フォームのサイズはクライアントサイズにもろもろ(Paddingとかタイトルバーとか)
足したものとして実装されてるんでしょ。

っていうかどーでもよくないかw
853デフォルトの名無しさん:2007/08/23(木) 21:51:38
>>852 いや、動かない人にとっちゃどーでもよくないだろ。
854デフォルトの名無しさん:2007/08/23(木) 21:59:44
なんのこっちゃw
855デフォルトの名無しさん:2007/08/24(金) 09:23:55
WebBrowserにフォーカスが当たってる間メニューのショートカットキーがつかえないのは何とかならないのか
856デフォルトの名無しさん:2007/08/24(金) 11:12:56
>>855
WebBrowserを継承したクラスを作って
PreProcessMessageをオーバーライドすればキーダウンを拾えるから
そっから頑張ってくれ。


public override bool PreProcessMessage(ref Message msg)
{
const int WM_KEYDOWN = 0x100;

if (msg.Msg == WM_KEYDOWN)
{

}
return base.PreProcessMessage(ref msg);
}
857デフォルトの名無しさん:2007/08/24(金) 15:36:14
1)新規フォルダを Directory.CreateDirectory("tmpdir") する
2)そのフォルダの中に大量のファイルを作成したり別の場所からコピーしたり中身を書き換えたりする(外部ツール等も使用)
3)終了後に Directory.Delete("tmpdir",true) する

…すると、3)で、稀に例外が発生します。

誰かがロックをかけている(フォルダを使用中)のためフォルダを削除できないそうです。
例外を catch して何度かリトライすると(数秒〜十数秒)削除できます。

おそらく、2)で誰かが悪さをしている(裏でプロセスが動いている)ようなのですが、
どのプロセスがフォルダをロックしているか調べる方法はありますか?
858デフォルトの名無しさん:2007/08/24(金) 15:40:06
ディレクトリをクローズ
859デフォルトの名無しさん:2007/08/24(金) 21:08:04
アンチウィルスとかじゃね?
一般に誰がロックしてるのか取るのは無理
タスクマネージャでIO読み取り/書き込みでも眺めるとか
860デフォルトの名無しさん:2007/08/24(金) 21:17:35
Linuxならfuser、XP Professionalならopenfilesっていうコマンドがあるみたいだけど
フォルダもわかるんだろうか。
861デフォルトの名無しさん:2007/08/24(金) 21:22:32
アンチウィルスがロックしたりするのか?
862デフォルトの名無しさん:2007/08/24(金) 21:48:29
C#ってヘッダファイルないから
クラス内にすべて書いてしまうと、数千行のクラスだと見づらくなるりますよね

みなさんどうしています?
863デフォルトの名無しさん:2007/08/24(金) 21:50:32
>>862
ヘッダファイル関係ない
君が知ろうとしないだけ
864デフォルトの名無しさん:2007/08/24(金) 21:57:47
知ろうとしてるじゃないかw
折りたたみとかパーシャルクラスとか
そもそもあんまり馬鹿でかくなるようならクラス分けるとか
865デフォルトの名無しさん:2007/08/24(金) 21:57:47
そのための #region
そのための partial
866デフォルトの名無しさん:2007/08/24(金) 21:59:31
さすがに数千行は引くな

でもXMLドキュメントだけ非表示には時々したくなる
まともに書くと長くなるからなー
867デフォルトの名無しさん:2007/08/24(金) 22:07:10
おまえらどんだけ小規模なんだよ

もしかして、サンプルコードを動かして満足して
あかも分かったような顔でWebで講座なんて公開してる連中なのかしらん?w
868デフォルトの名無しさん:2007/08/24(金) 22:09:00
クラスは増えるけどメソッドは増えないもん
869デフォルトの名無しさん:2007/08/24(金) 22:23:16
今、手元にあるソースちらっと見てみたら、
そうとう詰め込んだ感あるクラスでも650行だな。

まあでも、WSDL から自動生成したクラスとかは1ファイルで1万行弱あったけど。
870デフォルトの名無しさん:2007/08/24(金) 22:57:23
クラスが数千行行く奴の特徴。
機能をメソッドに分けない。
オブジェクト指向を理解していない。
871デフォルトの名無しさん:2007/08/24(金) 22:59:41
フリーソフト公開しているけど
大規模なものだと数千行のcsファイルがいくつもあるな。
まぁ、右上のドロップダウンからメソッドを探せるので特に困ったりはしないよ。
872デフォルトの名無しさん:2007/08/24(金) 23:02:52
>>871
それおかしいから。
873デフォルトの名無しさん:2007/08/24(金) 23:20:55
XMLドキュメントは便利なんだが、継承クラスに似たようなコメント書くのメンドイです。
親のコメントの継承がしたいだけど無理かね?皆さんはコピペでやってる?
あと、クイックインフォでsummaryタグ以外表示されないのももったいなくね?
結局コード定義ビューア使うハメになる。

>>862
ヘッダファイルはみづらいよ。せっかくクラスダイアグラムや、クラスビューなんかあるんだから、
それを使うべきでは?遅いのが難点だけど。
874デフォルトの名無しさん:2007/08/24(金) 23:27:10
>>871
まさかとは思うが、イベントハンドラに全部書くタイプ?
875デフォルトの名無しさん:2007/08/24(金) 23:27:50
ヘッダファイルとか行ってる奴は、インタフェースを知らないのか?
876デフォルトの名無しさん:2007/08/24(金) 23:28:05
あ、あともう一個質問。シンボル参照の検索あるじゃないですか?(Find All Reference)
これも相当便利なんだけど、継承元のシンボルまで検索してくれるのがタマにキズ。
例えば、classAを継承したToString()のみを検索したいのに、
シンボル検索したらすべてのobject.ToString()が検索されてしまう。
検索範囲を限定することってできないのでしょうか?
877デフォルトの名無しさん:2007/08/24(金) 23:31:01
インターフェイスをヘッダと同じに考えてるアフォがいるみたいだねw
878デフォルトの名無しさん:2007/08/24(金) 23:33:18
>>873
> 親のコメントの継承がしたいだけど無理かね?皆さんはコピペでやってる?
include 要素ってのもあるが……
879デフォルトの名無しさん:2007/08/24(金) 23:33:45
>>875
何で唐突にインターフェイスが出てくるんだw

巨大クラスをヘッダファイルに分割する、って発想はそんなに変じゃないと思う。
「ヘッダファイル」という言葉の響きに引きずられると変に聞こえるが、
だったらアセンブラの「インクルードファイル」だと思えばいい。
880デフォルトの名無しさん:2007/08/24(金) 23:34:39
>>874
汎用性のないちょっとした処理ならイベントハンドラに直接記述するよ。
無意味にメソッド増やすだけになるからね。

デザイナ使わずにコントロール配置しているから
それだけで千行ぐらいあるな。
881デフォルトの名無しさん:2007/08/24(金) 23:37:48
>デザイナ使わずにコントロール配置しているから
それはなぜ?
882デフォルトの名無しさん:2007/08/24(金) 23:38:19
#regionはものすごく便利な機構だとは思うんだが、惜しむらくは
インデントがきかないから入れ子をわかりやすく表現できないのが難点だよなあ
883デフォルトの名無しさん:2007/08/24(金) 23:38:36
数千行で多いって言っている人って
直接エディタをスクロールさせながら目で探したり、
キーワードで検索して見つけたりしているの?
ドロップダウンリストでメソッドへ飛んだり、
コンテキストメニューの定義へ移動・参照の検索は利用していないの?
884デフォルトの名無しさん:2007/08/24(金) 23:38:54
>>881
偏屈以外に理由があると思えんw
885デフォルトの名無しさん:2007/08/24(金) 23:40:15
>>881
レイアウトが複雑になってくると細かい設定が大変じゃない?
フォーム単位じゃなくてパネル単位でデザインできたらまだマシなんだが
886デフォルトの名無しさん:2007/08/24(金) 23:40:54
1クラスに数千行書くようでは、保守担当者がかわいそう。
ちゃんと設計してるのか?
887デフォルトの名無しさん:2007/08/24(金) 23:41:13
>>883
またアホなこと言うなあ。
そんなの当然のように利用するだろw

そんな機能利用したって行数の多さに起因する「見通しの悪さ」の改善には
たいして寄与しないぞ
888デフォルトの名無しさん:2007/08/24(金) 23:42:04
まぁウェブサイトのレイアウトもアプリ使わずに
HTMLとCSSをエディタで弄って作るような人間だから偏屈なのかもしれないw
889デフォルトの名無しさん:2007/08/24(金) 23:43:39
>>886
例えばちょっと高機能なユーザーコントロール書いてみ?
1000行2000行なんてすぐだよ。
もちろんインナークラスや外のクラスに機能を分割するなんて普通にやってもね。
890デフォルトの名無しさん:2007/08/24(金) 23:44:49
>>886
フリーで公開しているソフトってはじめから言ってるでしょw
俺しか見ないよw
891デフォルトの名無しさん:2007/08/24(金) 23:47:04
Blob アンチパターンってやつか
892デフォルトの名無しさん:2007/08/24(金) 23:48:11
>>885
細かい設定ってなに?
893デフォルトの名無しさん:2007/08/24(金) 23:49:44
みんなカリカリはよくない。牛乳のもー。
>>878
ありがとう。格好いいよ!愛してる!LOVE!
>>882
ああわかる。階層管理はしたい。ツリービューアをつけてほしいですね。

あと>>876は解決策ないっすか?皆さんも結構悩みの種になるんじゃないかと思うのだが。
grepとかで代用してんのかな?
894デフォルトの名無しさん:2007/08/24(金) 23:49:53
ユーザコントロールなら、特にクラス分けるだろう。
外部から受けるデータをインターフェイスにするべきだし、
共通機能(イベント等)は親クラスを作って継承させる。
基本APIを見ればわかる思うが。
895デフォルトの名無しさん:2007/08/24(金) 23:51:22
>>892
コントロールを動的に配置する場合の位置・サイズとか。
ガッチガチにレイアウトするなら別だけど。
896デフォルトの名無しさん:2007/08/24(金) 23:53:19
TooBar とかちょい古いコントロールってデザイナで貼り付けること出来ますか?
897デフォルトの名無しさん:2007/08/24(金) 23:56:04
今書いてるアプリの最大のクラスは12500行ヽ(´▽`)ノ
898デフォルトの名無しさん:2007/08/24(金) 23:56:32
そのようなコントロールは存在しません
899デフォルトの名無しさん:2007/08/24(金) 23:58:11
コメント(ドキュメント)やスペース空けるための改行を含めるか含めないかで
行数は2・3割変化しそうだな。

>>897
おまいがチャンピオンだw
900デフォルトの名無しさん:2007/08/24(金) 23:59:09
>>898
l が抜けてました。
ToolBarね。
901デフォルトの名無しさん:2007/08/25(土) 00:11:42
>>893
牛乳買ってこいや
902デフォルトの名無しさん:2007/08/25(土) 00:14:07
行数増やすより設計でプログラム効率良くすること考えような。
903デフォルトの名無しさん:2007/08/25(土) 00:15:06
で、ちゃんとしたアプリとかつくってんの?
904デフォルトの名無しさん:2007/08/25(土) 00:17:36
おれはFormsは捨てました。
WPFとSilverLightに期待。
905デフォルトの名無しさん:2007/08/25(土) 00:20:40
>857
Vistaだったらconimeがそのフォルダをブロックしてたりとか。
とりあえずProcessExprolereとか使えば?
906デフォルトの名無しさん:2007/08/25(土) 00:24:41
>>901
ママのミルクでも飲んどけや。   …すみません嘘ですごめんなさいパシってきます。
>>878
改めてありがとうございました。ただ、直接csファイルをincludeできないようで使いづらいみたいです。
今後の発展に期待かな。もう変態的言語仕様の増強はいいからIDEの増強きぼんぬ。
907デフォルトの名無しさん:2007/08/25(土) 01:00:34
webのサンプル動かして喜んでる奴等からみると
数千行ソースなんて信じられないんだろなw

908デフォルトの名無しさん:2007/08/25(土) 01:02:42
行数で喜んでいるうちは素人。
効率よく設計して短いソースに仕上げることが出来たら本当のプロフェッショナル。
909デフォルトの名無しさん:2007/08/25(土) 01:11:04
さっきから効率効率って頭の悪い奴がいるね
効率が重要なのは自明のこと。

こういう奴ってzipなんかで同じバイナリの圧縮を繰りかえせば
無限大の情報も1バイトになるとか思ってそうw
910デフォルトの名無しさん:2007/08/25(土) 01:11:48
んでも、所詮マ自体が使い捨ての駒。技術なんて極めてプロっても無意味よん。
人事や総務が最強なのです。
911デフォルトの名無しさん:2007/08/25(土) 01:20:43
APIを使えば短くなるのに、長々とソースにロジック書く奴が多いからな。
912デフォルトの名無しさん:2007/08/25(土) 01:25:03
>>908
llinuxのソースでも読んでみなよ

まぁ、読めないだろうけどw
913デフォルトの名無しさん:2007/08/25(土) 01:36:04
ネイティブとオブジェクト指向のソースコードを同一に考えている池沼がいるスレはここですか?
914デフォルトの名無しさん:2007/08/25(土) 01:37:25
ネイティブとオブジェクト指向って対立するものなのかよw
915デフォルトの名無しさん:2007/08/25(土) 02:24:27
ここフラットじゃないよ?
916デフォルトの名無しさん:2007/08/25(土) 02:36:56
>>882
スペースとか入れとけばいいんじゃね。出来なかったっけ?
#region   main
#region      sub
917デフォルトの名無しさん:2007/08/25(土) 02:49:56
>>916
確認してみた。
半角スペースだと縮めたときに省略されちゃうけど全角スペースだと大丈夫だったよ。
918デフォルトの名無しさん:2007/08/25(土) 03:45:16
なんかキモイやつが沸いてるな
919デフォルトの名無しさん:2007/08/25(土) 04:04:54
regionは名称で階層表現すればいいと思うよ。
#region class
#region Field
#region method
#region staticmethod
#region dinamicmethod
といった感じで入れ子すれば問題ない。
920デフォルトの名無しさん:2007/08/25(土) 04:15:12
dinamic ねえ
921デフォルトの名無しさん:2007/08/25(土) 04:23:10
スペルミスはご愛嬌w
922デフォルトの名無しさん:2007/08/25(土) 05:37:39
>>919
ってかそういうのを視覚的にわかりやすくしたいってのが>>882じゃないの?
923デフォルトの名無しさん:2007/08/25(土) 11:34:16
dは動的"douteki"のd
sは静的"seiteki"のs
924デフォルトの名無しさん:2007/08/25(土) 12:33:10
dは童貞のd
sはセックスのs
925デフォルトの名無しさん:2007/08/25(土) 12:37:41
二番煎じほどつまらんものはないな
926デフォルトの名無しさん:2007/08/25(土) 12:48:13
.NET のWINDOWSアプリを業務で開発してるしてる人いますか?

ソースが簡単に見えてしまう欠点はどうされています?
私の部署はまだMFCが現役です。
.NETでの開発を示唆すると、必ず
・速度が遅い。
・ソースが読めてしまう。
・大量メモリを消費

等々、ディメリットを挙げだすと枚挙に暇が無い感が多い .NET
927デフォルトの名無しさん:2007/08/25(土) 12:56:06
うちのレベルのプログラムのコードなんざわざわざ覗く奴はいねえよ、
の一言で一同納得するだろw

速度とメモリ消費に関してはたぶん誤解。
ただWinフォームのロードは確かに遅い。
928デフォルトの名無しさん:2007/08/25(土) 13:01:49
>>927
誤解?

パソコンを使う人がすべて君みたなヲタクではないんですよ
.NETについて延々語り、遅いわけではない、メモリ食うわけではない
なんて説明は正に愚の骨頂

そう感じさせることに問題があるといっているのですよ
929デフォルトの名無しさん:2007/08/25(土) 13:04:49
なら使わなければいいよ
930デフォルトの名無しさん:2007/08/25(土) 13:09:19
バリバリ業務開発してる、というかほぼ.NETオンリー。
メモリは誤解だが、速度はマジ遅いわ。
WinForms死ねや。
よく客が使ってくれてて文句も言ってこないが。
931デフォルトの名無しさん:2007/08/25(土) 13:17:13
>>930
MFCで開発すより、.NETで開発することのメリットはなんですか?

と問われたらどうします?
932デフォルトの名無しさん:2007/08/25(土) 13:24:16
そんな5年遅れのこと聞く奴は、どうせ何使おうとまともな「開発」なんて
できるはずがないと思う。
933デフォルトの名無しさん:2007/08/25(土) 13:28:55
まともかどうかは別として一応金もらってやってる

おまえらみたく趣味=プログラミングみたいなヲタクの遊びではないよw
934デフォルトの名無しさん:2007/08/25(土) 13:32:12
下手なプロより趣味グラマの学生のがずっとコード書けることが多いんだがな
935デフォルトの名無しさん:2007/08/25(土) 13:32:26
その程度の「使ってみればわかる」ことを自分で調べもせずに
職業人を気取るつもりかよw

バイトの学生クンいかの職業倫理だな
936デフォルトの名無しさん:2007/08/25(土) 13:34:52
三流請負システム屋なんてそんなもんだよ
昔COBOLやVBでやってたような下らない請負業務システムを
今はドトネトでやってんだろ
何の自慢にもなりゃしねえ
937デフォルトの名無しさん:2007/08/25(土) 13:34:56
プログラマやってる奴ってのは案外パソヲタ少ないと思う。
多いのは他分野の落ちこぼれのデモシカ組だと思う。
っていうか、俺がそうだけどw
938デフォルトの名無しさん:2007/08/25(土) 13:38:27
>>926
この指摘内容だと、C/C++からJavaへの移行時に言われていた話とまったく
同じなので、Javaをキーワードにぐぐると参考になるかも。
>>928と同じようなことをJavaも言われ続けたけど、現在のシェアを見れば
Javaが圧倒的だし。
まあ、デスクトップサイドではサーバサイドとかなり条件違うってこともあるけど、
WinFormsとか。これさえ乗り切れば...
939デフォルトの名無しさん:2007/08/25(土) 13:46:09
Javaはクライアントではダメダメでしょ
サーバーサイドかiアプリ

ドトネトはそーすっと、Winでしか動かないのが問題になってくる
Monoとかも一応あっけどな
OS依存のVM言語なんてよく考えたらナンセンス極まりない
940デフォルトの名無しさん:2007/08/25(土) 13:49:21
クライアントも事例が少ないってだけで、Eclipseみたいな成功例もある。
もっともEclipseもUIのコアがネイティブでかなり頑張ってるのは確かだけど。
941デフォルトの名無しさん:2007/08/25(土) 13:51:40
お前Mono使ったことないだろ。
一応の言葉で一蹴するとは。
942デフォルトの名無しさん:2007/08/25(土) 13:53:30
>>941
ごめん使ったことねぇ
Mono使うぐらいなら素直にJavaを選ぶわ
お前さん、Monoでシステム提案できるか?
943デフォルトの名無しさん:2007/08/25(土) 13:54:11
>926
ならアセンブラで書けばいいんじゃね?
944デフォルトの名無しさん:2007/08/25(土) 14:18:20
Winで動けば十分だよな
945デフォルトの名無しさん:2007/08/25(土) 14:20:30
なんでMicrosoft.Windows.FormsじゃなくてSystem.Windows.Formsなんだろう
Systemに入れるならWindowsを外してSystem.Formsとかにすればよかったのに
946デフォルトの名無しさん:2007/08/25(土) 14:24:00
947デフォルトの名無しさん:2007/08/25(土) 14:25:08
商標登録されたWindowsではなく
システム側で動く窓のようなWindow形状のクラス群の意味で"Windows"なんだろうよ。
948デフォルトの名無しさん:2007/08/25(土) 14:26:21
言語仕様はJavaより全然いいしクラスライブラリの質はMFCみたいな糞とは
大違いだが
まぁ色々問題はあらぁな

>>944
んなことはない
携帯、組込みといったジャンルに広がらなくなるし
鯖でも大分限定されてくる
C#は言語の素性的にはなかなか素晴らしいのに勿体無い
949デフォルトの名無しさん:2007/08/25(土) 14:30:25
論理的にはプラットフォームネイティブではないUIの土台(つまりForm)も
存在しうるからでしょ。

現にwebフォームがあるじゃん
950デフォルトの名無しさん:2007/08/25(土) 14:32:36
SDKドキュメントのSystem.Windows.Formsの1行目にこう書いてある

System.Windows.Forms 名前空間には、Microsoft Windows オペレーティング システムで利用できる、豊富なユーザー インターフェイス機能を十分に活用する Windows ベースのアプリケーションを作成するためのクラスが含まれています。

まあ要するにMSがDQNっつーことでいいですか
951デフォルトの名無しさん:2007/08/25(土) 14:33:15
どこが「要するに」なわけ?w
952デフォルトの名無しさん:2007/08/25(土) 14:33:25
953デフォルトの名無しさん:2007/08/25(土) 14:34:31
コピペ君って馬鹿だな、まで読んだ。
954デフォルトの名無しさん:2007/08/25(土) 14:35:23
ただの雑談スレになってるなw

>>950
次スレよろ
955デフォルトの名無しさん:2007/08/25(土) 14:35:23
その文もコピペなんだよな
956デフォルトの名無しさん:2007/08/25(土) 14:36:09
>>951
.NETランタイム標準のSystem名前空間を平然とそういうモノで汚してるあたりがアホ
ECMA標準なんてただのポーズってことだよ
957デフォルトの名無しさん:2007/08/25(土) 14:36:14
WPFをSystem.Windows名前空間に持ってきてるのはもっと意味わからん
System.Windows.PresentationFoundationとかMicrosoft.Wpfとかでよかったんじゃないのか
958デフォルトの名無しさん:2007/08/25(土) 14:49:27
最近C#の勉強を始めたのですが
SystemやSystem.IO等の名前空間のコード?って見る事できますか?
どんな感じに宣言してるか見たいのですが
959デフォルトの名無しさん:2007/08/25(土) 14:50:32
reflector
960デフォルトの名無しさん:2007/08/25(土) 14:52:03
宣言見るだけなら右クリック→定義へ移動で出てくるけどな
961デフォルトの名無しさん:2007/08/25(土) 14:54:50
sscli という CLI の参考実装ソースもある
962958:2007/08/25(土) 15:30:45
お陰様で見る事ができました。ありがとうございますm(_ _)m
思ったより複雑で、見てはいけない物を見てしまったような気分です
なんとか理解できるように頑張りますw
963デフォルトの名無しさん:2007/08/25(土) 15:35:59
本当に見てはいけないものだったりする
964デフォルトの名無しさん:2007/08/25(土) 17:33:41
なんか楽しかったみたいだな、乗り遅れたか
965デフォルトの名無しさん:2007/08/25(土) 17:42:14
一目で見渡せないサイズのソースファイルは保守性を著しく損なう
二百行超えたら分割するべき
パーシャルクラスにするかクラスを分けるか、まあなんでもいい。
一目で見渡せるかが問題だ
966デフォルトの名無しさん:2007/08/25(土) 17:57:39
sscliは非常に参考になるぞ。
967デフォルトの名無しさん:2007/08/25(土) 18:21:39
Cygwinコンパイラ使ってたんだけど、time.hのclock_tの挙動がおかしい。
MinGWにコンパイラ移したところ正常に表示されるようになった。
どうやらライブラリーのtime.hがおかしかったようだ。
こんなアホな理由で3日間悩んだ俺って・・・
968デフォルトの名無しさん:2007/08/25(土) 18:24:59
ゴバーク?
969デフォルトの名無しさん:2007/08/25(土) 19:07:49
WinForms遅いっていわれてるけど、WPFはどうなの?論外?
970デフォルトの名無しさん:2007/08/25(土) 19:14:47
あのUIを見て速いとおもうか・・・
971デフォルトの名無しさん:2007/08/25(土) 19:18:58
いやまあ、重そうな感じはするけど。
DirectXのおかげでビデオカードのパワー借りれるっていうし、
やりようによってはWinFormsよりいいんじゃないかと淡く期待してる。
972デフォルトの名無しさん:2007/08/25(土) 19:30:30
とりあえず、ボタンを100*100並べても全然ちらつかないよ。描画方式変わったから。
Vista以外は初回起動が絶望的だけど(二回目以降も結構)
973デフォルトの名無しさん:2007/08/25(土) 19:59:24
WPFはアニメーション系のエフェクトをやらせると2D3D問わず重い。普通の表示だと軽快。
ただWinFormをリプレースするにはVB2008BetaのWPFエディタは工夫の余地あり。
WinFormと違ってかなり細かいところまで作りこんでもスピードがほとんど落ちないのがいい。
いまのところ、作りこみたい人向きだと思う。
974デフォルトの名無しさん:2007/08/25(土) 20:55:16
それならMFCでも同じ
975デフォルトの名無しさん:2007/08/25(土) 21:16:39
じぇんじぇん違うわ
976デフォルトの名無しさん:2007/08/25(土) 21:32:55
コントロールそれぞれにハンドルがないんだよね確か。
まあ、速度はともかくとして、製作は楽でしょうか?
描写速度とか美しいビジュアルよりも、開発時間が短いことのほうが重要だったりする。
WinFormsよりかかかるんなら、悩みません?
977デフォルトの名無しさん:2007/08/25(土) 21:36:32
それは慣れの問題
978デフォルトの名無しさん:2007/08/25(土) 21:38:00
nativeなwindowではないってことけ?
発想はJavaのlightweight componentと同じで、描画をD3Dでやっちょるって
理解でいい?

そこまでやって遅いってのも何か空しいものがあるな
979デフォルトの名無しさん:2007/08/25(土) 21:46:02
今のところはXAMLを直接エディットして作ってゆく感じで、
GUIでらくらく開発というのからは程遠い職人の世界。
表示はすぐに反映されるからいいけど、XAMLPADで作るのと違いが感じられん。
VS2008のIDEの作成チームは苦労してそう。
2007が2008になったのは正直この部分が遅れてるからだと思われる。
980デフォルトの名無しさん:2007/08/25(土) 22:45:42
出来上がったアプリの操作性が WinForms のほうが
Windows アプリっぽくて使いやすい
WPF だと Web アプリみたいな操作性でなんかいまいち
981デフォルトの名無しさん:2007/08/26(日) 00:25:37
いろんなUI操作系ツールが使えなくなるぜ
982デフォルトの名無しさん:2007/08/26(日) 00:32:45
あたらしく、WPF対応ツールを買いなおすんだ。
983デフォルトの名無しさん:2007/08/26(日) 00:57:43
UI操作系ツールてどんなのがある?
984デフォルトの名無しさん:2007/08/26(日) 01:13:18
マウス移動とか自動入力とかラベルコピーとかいろいろ
985デフォルトの名無しさん:2007/08/26(日) 01:14:35
Spy++も使えなくなるのか
986デフォルトの名無しさん:2007/08/26(日) 01:16:32
DirectXのラッパーだからな、今までのツールが使えなくなることは当然考えられる。
987デフォルトの名無しさん:2007/08/26(日) 02:04:41
VC#EEってデバック中でやたらおちるな
988デフォルトの名無しさん:2007/08/26(日) 02:19:26
落ちたこと無いけど
989デフォルトの名無しさん:2007/08/26(日) 02:36:37
2008bata2はやたらと落ちるけどね。
990デフォルトの名無しさん:2007/08/26(日) 03:00:15
やたら落ちるよね。
というかデバッグやろうとすると、Don'tなんちゃら〜とかいう警告がでてきて
その後、バイナリに上書き(ビルド)できなくなる。
991デフォルトの名無しさん:2007/08/26(日) 07:54:55
XPだと日本語表示がすごく汚くなるなあ>WPF
しかもシステムの設定でアンチエイリアス切っても無視するという・・・
992デフォルトの名無しさん:2007/08/26(日) 11:44:25
>>990
一回もないけど?
OS再インストール推奨。
993デフォルトの名無しさん:2007/08/26(日) 11:47:54
WPFってweb系との融合が目的なのでしょうか?
994デフォルトの名無しさん:2007/08/26(日) 11:54:29
>>993
プレゼンテーション層を独立してプログラミングするための技術。
995デフォルトの名無しさん:2007/08/26(日) 12:00:49
なるほど
日曜PGだから、プレゼンテーション層を独立してプログラミングしたことないや。

したことある人は挙手!
996デフォルトの名無しさん:2007/08/26(日) 12:04:56
俺のプレゼンテーション層はprintf()だぜえ
997デフォルトの名無しさん:2007/08/26(日) 12:06:50
Form1.Designer.csにコントロールの座標やら何やらがごちゃごちゃ書かれてるのは変だから
分離しようってだけの自然な流れ
998デフォルトの名無しさん:2007/08/26(日) 12:12:46
>Form1.Designer.csにコントロールの座標やら何やらがごちゃごちゃ書かれてるのは変だから
え?
本気で言ってるのかな
999デフォルトの名無しさん:2007/08/26(日) 12:19:32
本気ですとも
反論があればどうぞ
1000デフォルトの名無しさん:2007/08/26(日) 12:27:13
キモイ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。