5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C#, C♯, C#相談室 Part48

1 :デフォルトの名無しさん:2008/08/23(土) 17:44:14
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
[プログラム板] C#, C♯, C#相談室 Part47
http://pc11.2ch.net/test/read.cgi/tech/1214038282/

その他テンプレ>>2-5くらい

2 :デフォルトの名無しさん:2008/08/23(土) 17:45:00
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

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

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

pinvoke.net: the interop wiki!
http://pinvoke.net/

3 :デフォルトの名無しさん:2008/08/23(土) 17:45:47
@IT Insider.NET
ttp://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
ttp://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
ttp://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
ttp://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
ttp://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
ttp://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
ttp://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
ttp://dobon.net/vb/dotnet/

4 :デフォルトの名無しさん:2008/08/23(土) 18:21:38
新スレぬるぽ

5 :デフォルトの名無しさん:2008/08/23(土) 18:41:05
自分からテスト専門です、って宣言してる派遣テスターって何なの?

将来プログラマとかSEになりたい、とかならわかるけど。
向上心ないよね、頑固だし。
そういう派遣テスターって、仕様書は読めない、
テスト仕様書も作れない、テストプログラムも作れない
やれることは「テキトーにプログラムを触る」ことだけ。

俺は派遣プだけどさ、こういう派遣テスターがいると
派遣全体がバカにされるんだよ。
テスト専門派遣なんて氏んで欲しいよ、まったく。

今日も正社員の人が派遣テスターに仕様書を読んで
テスト仕様書を作ってください、って説教してたよ。
その派遣は頑固に「何故、仕様書が必要なんですか?」って
反論してたから、きっとテスト専門派遣テスターだな。
仕様書も読まず、テスト仕様書も作らず、ただテキトーに
プログラム触るだけで給料もらおうなんて頭おかしいんじゃねーの?

あ〜あ、あの派遣テスターが3ヵ月後に切られるまで、
仕様書も読まねーでテキトーにテストしたバグ票がまわってくんのかよ。
そんな糞なもん、読んで処理する派遣プの身にもなってくれよ。
うわ〜、しかもそいつが切られる3ヵ月以内に中間納品あるじゃねーか!
テスト仕様書もなしにテキトーにテストして納品か。
中間納品後にソッコウクレームでデスマ必至だな。俺の休みも返上かよ。

派遣専門テスターさんよ、少しは向上心持てよ!
頑固な性格直して仕様書読めよ!テスト仕様書作れよ!

6 :デフォルトの名無しさん:2008/08/23(土) 19:41:52
>>5
このコピペ見飽きた。
張ってるヤシって何を主張したいの?
バカなの?

7 :デフォルトの名無しさん:2008/08/23(土) 19:42:03
IEnumerable<IGrouping<TKey,TValue>>において、
キーが重複するグループが存在する場合、グループをまとめるには
どうすればよいでしょうか?
{{A:{1,2,3}, B:{1,2}, B:{3}} → {A:(1,2,3), B:(1,2,3)}としたいです。

8 :デフォルトの名無しさん:2008/08/23(土) 19:42:27
そうやって相手をしてくれる人を待ってるんだよ

9 :7:2008/08/23(土) 19:46:09
バカなことを書きました。自己解決しました。
眠くて頭おかしくなってたみたいです。

10 :デフォルトの名無しさん:2008/08/23(土) 19:55:36
>>6
最近、素人派遣テスターが増えてるのと関係あるのかもね
増えてる理由は知らんが

11 :7:2008/08/23(土) 20:44:47
一応解決策を貼っておきます。これって非効率な気がするんですが、
もっとまともな方法はないでしょうか?

IEnumerable<IGrouping<TKey,TValue>> groups;
groups = groups.SelectMany(
g => g.Select(
v => new KeyValuePair<TKey, TValue>(g.Key, v))).GroupBy(
kvp => kvp.Key, kvp => kvp.Value));

12 :デフォルトの名無しさん:2008/08/23(土) 20:45:05
前スレ>>996
ユーザーにプログラムを配布して実行させる場合、そのユーザーが
鍵にアクセスできなければならない。OSで保護されているのは外からの
攻撃に対してであって、ユーザーが悪意を持っていた場合は防げない。
前スレのようなデコンパイルして中身をみちゃう人に対してはDPAPIは
無力ではないのか

13 :7:2008/08/23(土) 20:55:42
>>12
デコンパイルでソース見るってよりメモリをみなきゃ無理なような。
俺の今日のべんきょー成果によると、DPAPIならソースみても
ProtectedData.Protect((byte[])pass, null,DataProtectionScope.CurrentUser)
とかでしょ?
ちなみに今回の元ネタのはソース覗くとガチで
string encryptedPass = Tools.Encrypt(rawPass, "asdfgh");
    ↑こんな感じでした

14 :デフォルトの名無しさん:2008/08/23(土) 20:55:51
それはそうだ。
それはどんな技術使っても基本的に同じだよな。
最初に出てきたパスワードとかの場合、普通は
ぱっと見ても分からない、他人(リグインできる本人以外)には解読できない、
そのデータが流出しても解読できない
この辺りだからな。


15 :デフォルトの名無しさん:2008/08/23(土) 20:57:47
>>14>>12に対して。

>>13
>俺の今日のべんきょー成果によると、DPAPIならソースみても
>ProtectedData.Protect((byte[])pass, null,DataProtectionScope.CurrentUser)
>とかでしょ?
それで十分だろ(本人ならそれで解読可能)


16 :デフォルトの名無しさん:2008/08/23(土) 21:00:48
おっと、>>13の言いたいことをちょっと勘違いしてた気がする。
ソースを見られてもそれで何かが分かるわけじゃないってことだな。
DPAPIは目的上それで十分(本人は解読できても)。


17 :7:2008/08/23(土) 21:02:11
>>15
え?どうやって解読するんでしょうか?DPAPIを呼ぶアプリによって秘密鍵
がかわるのだから、同じコードを別のアセンブリで実行しても復号失敗なんでは?

18 :デフォルトの名無しさん:2008/08/23(土) 21:05:12
多分>>12はそのアプリ自体が隠したい情報をどうやって隠すかって話をしてる。
それは今回のパスワードを保存する話とは全く異なる。

ライセンスキーを暗号化するのにこうやってた、とかならそういう話だが。


19 :デフォルトの名無しさん:2008/08/23(土) 21:07:21
>>17
>>16

>DPAPIを呼ぶアプリによって秘密鍵がかわるのだから
それは違うっていうか同一プロセスのみってのも別にあるが、ProtectedDataはちがう。


20 :デフォルトの名無しさん:2008/08/23(土) 21:10:53
ついでに、同一プロセスのみってのは本当に同一プロセスのみで、再起動したらもう復元できない。
同一アプリ(アセンブリ)のみ復号可能なんてのは、ない。


21 :デフォルトの名無しさん:2008/08/23(土) 21:17:09
同一アセンブリのみ復号可能っていいな。できないもんかな。

22 :デフォルトの名無しさん:2008/08/23(土) 21:17:19
>>19>>20
すみません。壮絶にボケてました。ユーザーアカウントでの防護ですね。

23 :デフォルトの名無しさん:2008/08/24(日) 15:21:04
string型から指定したバイト数だけ切り出すうまいやりかたないですかね
たとえば "ああああああああ" をShift_JISで5バイト以内で切り出したりしたいのですが、

string s = "ああああああああ";
int i = 0
byte[] bytes;
do
{
bytes = Encoding.GetEncoding("shift-jis").GetBytes(s.ToCharArray(0, s.Length - i));
i++;

} while (bytes.Length < 5);

のような効率の悪い方法しか思いつきません…

24 :デフォルトの名無しさん:2008/08/24(日) 15:37:52
>>23
スタートを2文字(5 % 2)から増やすとか、
5文字から減らしてゆくとか多少の改善方法はあるが基本はその方法で正解だろう。
荒っぽい方法だと、
charに分解して16ビット中上位8ビットが0ならばシングルバイトとみなす。
Shift_JISへの変換は1回にして先頭バイトから漢字1バイト目判定を使って5バイトが何文字か調べる。


25 :デフォルトの名無しさん:2008/08/24(日) 15:42:57
>>23
char二つで一文字というのもあるので、StringInfoを使って切り出したほうがいいかもしれない。

26 :デフォルトの名無しさん:2008/08/24(日) 15:49:05
Shift_JISに変換できない文字が混じってるパタンは考えなくてもいいじゃね

27 :デフォルトの名無しさん:2008/08/24(日) 15:52:37
どうしても効率気になるんなら Encoding じゃなく Encoder 直接使え


28 :デフォルトの名無しさん:2008/08/24(日) 16:59:41
一括で全部sjisに変換して、5バイト目が全角の一バイト目だったら前から4バイトとって、それ以外だったら5バイト取るって
方法でもいいかもしれない。
全角の1バイト目かどうかの判定はググればすぐ見つかるだろうし。

まあ、でも、文字コードかんけいはゴチャゴチャしてるんで、自分で書かないで、標準のライブラリを使ったほうが安心だけど。

29 :デフォルトの名無しさん:2008/08/24(日) 17:32:23
>>28
シフトJIS1バイト目で使われるコードは2バイト目に現れることもある。
判定は文字列の先頭からたどっていかないと誤作動する。


30 :デフォルトの名無しさん:2008/08/24(日) 19:25:29
表\示ですねわかります

31 :デフォルトの名無しさん:2008/08/25(月) 00:36:43
>>30
気持ち悪い奴。精神分析の対象としか思えない。
こういう奴ってひょっとして自分のアイデンティティがリアルで「2チャンネラ」
だったりするのかね。

何が面白いのか常人には理解不能な「2ch的言い回し」を爺の繰言よろしく
オウム返しすれば「これで俺もいっぱしの2チャンネラだぜ」なんて嬉しくなっちゃう
幸せな奴なんかね。




32 :デフォルトの名無しさん:2008/08/25(月) 00:40:14
>>31
気持ち悪い奴。精神分析の対象としか思えない。
こういう奴ってひょっとして自分のアイデンティティがリアルで「2チャンネラ」
だったりするのかね。

何が面白いのか常人には理解不能な「2ch的言い回し」を爺の繰言よろしく
オウム返しすれば「これで俺もいっぱしの2チャンネラだぜ」なんて嬉しくなっちゃう
幸せな奴なんかね。

33 :デフォルトの名無しさん:2008/08/25(月) 00:44:07
わかるって言うてんから、エスパーちゃう?

34 :デフォルトの名無しさん:2008/08/25(月) 00:47:08
伊東ですね。わかります。

35 :デフォルトの名無しさん:2008/08/25(月) 00:51:47
いや、つまんないから。

36 :デフォルトの名無しさん:2008/08/25(月) 00:55:20
そもそも面白くする必要ねーし

37 :デフォルトの名無しさん:2008/08/25(月) 01:10:56
いや、つまんないから。

38 :デフォルトの名無しさん:2008/08/25(月) 01:16:45
・・・はやくたてろ・・・うるさい・・・
おれ・・・もうめるじかん・・・うるさい・・・
そんあこといって・・・そのままこぴーする・・・わけがまい・・・

パンツがこだわりじゃねーんすよ
パンツからもれることがまったく問題ないすわ
マッカーサーウンコのニュータイプだけ・・・もれる・・・
ウンコはスレ違いですわ・・・おまえ・・・

個人情報の漏洩ですわ・・・もれてるの・・・もう・・・
まっきいろ・・・ぱんつ・・・ちゃいろ・・・
まだ、クローン人間が実践配備されてないとしても、将来的には危険なんす
Do You Understand?
マッカーサーパンツはいてねーす大丈夫なんて思ってねーでしょうな
はいてても・・・もれるんだから・・・どうせ・・・
あっしだってパンツはかないと大丈夫と思いたいが、しかし、
はかない・・・でも・・・うんこはもれたらおちる・・・おれ・・・もらした・・・わかる
せんぱいだって・・・ぱんつのなかにもらした・・・おれはゆかにもらした・・・
ちがいなんて・・・それぐらい・・・
パンツをはかなければ、ズボンがチンコと密着する
ウンコも漏洩するかがNothingですわ
つまり、今度はズボンからDNAが漏洩するんじゃねーすか

もうニュータイプがどうこうのじゃねーす、みんなですわ
パンツは洗わないと捨てるなってのが自己防衛すわ
ウンコは論点があまりにオールドタイプですのですれ違いでFAす

学歴も大切ですわ、しかしここは2CHなんすわ
学歴より・・・もらない・・・
つまり、学歴がない人間が光を当たるようにしてやる必要がありやす
今度こそきちんとニュータイプが議論しあいやしょう!
http://changi.2ch.net/test/read.cgi/x3/1211810675/l50

39 :デフォルトの名無しさん:2008/08/25(月) 01:42:31
いや、つまんないから。

40 :デフォルトの名無しさん:2008/08/25(月) 01:54:16
で、そのウンチはどれほどクサイんだ?

41 :デフォルトの名無しさん:2008/08/25(月) 02:17:35
いや、つまんないから。

42 :デフォルトの名無しさん:2008/08/25(月) 21:33:18
C#クックブック第3版買いまちた。

43 :デフォルトの名無しさん:2008/08/25(月) 22:00:43
ウンチだって臭くないのもあるわけでして・・・

44 :デフォルトの名無しさん:2008/08/25(月) 22:24:53
ようこそここへ、クッククック

45 :デフォルトの名無しさん:2008/08/25(月) 22:32:43
なんというクソスレ

46 :デフォルトの名無しさん:2008/08/25(月) 22:49:46
俺の話は無視かよ

47 :デフォルトの名無しさん:2008/08/25(月) 23:22:35
いや、つまんないから。

48 :デフォルトの名無しさん:2008/08/26(火) 00:18:13
ウンチブック第3番を買ったの?

49 :デフォルトの名無しさん:2008/08/26(火) 00:36:11
いや、つまんないから。

50 :デフォルトの名無しさん:2008/08/26(火) 00:56:14
便が詰まって困ってるんです

51 :デフォルトの名無しさん:2008/08/26(火) 01:08:34
集合血といいクックブックといい自分が買った洋書はいつも翻訳されます(´・ω・`)

52 :デフォルトの名無しさん:2008/08/26(火) 01:14:03
いや、つまんないから。

53 :デフォルトの名無しさん:2008/08/26(火) 01:22:04
>>51
洋書を買いまくってくれ。

54 :デフォルトの名無しさん:2008/08/26(火) 15:25:07
>>42
自分も今日あたり家に着いてるはず
他とまとめて通販しちまった

55 :デフォルトの名無しさん:2008/08/26(火) 16:59:50
CUT SYSTEM のC#システムプログラミングとかいうの、
ちょうど俺の知識が抜けてるとこがてんこ盛りにかかれてて
結構理解しやすそうだったから、買いたいんだけど、5800¥だよ。。

なんで、プログラムの本ってこんなに高いんだよ。

家賃払って飯食ったら金なんて余らんよ。普通。

56 :デフォルトの名無しさん:2008/08/26(火) 17:02:41
ttp://www.cutt.co.jp/book/4-87783-192-9.html

これか。
この内容じゃ、売れる数考えたらどうしても割高になっちゃうだろうなあ。

57 :デフォルトの名無しさん:2008/08/26(火) 17:17:34
読みたい専門書を色々買ってると、毎月の本代が万単位になって俺涙目。

58 :デフォルトの名無しさん:2008/08/26(火) 17:17:59
>>42
旧版 古本で探せば 安く買えるかも
#自分は両方積んでるw

59 :デフォルトの名無しさん:2008/08/26(火) 17:28:52
>>55
これ持ってるよ。
ほかの本2冊我慢しても買うべき。
お勧め。
しかし高いね〜。ガソリンが10円くらい下げてくれると助かる。

60 :デフォルトの名無しさん:2008/08/26(火) 17:30:14
http://momoneko1.sakura.ne.jp/test.txt

書き込み規制てすと

61 :デフォルトの名無しさん:2008/08/26(火) 17:31:54
書けた…スレッド整理されてうまく繋がってない
スレがあるとか?何か良くわからん

62 :デフォルトの名無しさん:2008/08/26(火) 17:35:11
何の騒ぎか知らんが、板別規制でもされてるんじゃないか?
規制情報でも見て来い。

あと、そのtest.txtって何だよwww

63 :デフォルトの名無しさん:2008/08/26(火) 17:45:52
>>62
dannmaku-po. I'll go to operate-board.
thx

64 :デフォルトの名無しさん:2008/08/26(火) 18:24:30
いや。キモイからw

65 :デフォルトの名無しさん:2008/08/26(火) 19:09:19
弾幕スクリプト・・ってC#関係ねぇw

66 :デフォルトの名無しさん:2008/08/26(火) 19:13:46
>>56
面白そうだ
図書館で借りよう

67 :デフォルトの名無しさん:2008/08/26(火) 19:52:36
なんでBindingSourceにはCurrentChanging(object sender, CancelEventArgs e)がないんじゃー!!!

68 :デフォルトの名無しさん:2008/08/27(水) 19:37:29
ASP.NETの3.5で、ListViewのEditコマンドを使用するときに、
クリックしたレコードにカラム分のテキストボックスを表示するのが一般的ですが、
動的にいくつかのテキストボックスをReadOnlyにして表示したいのです。

ItemEditingのメソッド内で、FindControlを使用して該当テキストボックスを取得、
プロパティを読み取り専用に変更しようと思ったのですが、
どうやらFindControlで更新用テキストボックスが取得できないようです。

ListViewの<EditItemTemplate>以下で定義しているコントロールは、
ItemEditingイベントメソッドで動的に変更できないモノなのでしょうか‥‥?

69 :デフォルトの名無しさん:2008/08/27(水) 22:13:12
VS2005のC#を使っています。
DataGridViewを使って50000行×10列の一覧を表示したいと思っており
ます。それぞれのCellには10文字程度でString値が入ります。
必要なデータをディスクから読み出し、DataGridViewRowを50000用意し、
DataGridViewにそれらのRowを入れて、実現しました。

結果、表示には5秒程度(XP, Core2 Duo 約2.3GHz)かかり、これはまだ
我慢できるのですが、ColumnHeaderを押すことによるソートが
10分ほどかかります。
おそらくデータの内容などにもよると思いますが、上記のデータリスト
をGUIに表示する場合、どのような方法がベターなのでしょうか?
教えていただけたら幸いです。

70 :デフォルトの名無しさん:2008/08/27(水) 22:19:49
仮想モード(VirtualMode)を使う。
実装方法に関しては先例が幾つもあるのでググレ

71 :69:2008/08/27(水) 22:26:18
>70
ありがとうございます。仮想モードですね。初めてその言葉を
聞きました。調べてみます。

72 :デフォルトの名無しさん:2008/08/27(水) 22:46:23
約2.3GHzがネック

73 :デフォルトの名無しさん:2008/08/27(水) 23:08:38
てーかDGV使わないでソートしたらどれくらいかかるんだ?

74 :デフォルトの名無しさん:2008/08/28(木) 07:26:05
>>72
あほか

75 :デフォルトの名無しさん:2008/08/29(金) 00:46:52
VisualStuidoのエクスプローラやプロパティウインドウの
インタフェースみたいに
フォームのの任意の場所にドッキングできたり
押しピンボタンを備えたコントロールって
あらかじめ用意されていますでしょうか?
あるならどうやって使えばいいのか
ヒントだけでも教えていただけませんでしょうか

76 :デフォルトの名無しさん:2008/08/29(金) 00:50:11
ないよ

77 :デフォルトの名無しさん:2008/08/29(金) 10:00:16
いずれ追加されるかもな。
今のMFCはあるしな。

78 :デフォルトの名無しさん:2008/08/29(金) 12:38:35
やっぱないですか.
ありがとうです

79 :デフォルトの名無しさん:2008/08/29(金) 14:38:53
コレクションの中身に検索でアクセスしたい時と、
入れた時の順番に全部をListとして取り出したい時の
2つの出力が可能なデータ構造が欲しいのです。

ということで、Dictionaryを使った場合には、
入れるときに工夫すれば、前者はKeyでアクセスできますよね。
問題は後者なんですが、Dictionary.Valuesで返ってくる値は、
Listみたいに入れた時の順序が保障されているのでしょうか?


80 :デフォルトの名無しさん:2008/08/29(金) 14:51:21
SortedDictionaryでなくて?

81 :デフォルトの名無しさん:2008/08/29(金) 15:01:34
>>80
ソートされるから入れた順にならないな

KeyedCollection/KeyedByTypeCollectionとか

82 :デフォルトの名無しさん:2008/08/29(金) 15:24:06
こんなの?
List<Dictionary<string, string>>

83 :デフォルトの名無しさん:2008/08/29(金) 15:24:58
それは・・・w

84 :デフォルトの名無しさん:2008/08/29(金) 15:42:11
List<ClassA>はAddした順番が保持されますよね?
Dictionary<string, ClassA>へ同じ順番でAddした時、
List<ClassA> lst = dic.Values;
として得られるlstの内容は1行目のList<ClassA>と同じ内容なのでしょうか?

ちょっと試してみたところ、同じっぽいのですが‥‥


85 :デフォルトの名無しさん:2008/08/29(金) 15:44:47
Dictionaryのなかみはハッシュテーブルだから構造上そんなことは保証できない。

86 :デフォルトの名無しさん:2008/08/29(金) 15:45:15
順番に関してはMSDNの解説読め

87 :デフォルトの名無しさん:2008/08/29(金) 15:51:17
OrderedDictionaryとかそれっぽいけど

88 :デフォルトの名無しさん:2008/08/29(金) 15:51:32
だって、MSDN読んだら、Valuesの順番はKeysの順番と同じで、
Keysの順番はValuesの順番と同じだって書いてあるし‥‥。


89 :デフォルトの名無しさん:2008/08/29(金) 15:54:57
>>87
どうも有り難うございます。そんなのがあったとは‥‥
ジェネリックじゃないですけれど、それっぽいですね。
そして、それがわざわざあるということは、
Dictionary<>では保障されないっぽいですね‥‥。

90 :デフォルトの名無しさん:2008/08/29(金) 15:56:55
81ガン無視?

91 :デフォルトの名無しさん:2008/08/29(金) 16:02:02
>>90
すみません、今、ググってみました。
どうも有り難うございます。

えぇ?なんか違うような‥‥。
最初の質問が悪かったですよね。
面白いものを教えてもらって、ありがとうございます。

92 :デフォルトの名無しさん:2008/08/29(金) 16:07:17
淋しがり屋の>>81

93 :デフォルトの名無しさん:2008/08/29(金) 21:48:14
81カワユス

94 :デフォルトの名無しさん:2008/08/29(金) 21:58:18
ハッシュテーブルも知らずにプログラムかけているとはすごいな
自分が何してるのかほとんどわからん状態だろうに

95 :デフォルトの名無しさん:2008/08/29(金) 22:52:37
趣味でやる分には全く問題ないけど。

96 :デフォルトの名無しさん:2008/08/29(金) 23:13:03
フリーソフトとか作るんじゃねーぞ
使う側が迷惑する

97 :デフォルトの名無しさん:2008/08/29(金) 23:18:44
HASHテーブルが云々で迷惑すかw
そういう貴方こそプログラムを書くだけじゃなくて
ソフトちゃんと「創れて」ますか?
言語に振り回されてコードでオナニー、できたものは
処理はすごいが実装いまいちとかよくあるはなし。


98 :デフォルトの名無しさん:2008/08/29(金) 23:19:33
フリーソフトをいまどき作って公開するなんてマゾにしか思えん。

99 :デフォルトの名無しさん:2008/08/29(金) 23:21:51
フリーじゃないなら、金取るの?

100 :デフォルトの名無しさん:2008/08/29(金) 23:22:46
>>97
そういうのはふらっとでどうぞ

101 :デフォルトの名無しさん:2008/08/29(金) 23:31:17
C#で作られたソフトを使いたいって人いなくね?

102 :デフォルトの名無しさん:2008/08/29(金) 23:37:42
そんな事を考えながらソフト使う馬鹿がどこにいる
お前くらいか?

103 :デフォルトの名無しさん:2008/08/29(金) 23:37:51
いや、それは偏見。

104 :デフォルトの名無しさん:2008/08/29(金) 23:38:45
.NETだから嫌とかいうやついるが、あれはレジストリ触られるから嫌とかと同じレベルのアレルギーだろ。

105 :デフォルトの名無しさん:2008/08/29(金) 23:40:10
.NETで書かれた、CGグラフィックソフトがあるか?

106 :デフォルトの名無しさん:2008/08/29(金) 23:42:18
PAINT.NETって何でつくられてるんだろう

107 :デフォルトの名無しさん:2008/08/29(金) 23:45:08
.NET Frameworkが必要だから.NETで作ってるんだろうな

108 :デフォルトの名無しさん:2008/08/29(金) 23:47:07
いまだにレジストリいやがるやつがいるな。

109 :デフォルトの名無しさん:2008/08/29(金) 23:47:32
C#で作ったとは限らないが?

110 :デフォルトの名無しさん:2008/08/29(金) 23:49:17
どうしてそんなつっこみになるんだ

111 :デフォルトの名無しさん:2008/08/29(金) 23:49:27
金取るなら自分で作るよ。お前ごときが作るのなんてバグも多いしそんな糞はいらんな。

112 :デフォルトの名無しさん:2008/08/29(金) 23:50:03
PAINT.NETを使ったるひとがいるか?

113 :デフォルトの名無しさん:2008/08/29(金) 23:50:46
地味に使ってるよ俺は

114 :デフォルトの名無しさん:2008/08/29(金) 23:50:52
使ってるが、なにか?

115 :デフォルトの名無しさん:2008/08/29(金) 23:51:24
俺使ったる(?)んだけど
C#で自作プラグインとか書けて重宝してる。

116 :デフォルトの名無しさん:2008/08/30(土) 00:05:30
何が聞きたかったんだろう

117 :デフォルトの名無しさん:2008/08/30(土) 00:17:17
それならカッコつけてCの系列じゃなくて、VB(とかJScript)でサクッと作っちゃえばいいんじゃんか!

118 :デフォルトの名無しさん:2008/08/30(土) 00:19:30
なにを?
Cの系列って何のこと?

119 :デフォルトの名無しさん:2008/08/30(土) 00:22:03
>>117みたいなレスを見ると普及し始めてるのかなぁと思う。

120 :デフォルトの名無しさん:2008/08/30(土) 00:31:02
Cの系列といえば、次はDじゃん!D言語なんてかっちょいい響きじゃんか!

121 :デフォルトの名無しさん:2008/08/30(土) 00:38:49
ぶっちゃけVBとC#の差って如何程も無いんじゃないかと思ってるんだがどうなんだ?

122 :デフォルトの名無しさん:2008/08/30(土) 00:41:08
>>117
どちらかというとCよりJavaの血統で、
もろjavascript臭くなってきてるやん>C#

123 :デフォルトの名無しさん:2008/08/30(土) 00:41:54
Reflector使えばVBだのC#だの言うのが馬鹿らしくなるよ

124 :デフォルトの名無しさん:2008/08/30(土) 00:43:13
VB.NETのほうが便利なクラスがあったり、
インテリセンスが優秀(候補リストをグループ化できるぽい)だったりで
ときたま羨ましくなる。

125 :デフォルトの名無しさん:2008/08/30(土) 00:47:37
>>122
ecmascriptはecmascriptでジェネリックとか追加されててホント臭い言語になりつつあるよ。

126 :デフォルトの名無しさん:2008/08/30(土) 00:52:45
ActionScript 3.0 なんかパッと見 Java か C# かって感じだもんね
あれにはげんなりした

127 :デフォルトの名無しさん:2008/08/30(土) 00:57:53
みんな、それでもC#を使う理由は何?
やっぱ俺は開発環境の最強っぷりだと思う。たぶんそれに関しては敵なし。

128 :デフォルトの名無しさん:2008/08/30(土) 01:00:03
>>125
ecmascriptのジェネリックは死滅しました。
ttp://steps.dodgson.org/?date=20080815

129 :デフォルトの名無しさん:2008/08/30(土) 01:29:37
>>128
つまらんなー

130 :デフォルトの名無しさん:2008/08/30(土) 01:44:21
>>127
VB はなんか感覚的にあわん。仕事でやれといわれればやるけどさ…
ネイティブ(C, C++)相手の比較なら「イマドキ」の環境、言語で
生産性、保守性とかが別次元の癖に相互運用機能がやばすぎて
ほとんどなんでも出来る点だろうよ。

Web なサービスさくっとみたいな上位な話と OS のコアな機能ゴリゴリ
みたいな低レベル処理とかが同居とかなかなかありえんよまじで


131 :デフォルトの名無しさん:2008/08/30(土) 02:06:58
Excelのセルに
=hogehoge()
として、C#を呼び出したく思い
Excelアドインを作ろうとしていますが、参考になるhPありますか?

132 :デフォルトの名無しさん:2008/08/30(土) 02:16:51
そのゴリゴリとサクットは逆じゃないの?
Webはhtmlとかjspとかxmlとかjsとかゴリゴリじゃんw

133 :デフォルトの名無しさん:2008/08/30(土) 06:56:04
VB.netでも良いけどなんとなくC#の方が自己満足感があるというか
なんかかっこいいから。

134 :デフォルトの名無しさん:2008/08/30(土) 08:22:23
C#で作ったコンソールアプリ(実行ファイル)のクラスのメソッドを
別C#プログラムから呼び出したいんですけど方法ありますでしょうか?

135 :デフォルトの名無しさん:2008/08/30(土) 08:27:09
CreateProcess

136 :134:2008/08/30(土) 08:46:01
実行ファイルの中の特定のクラスの特定のメソッドなんですけど、
CreateProcessって実行ファイルを起動するだけですよね?

137 :デフォルトの名無しさん:2008/08/30(土) 10:35:52
普通に参照して普通に呼ぶだけ


138 :デフォルトの名無しさん:2008/08/30(土) 11:53:50
>>121
自分もそう思う .NET Framework系のPGの資料が多いから触ってる感じ>C#
構文的にはC#の方が好きだけど(ちょっとだけJAVAなんで、なじみやすい)
ただ 親クラスのコンストラクターの呼び方が・嫌・かも
ExcelたたくのはVBの方が楽だよね

139 :デフォルトの名無しさん:2008/08/30(土) 12:54:21
BackgroundWorkerで別スレッドを立ち上げて、
そこでForm.Refresh() や StatusBar.Visible を変更したりすると、
InvalidOperationException が発生するんですが、
別スレッドからコントロールを操作するにはどうすればいいんでしょうか?

140 :デフォルトの名無しさん:2008/08/30(土) 13:09:25
InvokeRequired で調べろ

141 :デフォルトの名無しさん:2008/08/30(土) 13:29:12
>>140
できました。どうもありがとう。

142 :デフォルトの名無しさん:2008/08/30(土) 20:01:02
>>136
リフレクション

143 :デフォルトの名無しさん:2008/08/30(土) 21:13:45
>>142
おぉ!ありがとうございます。目的のAPIみたいなんで試してみます!

144 :デフォルトの名無しさん:2008/08/30(土) 21:22:51
いやリフレクション使わなくてもそのexeをdllと同じように参照設定に入れれば使えるよ
型のアクセスレベルをpublicにしないといけないので注意

145 :デフォルトの名無しさん:2008/08/30(土) 21:24:53
リモーティングの話しかと思ったよ

146 :デフォルトの名無しさん:2008/08/30(土) 21:50:32
>>144
publicにしたら出来ました!ありがとう!

ただ自分が探しいたのはリフレクション(まだ使用してないですけど)っぽいので、こっちを使用してみたいと思います。
ありがとうございました!

147 :デフォルトの名無しさん:2008/08/31(日) 03:12:19
以前にPart45をIEで保存したのですが、
その時保存したフォルダに作成されるC#, C♯, C#相談室 Part45.files
フォルダにグロ画像が入っていました。
Part45の368にグロ画像のリンクがあり、
ファイル名が同じなので恐らくこの画像だと思うのですが、
この画像を表示して保存した覚えはありません。
IEでスレを保存すると、リンク先の画像も保存されてしまうのでしょうか。

148 :デフォルトの名無しさん:2008/08/31(日) 03:49:46
C#と全く関係ないな。

149 :デフォルトの名無しさん:2008/08/31(日) 03:54:03
>>148
ごめんなさい。私もそう思ったのですが、あまりの恐怖でつい。
これって普通のことなのでしょうか。

150 :デフォルトの名無しさん:2008/08/31(日) 03:56:43
板違いです

151 :デフォルトの名無しさん:2008/08/31(日) 03:58:38
あまりの恐怖に吹いた
リンク先の画像を保存するくらいはやるような気がするが
まあ板違いだな

152 :デフォルトの名無しさん:2008/08/31(日) 07:01:32
>>149
IEは普通リンク先の画像までは保存しない
オカルト的なことは信じたくないがその画像が入っていたことは事実だし
何か特別な怨念の力が働いたのかもしれない

これからの生活には気をつけたほうがいい
ぜんぜん関係ないときにそのグロ画像が突然現れたりするかもしれない

153 :デフォルトの名無しさん:2008/08/31(日) 08:29:35
お気に入りに追加で、オフラインで使用するを選択してリンク先を保存したんじゃないの?

154 :デフォルトの名無しさん:2008/08/31(日) 13:22:59
ローカルに保存する事なんて滅多にないから忘れてたけど、そういやそんな機能もあったな。

155 :デフォルトの名無しさん:2008/08/31(日) 14:42:21
2chのアンカーは直リンクじゃないと思うんだけど。

っていうか普通mhtで保存しないの?
Outlook Expressをアンインストールでもしてなきゃmhtでいいと思うんだけど。
Vistaからはmhtがデフォになったようだし。

156 :147:2008/09/01(月) 02:54:55
完全に板違い、すれ違いでした。
スルーして下さい。申し訳ありません。

157 :デフォルトの名無しさん:2008/09/01(月) 03:07:34
スレはあってるけどなw

158 :デフォルトの名無しさん:2008/09/01(月) 03:14:07
あってないよ。

159 :デフォルトの名無しさん:2008/09/01(月) 03:35:37
C#, C♯, C#相談室 というスレがあってるw

160 :デフォルトの名無しさん:2008/09/01(月) 13:12:27
DevComponentsのDotNetBarの、
ローカライズの仕方教えてください><
非常に英語が苦手なんです。。。

161 :デフォルトの名無しさん:2008/09/01(月) 15:15:24
ぐーれかす

162 :デフォルトの名無しさん:2008/09/01(月) 15:37:16
ローカライズの仕方わかりました。

163 :デフォルトの名無しさん:2008/09/01(月) 20:16:32
コンパイルが通らない恐怖
どこかで誰かが捕捉してない例外を投げちゃう恐怖


164 :デフォルトの名無しさん:2008/09/01(月) 21:22:41
どこかで誰かが例外を握りつぶしちゃうよりはましな件

165 :デフォルトの名無しさん:2008/09/02(火) 06:22:40
いわゆるウィザード画面を作ってるんですが、画面切り替え方法で迷ってます。

panel固定で、中のコントロールだけremove-newするか、
毎回panelごとremove-newするか、
どっちが良いのでしょうか?
自分的には、後者のほうが楽なんですが、ゴミ増えたりしますか?

166 :デフォルトの名無しさん:2008/09/02(火) 08:59:44
タブコントロール貼り付けろ

167 :デフォルトの名無しさん:2008/09/02(火) 09:48:34
タブとか枠とかが見えてるのがマズイんですよ、ビジュアル的に。

168 :デフォルトの名無しさん:2008/09/02(火) 09:49:31
枠もタブも消せるだろうがアホ

169 :デフォルトの名無しさん:2008/09/02(火) 10:08:20
昼休みに外に出たら、ペットの子豚が飼い主と道路をトコトコ散歩していると、なんか生意気だから蹴飛ばしたくなるよな

170 :デフォルトの名無しさん:2008/09/02(火) 10:42:14
消し方分からんからいっとるんじゃかす

171 :デフォルトの名無しさん:2008/09/02(火) 10:44:45
去ねゴミ

172 :デフォルトの名無しさん:2008/09/02(火) 10:50:22
VBだと簡単なのに…なんでカッコつけたがるんだろう……ダサw

173 :デフォルトの名無しさん:2008/09/02(火) 10:52:35
そりゃC#はC系統の言語だからです。
Lispよりは括弧少ないので許してください。

174 :デフォルトの名無しさん:2008/09/02(火) 11:44:03
カッコあったほうが絶対便利だよな?

175 :デフォルトの名無しさん:2008/09/02(火) 12:32:58
VBは継続行のアンダーバーが見苦しい。
カスタム属性を指定するとたいてい継続になるからあれだ。

176 :デフォルトの名無しさん:2008/09/02(火) 12:56:41
あとはC#と同等の機能を実装するために新キーワードやら特殊メソッドやらが氾濫している印象だな。
どんどん冗長になっていく。あれは気持ち悪い

177 :デフォルトの名無しさん:2008/09/02(火) 13:08:31
誰に話しかけてんだ?
おまえの方が気持ち悪いんだけどw

178 :デフォルトの名無しさん:2008/09/02(火) 16:49:17
>>176
VB6の頃ならVBは簡単さが売りだったわけだけど、今はC#と大差ないよな

パフォーマンスと引き換えにシンプル簡単路線で行けばいいのに、
無理してジェネリックとか導入するからどっちつかずのキモイ言語になっちゃうんだよ

179 :デフォルトの名無しさん:2008/09/02(火) 16:51:06
LINQ向けキーワードの追加っぷりだけはちょっと魅力的。

180 :デフォルトの名無しさん:2008/09/02(火) 17:24:07
文字列から事前定義のクラスのプロパティやメソッドを呼び出すことは可能でしょうか?
例えば、string str1 = "Address"; string str2 = "Hokkaido"; だった場合に、

ClassA.Address = str2というように保存したいのです。

str1の内容で分岐して代入するようなコードを書いておけば良いのですが、
あまりにも数が多いと萎えてしまいます。

クラス名の文字列があればCreateInstance()でクラスのインスタンスが作れるのと同じ感じで、
プロパティやメソッドにも同じようなことはできないのでしょうか?


181 :デフォルトの名無しさん:2008/09/02(火) 17:24:23
文字列から事前定義のクラスのプロパティやメソッドを呼び出すことは可能でしょうか?
例えば、string str1 = "Address"; string str2 = "Hokkaido"; だった場合に、

ClassA.Address = str2というように保存したいのです。

str1の内容で分岐して代入するようなコードを書いておけば良いのですが、
あまりにも数が多いと萎えてしまいます。

クラス名の文字列があればCreateInstance()でクラスのインスタンスが作れるのと同じ感じで、
プロパティやメソッドにも同じようなことはできないのでしょうか?


182 :デフォルトの名無しさん:2008/09/02(火) 17:25:38
書き込みに失敗したってエラーが出たのにも関わらず、2連投になってしまいました。
どうもすみません。

183 :デフォルトの名無しさん:2008/09/02(火) 17:27:44
Dictionaryでいいじゃん

184 :デフォルトの名無しさん:2008/09/02(火) 17:33:36
なるほど‥‥
ClassAというクラスが、たくさんのパブリックフィールドを持っている形
なのですがClassA自体がDictionaryで書かれていれば確かに‥‥。

ClassAにプロパティやメソッドを追加する程度の変更は出来る気がするのですが、
ClassAをDictionaryにしてしまうと、他のプログラムが動かなくなってしまいます‥‥

185 :デフォルトの名無しさん:2008/09/02(火) 17:36:37
いやでも、ClassAの方の内部保持をDictionaryにして、
既存部分のためのプロパティで、ラップして対応しておけば良いのですよね。

それが良い気がしてきましたー。
どうも有り難うございます。

186 :デフォルトの名無しさん:2008/09/02(火) 18:33:01
PropertyInfo.SetValue()でできる
詳しくはWebで

187 :デフォルトの名無しさん:2008/09/02(火) 19:10:51
そんな瑣末なことにリフレクション使うなんてやめなさい

188 :デフォルトの名無しさん:2008/09/02(火) 19:16:30
文字列でメンバーにアクセスしたいって人時々いるけど(以前はVBスレで多かった)
いまだになんでそんなことがしたいのかよく理解できないものがある。

javaScript出身のプログラマ(そんな人いるのか?)にありがちな発想って説もあるようだけど、
普通郷に入れば郷に従うよなあ。。

189 :デフォルトの名無しさん:2008/09/02(火) 19:31:58
不用意にリファクタリングとかすると大変なことになりそうだな……

190 :デフォルトの名無しさん:2008/09/02(火) 19:51:36
>>186
どうも有り難うございます。さっそく調べてみます。

>>188
ASP.NETのGridViewとかListViewとか、全要素にプロパティが用意された
データアクセスレイヤークラスをやりとりするように設計されているから、
DataSetクラスとか、自前で新しいクラスを作ると、プロパティだらけのクラスで
橋渡ししなくちゃならんことになるのです。

XMLを隠ぺいしたシリアライザブルなクラスでも、全要素にパブリックなプロパティが
必要になるし‥‥

191 :デフォルトの名無しさん:2008/09/02(火) 22:26:03
部分的にやりたくなることは結構あると思うけどな。


192 :デフォルトの名無しさん:2008/09/02(火) 22:32:57
C#というか.net frameworkでFFTWを簡単に扱うためのクラスとかありませんか。


193 :デフォルトの名無しさん:2008/09/02(火) 22:56:47
>>192
http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html
http://windale.com/transformnet.php
http://thorshammer.blog95.fc2.com/blog-entry-119.html

この手のものはサンプルコード的なものがあちこちに転がってると
思うけど。

194 :デフォルトの名無しさん:2008/09/02(火) 23:42:13
eventなんだけど、複数スレッドからイベントハンドラが登録される可能性があるときは
add/removeを自分で書かいてlockで保護しないとダメ?

195 :デフォルトの名無しさん:2008/09/02(火) 23:45:19
駄目ではない。


196 :デフォルトの名無しさん:2008/09/03(水) 00:36:47
できあいのやつはちゃんとスレッドセーフになってるよ

197 :デフォルトの名無しさん:2008/09/03(水) 08:40:58
196 じゃないがコンパイラの生成コードは add に某属性ついててスレッドセーフぽ

198 :デフォルトの名無しさん:2008/09/03(水) 14:59:02
>>188
Excelで出力するとき 日付、col位置のhash作ると
DBからひらった日付毎の合計を書き込むとき楽でしょ?

199 :デフォルトの名無しさん:2008/09/04(木) 14:49:30
WPFのマルチスレッドでUIスレッドへの通知で、下記のようにラムダ式で書くとき
ラムダ式のままじゃ渡せないんでデリゲートを宣言してるんだけど
もっと簡単な書き方ないのかな?

private delegate void HogeFunc(int param);

this.Dispatcher.BeginInvoke(new HogeFunc((param) => {〜}));

200 :デフォルトの名無しさん:2008/09/04(木) 15:04:16
private void BeginInvoke(Func<int> param) {
    this.Dispatcher.BeginInvoke(param);
}

this.BeginInvoke(param => { ... });

201 :デフォルトの名無しさん:2008/09/04(木) 15:08:41
あ、Actionだった。

もう一歩進めると
private void BeginInvoke<T>(Action<T> arg) {
    this.Dispatcher.BeginInvoke(arg);
}

this.BeginInvoke(param => { ... }, 6);

202 :デフォルトの名無しさん:2008/09/04(木) 15:09:56
またミス
private void BeginInvoke<T>(Action<T> action, T arg) {
    this.Dispatcher.BeginInvoke(action, arg);
}

203 :デフォルトの名無しさん:2008/09/04(木) 15:33:26
WPF使ったことないので間違ってるかもしれんが
リファレンスみたところ引数が合ってないみたいだけど?

Dispatcher.BeginInvoke (DispatcherPriority, Delegate)
Dispatcher.BeginInvoke (DispatcherPriority, Delegate, Object)
Dispatcher.BeginInvoke (DispatcherPriority, Delegate, Object, Object[])

204 :デフォルトの名無しさん:2008/09/04(木) 16:36:50
>>203
MSDNが間違ってるっぽい

205 :デフォルトの名無しさん:2008/09/04(木) 17:55:44
DispatcherPriority があるのはWPF、ないのはsilverlight2 。なぜか非互換。
silverlight2や両方で互換を取りたい場合はbackgroundworkerが推奨されている。

206 :デフォルトの名無しさん:2008/09/04(木) 18:41:02
WPFアプリケーションでプロジェクト作って、インテリセンス見てみると
Dispatcher.BeginInvoke (Delegate, Object[])
Dispatcher.BeginInvoke (Delegate, DispatcherPriority, Object[])
なんだけど、これはどっちなんだ?

207 :デフォルトの名無しさん:2008/09/04(木) 18:48:33
エンターブレイン、ツクール最新作「アクションゲームツクール」を発表、XBOX360/XNAにも対応
http://news4xbox.blogspot.com/2008/09/xbox360xna.html

208 :デフォルトの名無しさん:2008/09/04(木) 19:00:06
SP1でメンバーが追加になってた。silverlightとの互換がらみかも。

July 2008 Added topic for new member. SP1 feature change.
BeginInvoke(Delegate, object[])
BeginInvoke(Delegate, DispatcherPriority, object[])


209 :デフォルトの名無しさん:2008/09/04(木) 20:37:30
動作が軽いHTMLDOMありませんか?
HtmlDocumentは重すぎて使い物になりません……

210 :デフォルトの名無しさん:2008/09/05(金) 12:18:05
ボタンコントロールに、テキストと画像を設定したときに、
ボタンをクリックすると、ボタンがすこし凹み込みんで、そのときにテキストは
すこし凹み込むのですが、画像の方は凹まずに止まったままです。
これを画像も一緒に動かすにはどうするのがベストなのでしょうか?

211 :デフォルトの名無しさん:2008/09/05(金) 15:39:02
>>210
WPFで望み通りの動作を自前で実装するのがベスト。
WinFormでやるならオーナードローかな?かなり面倒くさそうだが。

212 :210:2008/09/05(金) 16:51:40
>>211
WPFかオーナードローですか。そのキーワードで調べてみます
ありがとうございましたー

213 :デフォルトの名無しさん:2008/09/08(月) 14:47:17
C#でスムーススクロールってどうしたら出来ますか

214 :デフォルトの名無しさん:2008/09/08(月) 14:49:00
そ〜とマウスを動かす

215 :デフォルトの名無しさん:2008/09/08(月) 15:17:09
なるほど
ありがとうございました

216 :デフォルトの名無しさん:2008/09/08(月) 15:22:35
SQLCEとDatasetを使ってプログラミングをしています。
そこで、Datasetの更新をDBにも反映しようと思い、以下のようなコードを書いたのですが、プログラム終了後にDBを確認しても更新が反映されていませんでした。

private void button1_Click(object sender, RoutedEventArgs e)
{
DatabaseDataSet.CategoriesDataTable categoriesTable = new DatabaseDataSet.CategoriesDataTable();
DatabaseDataSetTableAdapters.CategoriesTableAdapter adapter = new SQLCompactTest.DatabaseDataSetTableAdapters.CategoriesTableAdapter();
adapter.Fill(categoriesTable);
DatabaseDataSet.CategoriesRow newRow = categoriesTable.NewCategoriesRow();
newRow.Category_ID = categoriesTable.Count + 1;
newRow.Category_Name = String.Format("TEST {0}",categoriesTable.Count + 1);
newRow.Description = "Test Description";
categoriesTable.AddCategoriesRow(newRow);
adapter.Update(categoriesTable);

ListBox2.DataContext = categoriesTable;
}

昨日からいろいろと試行錯誤しているのですが、イマイチ原因がよくわかりません。
よろしくお願いします。

217 :デフォルトの名無しさん:2008/09/08(月) 15:43:33
これじゃないか?
ttp://msdn.microsoft.com/ja-jp/library/ceab2k93(VS.80).aspx


218 :216:2008/09/08(月) 16:22:47
>>217
これも試してみたのですが、AcceptChangesはDatasetの更新を行うだけで、DBの更新は行ってくれないと認識しています。

219 :デフォルトの名無しさん:2008/09/08(月) 16:42:54
はぁ?
コミットとかトランザクションの意味はわかる?

220 :デフォルトの名無しさん:2008/09/08(月) 16:46:45
そんなの分かってるわ。というか、おまえは分かってんのかよww

221 :デフォルトの名無しさん:2008/09/08(月) 17:14:45
よくわからんけどCategoriesTableAdapterがちゃんと機能するか確認したほうが良さそうね

222 :デフォルトの名無しさん:2008/09/08(月) 17:21:19
実は違うDB見てたとかビルドで上書きしてたとか
AcceptChangesなんかやったら更新されなくなるぞw

223 :216:2008/09/08(月) 17:59:11
>>221
ありがとうございます。
一度確認してみようと思います。

>>222
実は、一度実行して普通に終了して、再度実行するとDBには変更(この場合は挿入)が追加されているように見えて、ちゃんとテーブルにも表示されます。
しかしながら、サーバーエクスプローラで実際にデータベースのテーブル内の内容を見に行ったりした場合には、追加された項目などは無くなってしまいます。

ビルドで上書きといったことは無いと思うのですが、なぜこのような挙動になるのかわかりません…

AcceptChangesについては、DatasetとDBについて元との差分がわからなくなり、Updateが効かなくなるということは理解しています。

224 :デフォルトの名無しさん:2008/09/08(月) 18:07:02
ロールバックしたんだね。
どっかで例外無視してないか?

225 :デフォルトの名無しさん:2008/09/08(月) 18:25:07
WebBrowserコントロールで Navigate() を呼んだときの
HTTP通信でやり取りされたリクエストヘッダとレスポンスヘッダを
プログラムから取得することはできますでしょうか?

226 :デフォルトの名無しさん:2008/09/08(月) 18:34:24
どのみち全部はそのままじゃ無理だな
ローカルプロクシ通したりせんと

227 :デフォルトの名無しさん:2008/09/08(月) 18:37:12
サーバエクスプローラ→プロジェクトフォルダのDBファイル
アプリケーション→ビルド先のDBファイル

とでもなってんじゃないの?
ってことを言ったんだが、そんなことないか?


228 :デフォルトの名無しさん:2008/09/08(月) 19:16:58
>>226
なるほど、ありがとうございます

229 :216:2008/09/08(月) 19:20:07
>>224
症状的には確かにロールバックなのですが、先ほどの「サーバーエクスプローラで実際にデータベースのテーブル内の内容を見に行く」という操作だけでロールバックするということはあるのでしょうか。
# 説明不足で大変申し訳ありません。上記の操作はプログラムが終了してから行っています。

>>227
> サーバエクスプローラ→プロジェクトフォルダのDBファイル
> アプリケーション→ビルド先のDBファイル
あぁ!確かにそのような状態になっています。
# DB以外の事ではよくわかっていたのですが、DBはについては初心者で、盲点でした…。

ちなみに、もしそのような状態の場合、>>223のような操作でデータベースが書き換わる(元に戻る)といった事は考えられるのでしょうか。
# もしそうならこの件はばっちり解決です。

230 :デフォルトの名無しさん:2008/09/08(月) 20:04:46
いやあのな、別のDB見てたら内容が違うのは当たり前だろが

231 :デフォルトの名無しさん:2008/09/08(月) 20:12:18
>>230
仰るとおりなのですが、特にビルドなどの作業をしなくても、Debugに置いてあるDBが元に戻ることがあるのかと疑問に思いまして。。。
# ビルドをすれば当然出力フォルダに置いてあるDBファイルは上書きされるはずですが、今回の場合は単に実行をして、別の(Projectフォルダにある)DBの内容を見ただけなのですが…。

232 :デフォルトの名無しさん:2008/09/08(月) 21:11:06
>>231
解決したんだし、もういいだろ

233 :デフォルトの名無しさん:2008/09/08(月) 21:14:58
サーバエクスプローラで見た内容が違うのが疑問なんじゃなくて、
一度サーバエクスプローラで見ると戻ってしまうってこと?

それは俺も分からんわw


234 :デフォルトの名無しさん:2008/09/08(月) 21:23:23
エスパーが必要ですね

235 :216:2008/09/08(月) 22:29:28
一応解決したので、皆様ありがとうございました。

>>233
具体的には、サーバエクスプローラで該当するデータベースのテーブルを右クリックして、最新の情報に更新を行ってから実行すると、DBが初期化されて実行されます。
VSが何をやっているかわかりませんが、そういうものとして扱おうと思います。

236 :デフォルトの名無しさん:2008/09/08(月) 22:52:14
それはビルドした時に再度コピーされてるんだろう。
新しい場合のみコピーみたいな設定になってるだろ?
サーバエクスプローラで最新の情報に更新すると、何らかの事情でDBファイルが更新されるんだろうな。

237 :デフォルトの名無しさん:2008/09/09(火) 10:06:54
任意のMethodInfoをデリゲートにバインドしてDelegate.DynamicInvokeで呼び出したいのですが
引数の数が決まっていないのでデリゲート型をどう用意したらいいか悩んでいます。
・あらかじめたくさんのパターンのジェネリックデリゲート型を定義しておいてMakeGenericType
・デリゲート型を動的に生成する
くらいは考えたのですがもっとスマートな方法があれば教えてください

238 :デフォルトの名無しさん:2008/09/09(火) 10:17:45
Delegate.CreateDelegateでなにか問題が?

239 :デフォルトの名無しさん:2008/09/09(火) 10:32:15
CreateDelegateを使うためにはデリゲートの型を引数で指定する必要がありますが
最低でも戻り値の有無と引数の数がわからないとデリゲート型は定義できないですよね

240 :デフォルトの名無しさん:2008/09/09(火) 10:45:38
new Action(() => methodInfo.Invoke(obj, new object[] { ... }))
で統一とか

241 :デフォルトの名無しさん:2008/09/09(火) 11:47:36
ActionやFuncの範疇ならそれで。
それで足りないならそもそもデリゲートにする意味はあるのか?


242 :デフォルトの名無しさん:2008/09/09(火) 13:31:38
public Delegate GetProcAddress(string name, Type type)
{ return Marshal.GetDelegateForFunctionPointer(GetProcAddress(this.handle, name), type); }

DLLのラッパー作ってるんだけど、ジェネリクス使ってもっと簡潔にかけないかな?

public T GetProcAddress<T>(string name)
{ return (T)Marshal.GetDelegateForFunctionPointer(GetProcAddress(this.handle, name), typeof(T)); }

って書いても"CS0030: 型 'System.Delegate' を型 'T' に変換できません。"って言われる。

243 :デフォルトの名無しさん:2008/09/09(火) 13:36:17
(T)(object)Marshal.…

244 :デフォルトの名無しさん:2008/09/09(火) 13:50:44
enumとかdelegateとかで制約したいよねー

245 :デフォルトの名無しさん:2008/09/09(火) 18:39:14
Visual Studio のツールボックスウィンドウの中身の表示が変になったときに、
再構成して元に戻すためのコマンドがあった記憶があるのですが、
どうやるのでしょうか?

246 :245:2008/09/09(火) 18:43:57
だー、ツールボックスウィンドウを右クリックしてリセットでした。
メインメニューから行ったような気がして、ずっと探してしまいました‥‥
吊ってきます。

247 :デフォルトの名無しさん:2008/09/09(火) 23:26:24
Alt+tabみたいにタスク切り替えしたいんだけど、プロセスの起動や終了はすぐ見つかったんだけど切り替え方法が見つかりませんDllImport使ってもいいからC#で可能ですか

248 :デフォルトの名無しさん:2008/09/09(火) 23:28:32
はい。

249 :デフォルトの名無しさん:2008/09/10(水) 11:22:59
テーブルレイアウトを使ったコントロールを作成しているのですが、
デザイン時に、配置しているコントロールを選択状態にする、
というのは可能でしょうか。

スマートタグから処理を呼び出して、テーブル内のコントロールを
全て選択した状態にしたいと思っています。

250 :デフォルトの名無しさん:2008/09/10(水) 19:22:14
FindDialog(検索画面)表示時のIMEモードを変更させるにはどうすればよいでしょうか・・



251 :デフォルトの名無しさん:2008/09/10(水) 20:31:55
>>216

解決した、って本人が言ってるんだからもういいだろ、っていわれそうだけど(w
>>236 をもう一度確認すべし。

ここら辺でも、同様のこと言ってるし
ttp://www.ailight.jp/blog/unaap/archive/2005/12/07/10249.aspx

252 :216:2008/09/10(水) 21:05:45
>>251
わざわざありがとうございます。

> 何らかの事情でDBファイルが更新される
ということで、自分の中では解決していました。
# リンク先では同じような悩みを持っている人がいるということで、勉強になりました。

返信ついでに質問させてください。
リンク先で、「デバッグで更新した後に、デバッグフォルダ内のDBを見れば、更新はされているんですけどね。」
とありますが、単体のDB(SQLCEなので.sdfファイルですが)のDB内を覗くツールというのはあるのでしょうか?
もしあれば教えていただけると嬉しいです。

253 :デフォルトの名無しさん:2008/09/11(木) 06:07:57
>>252
http://www.atmarkit.co.jp/fdotnet/joyofprogram/20080701devssce/devssce_02.html
サーバー エクスプローラーでいいんじゃ?
あるいはSql Management Studio?

254 :216:2008/09/11(木) 15:35:39
>>253
ありがとうございます!
早速試してみたいと思います。

255 :デフォルトの名無しさん:2008/09/11(木) 16:46:23
Linq to XML を使っているのですが、ネームスペース定義が大量に出現して、XMLファイルが肥大化して困っています。
XAttribute を使ってネームスペース宣言をルートエレメントでやっておけば、小さくまとまる事が判ったのですが
自動的につけるようなオプション等の機能というのはないのでしょうか?

# C#のジェネリックスは、実はType型の引数が余分にあるだけで実質中身一緒なんだな、自作シリアライザを作っていてビックリした。
# なんにもできない訳だ・・・
# 逆にこういう構造なら<>の中にType型オブジェクトも指定できるようにして欲しい。
# リフレクション使ったら Type 型引数版と、ジェネリックス版で似たようなコードの山になっちまった orz

256 :デフォルトの名無しさん:2008/09/11(木) 21:14:28
>>255
↓見たいなコード書いたら、ネームスペース宣言最上位エレメントにしかつかなかったぞ。

new XElement(ns + "tests",
new XElement(ns + "test",
new XAttribute("a", "1")),
new XElement(ns + "test",
new XAttribute("b", "2")),
new XElement(ns + "test",
new XAttribute("c", "3")),
new XElement(ns + "test",
new XAttribute("d", "4"))
))
ちゃんと全部に ns + つけてる?

257 :デフォルトの名無しさん:2008/09/11(木) 21:16:09
>>255
# コメントの部分に関しては、
<> の中身が値型の時にboxing/unboxing発生しないとか、少々特殊なこともしてる。
キャストが発生しないってのがgenericsの利点の1つだから、動的に型指定すると利点なくなるし。

258 :デフォルトの名無しさん:2008/09/11(木) 22:38:03
MakeGenericTypeやMakeGenericMethodというのがあるよ
うまく使えば、素直にやったらILGeneratorとか使わないといけないようなコード生成が
簡単にできる場合がある
動的にダウンキャストするとかね

259 :デフォルトの名無しさん:2008/09/12(金) 08:12:53
>>256
static XName ns = ...;
として一か所にまとめています、これをやめるのは・・・かなり嫌かも

>>257
すみません、言葉不足でした定義時に使えないのは当然です、使用する側の問題でした。
object ins = new MyType<typeof(int)>() ;
my_ins.Func<typeof(int)>( ... );
といった使い方です。

>>258
これが効率よく利用可能になるためには
typeof<T>(List<T>)
といった感じで型の適用前の型を取得できる機能が欲しいですね、元になる型を探るのが超絶に面倒くさかったです。
ダミー型引数とGUIDからそれらしいものを探し出しましたよ・・・
それと、memberInfoOf( 型.メンバ ) とかも欲しいです、文字列でメンバを指定していてリファクタしたら沈没した orz

260 :デフォルトの名無しさん:2008/09/12(金) 08:46:14
>>259
オープン型はtypeof(List<>)で取れる
引数が複数ある時はtypeof(Dictionary<,>)

261 :デフォルトの名無しさん:2008/09/12(金) 08:47:15
>>259
・Linq のほうはなんだその ns って。Namespace なら XNamespace やし
静的にしたところで変わらんし…
・Type type = typeof(List<>);

262 :デフォルトの名無しさん:2008/09/12(金) 09:01:44
>>259
>memberInfoOf( 型.メンバ )
デリゲートのオブジェクトを作ればDelegate.MethodプロパティからMethodInfoは取得できるよ

263 :デフォルトの名無しさん:2008/09/12(金) 09:32:55
>>259
リフレクションでLIST<T>からList<>もってくるのあったろ。GetGenericsContain?うろ覚えだが。
そういう話とは違う?

264 :デフォルトの名無しさん:2008/09/12(金) 09:35:11
>>262 >>260
そういう風にできるんだ、助かりますた
ところでフィールドやプロパティーについてのそれはないですかね?


265 :デフォルトの名無しさん:2008/09/12(金) 09:36:28
>>263
GetGenericTypeDefinitionだね

266 :デフォルトの名無しさん:2008/09/12(金) 19:44:30
HTTP、SQL Serverと通信するGUIアプリケーションを作成しています。

try{ 例外の起きるコード }catch(SomeException e){}... としたとき、
VS上から実行すると例外が正しくキャッチされるのですが、
直接実行ファイルから実行すると例外をキャッチしてくれません。

発生するすべての例外について起きているのですが、何か原因等考えられるでしょうか。

環境は、Windows XP SP3、VS2008 SP1、Release/Debugビルド共です。

よろしくお願いします。

267 :デフォルトの名無しさん:2008/09/12(金) 20:47:26
キャッチされてないことはどうやって判断したの?
あとtryやcatch書いてるのはどこ?
ひょっとしてMainだったりする?

普通の処理の流れでキャッチされないってのはまず考えられない。

268 :デフォルトの名無しさん:2008/09/12(金) 21:09:00
>>267
キャッチされてないと判断したのは
・VSから実行するとcatchしてエラー内容をdumpしてくれる
・実行ファイルから実行すると「ハンドルされていない例外が…」と表示される
という部分です。

例外をキャッチしてるのはMDI親フォーム内の子フォームをShowする部分です。
もしかしたらスレッドが別に生成されたかと思ってデバッグ→ウィンドウ→スレッドを開いてみても特にスレッドが生成されてる様子はありませんでした。
もちろん、明示的にスレッドは生成していません。

269 :デフォルトの名無しさん:2008/09/12(金) 21:11:21
catch( SomeExpection e ) {
MessageBox.Show(e.Message)
}

270 :デフォルトの名無しさん:2008/09/12(金) 22:57:10
そりゃ無理
ThreadExceptionを調べてみな

271 :デフォルトの名無しさん:2008/09/12(金) 23:20:32
よくわかんないけどモードレスダイアログって別スレッドではないの?

272 :デフォルトの名無しさん:2008/09/13(土) 03:04:42
WebBrowserを使ってフレームページを扱っているんだけど
Browser.Document.Window.Frames[0]のフレームに
<A HREF="javascript:ShowFrames('11')">全表示</A>
っていう記述で貼られているリンクをクリックした動作をしたいんだが
NAMEがないからGetElementsByNameが使えない.

Javascriptを直接実行しようと思って
ttp://web.sfc.keio.ac.jp/~shokai/archives/2007/01/cs-webbrowser-javascript.html
を参考にしながら
Browser.Url = new Uri("javascript:" + Uri.EscapeDataString(@"ShowFrames('11)") + ";");
としてみたけどランタイムエラー(オブジェクトを指定してください)
とでます.

なにかいい方法はないでしょうか,
あとオブジェクトの指定ってどのことを指してるのか教えてもらえませんでしょうか.

273 :デフォルトの名無しさん:2008/09/13(土) 07:28:50
レベルの低い質問で申し訳ないのだが、生成したファイルパスが有効な書式(ファイルが存在するとかそういうのは無視)
かどうかを検査する方法ってないかな?無効な文字列を含んでいないとかそういうの。
正規表現自作で弾くか、DirectoryInfoやFileInfoのコンストラクタにそのファイルパス渡して、例外をキャッチしなかった
おkとか。そういうのしか思いつかないんだが・・・どうだろう?

274 :デフォルトの名無しさん:2008/09/13(土) 09:55:19
File.Exists

275 :デフォルトの名無しさん:2008/09/13(土) 10:18:25
C丼

276 :デフォルトの名無しさん:2008/09/13(土) 12:32:53
>>273
「有効な書式」ってのが多数のこんがらがった条件受けまくり
なので実質それしかないです。はい。
一応使えない文字レベルなら GetInvalidPathChars あたりで
取れるが…色々保障されてません

277 :デフォルトの名無しさん:2008/09/13(土) 13:28:33
正規表現は以前やってみてキツかった記憶が

278 :デフォルトの名無しさん:2008/09/13(土) 13:49:38
Path.CheckInvalidPathCharsとかPath.NormalizePathあたりを参考にするか
面倒くさければそのまま呼び出しちゃえば

と思ったけど、FileInfoコンストラクタやPath.GetFullPathでも最終的には
Path.CheckInvalidPathChars, Path.NormalizePathに行き着くようだ

279 :デフォルトの名無しさん:2008/09/13(土) 14:07:15
考え方を変えてみたらどうだろう。

パスが無効であることを確実に検査するメソッドを作ることは難しいが、
パスが有効であることを確実に検査するのはそんなに難しくない気がする。

何をいっているか分かりにくいかもしれないけど、
要はそのメソッドで「無効」と判定されたパスが実際には有効なパスである場合があっても、
それは許容することにするってこと。

Winのそれより厳しいルールを適用する、と言い換えてもいい。

280 :デフォルトの名無しさん:2008/09/13(土) 17:01:59
>>272

Document.LinksからinnerTextが「全表示」であるaタグを拾えばまず
HtmlElementとしてリンクが取得できる。
そのHtmlElementでinvokemember("click")すればいけるんじゃないか?



281 :デフォルトの名無しさん:2008/09/13(土) 18:40:29
>>270
ありがとうございます。
無事例外発生時にイベントハンドラを呼び出せるようになりました。

282 :デフォルトの名無しさん:2008/09/13(土) 22:57:47
C#だとforやforeachで宣言した変数が、ブロック外まで有効なんだな。
C++みたいにブロック内に閉じ込めてくれた方が好きなんだが、どうしようもないんかな?

283 :デフォルトの名無しさん:2008/09/13(土) 23:19:33
いやいや、ブロック内だぞ。

ブロックでるときにデストラクタ呼ばれないという意味でならそうだけど。

284 :デフォルトの名無しさん:2008/09/13(土) 23:22:20
>>282
そんな仕様は旧VBぐらいだと思うけど。
まあ現VB.NETにも一部引き継がれているようだが。

285 :デフォルトの名無しさん:2008/09/13(土) 23:27:22
ブロック外では使えないけども、
ブロック外で同じ名前の変数を宣言できない仕様にはなってる。
バグの原因だからいっそのこと禁止してる。

for (int x = 0; x < 10; x++)
{
int y = 0; // この y をブロック外から参照できはしない。
}
int y = 0; // これは確かにエラー。


286 :デフォルトの名無しさん:2008/09/13(土) 23:59:40
いや、それはシャドーイングの禁止、つまり、外のスコープに存在する変数を内側で再宣言できない制約だよ。

287 :282:2008/09/14(日) 00:30:15
for(int i = 0; i < N; ++i) { }
int i;

これがダメだったから外に漏れてるんだと思ったが、そういうことか。

288 :デフォルトの名無しさん:2008/09/14(日) 00:50:37
それは特例というか救済措置。


289 :デフォルトの名無しさん:2008/09/14(日) 02:01:43
>>274-279
多忙な中、お答え頂いて感無量です。
GetFullPathを利用することにしました。
ありがとうございました。

290 :デフォルトの名無しさん:2008/09/14(日) 23:06:02
viライクな操作形態にしたいんですがやり方有りませんか?
補完機能は便利なんで、補完機能そのままに操作形態をviライクにする方法教えてください。


291 :デフォルトの名無しさん:2008/09/14(日) 23:07:15
うぜえ氏ね

292 :デフォルトの名無しさん:2008/09/14(日) 23:32:27
下記のサイトのサンプルを使って2台の映像を表示とキャプチャをしたいのですが、
どのようにすればいいのでしょうか?

http://mobiquitous.com/programming/usbcamera.html

293 :デフォルトの名無しさん:2008/09/14(日) 23:37:22
お前には無理。

294 :デフォルトの名無しさん:2008/09/15(月) 02:06:07
昨日あたりからC#はじめたものなのですが、とっかかりとして、
簡単な例として典型的な図形クラスつくってみているところです。
以下のように書いてAreaを取得する関数はどうやってかけばいいんでしょうか?
DoubleとT型が違うんでだめじゃ!とおこられます。(T)Math.PIもやってみたが
だめでした。例では、Cylinder<float>, Cylinder<double>での使用を考えています。


class Cylinder<T>
{
protected T r;
protected T h;

public Cylinder(T _radius, T _height)
{
this.r = _radius;
this.h = _height;
}

public virtual T Area()
{
T area;
area = 2 * Math.PI * r * r;
return area;
}
}

295 :デフォルトの名無しさん:2008/09/15(月) 02:08:47
>>294
ジェネリクスはテンプレートとは違うからそういう用途には向かないよ。
まあ今回の場合はとりあえずキャストしとけばいんじゃない?

296 :デフォルトの名無しさん:2008/09/15(月) 02:09:18
C++のテンプレートと違ってそういうことは無理。

297 :デフォルトの名無しさん:2008/09/15(月) 02:11:47
>>294
そういう風には現状使えない。
Generics != Template

…まぁ抜け道はあるんだがそれを話すにはここでは
スペースが足りない

298 :デフォルトの名無しさん:2008/09/15(月) 02:13:08
そうなのですか。。。残念。結局、Volume、Area等の計算は別にだすしかないのかー
でも普段使うクラスのどっかにfloat,doubleと違うのが入り込んだら
他の汎用的に書いたクラスの汎用性を著しく妨げる方向に働くのが
いやなんですよね><

299 :デフォルトの名無しさん:2008/09/15(月) 02:15:58
C++/CLIを…

300 :デフォルトの名無しさん:2008/09/15(月) 02:19:46
結局C++にもどれっていうのかいw

301 :デフォルトの名無しさん:2008/09/15(月) 02:25:49
>>298
double間と暗黙の型変換できるようにしたりT同士の四則演算子を定義したりした
doubleやfloatのラップクラスを用意しておけば出来ないことも無いけどね。


302 :デフォルトの名無しさん:2008/09/15(月) 02:28:54
>301
やるしかなさそうですね。今がんばってそこまで学習しておくのも手かとおもいますが
なに分まだ舐め終わってないのでもうちょいいってから戻ってきてみます。

とりあえず、ここは、
public virtual double Area()
{
return 2 * Math.PI * (double)(object)r *(double)(object)r;
}
みたいにdouble返り値でつくっておき次へいきます。
(実際の使用時に、floatには自動的にキャストされるだろうと。)

303 :デフォルトの名無しさん:2008/09/15(月) 02:29:25
>>301
そしてそれの内部は LCG か Expression Tree あたり使うって感じだな


304 :デフォルトの名無しさん:2008/09/15(月) 02:39:04
ExpressionTreeおもしろそうですね。でも3.0からの機能みたいなので2.0の学習が一段落したら
みてみます。LCGは難しそう。1回機能全体みたら、中間コードの出力しらべながら学習してみます。

305 :デフォルトの名無しさん:2008/09/15(月) 02:45:42
>>304
ttp://d.hatena.ne.jp/NyaRuRu/20060802

理論的には簡単に出来るはずだから誰かやってねーかなぁと思って
ぐぐったら、やっぱり NyaRuRu 氏が取り上げてた
2.0 考えた LCG 版でも書いてみようかなぁ

306 :デフォルトの名無しさん:2008/09/15(月) 02:55:32
おー、いいサイトですね。ありがとうございます。
今このスレでおきた事象は、デザインパターン化できそうです。
『PublicBrainStorming Pattern』

Aが解決できないPという課題を公開する
ObserveしているB、C、D、… が解決案か、ヒントを出す。
Aを含めてPを一個すすめたP´という課題をだすというようにして
解決にむけて相互作用しながらすすめていく方式。
似ているパターンいくつかありますが、微妙にちがいますよね。

307 :デフォルトの名無しさん:2008/09/15(月) 02:56:34
>>305
ただし、NyaRuRu さん本人も言ってるけども、
LCG なんて最後の最後、よっぽどせっぱつまった時の奥の手よ。
書くのも大変だし、メンテはもっと大変。

動的コード生成の類は C# 4.0 で動きがありそうなんで、
それまで待った方がいいと思う。

308 :デフォルトの名無しさん:2008/09/15(月) 04:25:27
>280
おそまきながらありがとうございます.
おかげさまでうまくいきました.

309 :デフォルトの名無しさん:2008/09/15(月) 04:44:29
どういたしまして

310 :デフォルトの名無しさん:2008/09/15(月) 05:42:11
>>305
その記事微妙に勘違いしてる部分がある
そのままでも動くんだが組み込み演算/ユーザ定義演算で場合分けは不要
IL見れば分かるけど、内部にGetUserDefinedBinaryOperatorOrThrowというようなメソッドがある

ほぼすべての演算を定義した構造体をなんとなく作ったけど、あまり使ってないな

311 :デフォルトの名無しさん:2008/09/15(月) 06:41:54
というか今書いてみてるんだが、そもそも組み込み型は
固定なのでそれを固定でメソッド化していくと結論として
LCG も Expression Tree もいらね。

312 :デフォルトの名無しさん:2008/09/15(月) 06:46:59
作ったこと無くて言ってる奴がおるなぁ(・∀・)クスクス

313 :デフォルトの名無しさん:2008/09/15(月) 09:57:28
気色わる

314 :デフォルトの名無しさん:2008/09/15(月) 14:00:45
頭わる

315 :デフォルトの名無しさん:2008/09/15(月) 15:52:26
わる

316 :デフォルトの名無しさん:2008/09/15(月) 16:07:44


317 :デフォルトの名無しさん:2008/09/15(月) 16:43:38
 

318 :デフォルトの名無しさん:2008/09/15(月) 17:42:41
>>565
10kg10回が限界なら、12kg5回が限界。20kgなら1回。

319 :デフォルトの名無しさん:2008/09/15(月) 17:46:26
どこの誤爆か聞こうか?

320 :デフォルトの名無しさん:2008/09/15(月) 17:50:14
>>319
ああ、ごめん、筋トレスレ。いかんな。
今日も昼飯食わずにトレーニングしてたら倒れそうになって、
嫁さんに脳トレもしとけと諭された。

321 :デフォルトの名無しさん:2008/09/16(火) 04:31:38
>>297
フェルマー先生乙

322 :デフォルトの名無しさん:2008/09/16(火) 12:02:22
>>305
これ、いちいちExpression Treeなんか使わなくてもCreateDelegate使えばいいじゃん
プリミティブ型に関しては別扱いでそれぞれあらかじめメソッドを用意しないといけないけど

323 :322:2008/09/16(火) 12:12:01
DelegateクラスのCreateDelegateね
リフレクション経由の呼び出しが無くせる

324 :デフォルトの名無しさん:2008/09/16(火) 14:11:46
そりゃ「できる」だろう。
だれもその目的ではExpressionTreeを使わなきゃできないなんて言ってない。

つか俺は遊びでやりかけて止めた。
単にわざわざメソッドいっぱい作るの面倒臭かったから。


325 :デフォルトの名無しさん:2008/09/16(火) 14:14:22
あれ?CreateDelegateいったっけかな?忘れちまった。


326 :デフォルトの名無しさん:2008/09/16(火) 14:31:55
型関連でコード生成が必要な時って
LCG使わなくてもMakeGenericTypeとCreateDelegateで結構いろんなことできるよね

327 :デフォルトの名無しさん:2008/09/16(火) 14:47:21
ジェネリックと+-*/のような演算子が相性が悪いということで、
どうするかって話だったと思うけど。
MakeGenericTypeとCreateDelegateで何とかなるの?

328 :デフォルトの名無しさん:2008/09/16(火) 15:03:20
もちろん強引にしかできない

329 :デフォルトの名無しさん:2008/09/16(火) 15:05:24
+演算子を使うためにはop_Additionという名前のメソッドを呼び出す必要がある。
もちろんリフレクションを使えばMethodInfo.Invokeで呼び出せるんだけどすごく遅い。
そこで、デリゲートにそのメソッドをバインドしてしまえば、通常のデリゲート呼び出しと同じ
オーバーヘッドで呼び出せるわけ。CreateDelegateを使えばMethodInfoからデリゲートが作れる。

330 :デフォルトの名無しさん:2008/09/16(火) 17:01:56
すいません。質問です。
スレッドにてSuspendとResumeを使用しているのですが
使用しないでくださいとMSDNにあります。
そこで代わりになるようなのを見つけようと思ったのですが見つかりません。
Suspendのような、特定メソッドが呼ばれるまでスレッドを待機させると言う事は出来ないのでしょうか

331 :デフォルトの名無しさん:2008/09/16(火) 17:29:13
>>329
たしか、基本データ型はop_色々を実装していない。
勿論ユーザー定義型の演算子なら大丈夫だが不便。

struct Int32 : IAdd<Int32> ... とかすればいいのにとか、この設計は凄くイライラする。

332 :デフォルトの名無しさん:2008/09/16(火) 17:32:01
DynamicMethodでいいやん

333 :デフォルトの名無しさん:2008/09/16(火) 17:41:37
DynamicMethodなんか使う暇があったら
各プリミティブ型に対してそれぞれ演算を行うメソッドを全て書いたほうがマシ

334 :333:2008/09/16(火) 17:44:04
op_○○に相当するものを自分で定義するという意味だよ

335 :デフォルトの名無しさん:2008/09/16(火) 18:16:22
ラムダ式羅列でOK

336 :デフォルトの名無しさん:2008/09/16(火) 18:17:34
>>330
素直にMomitorかEvent系使え

337 :デフォルトの名無しさん:2008/09/16(火) 18:54:02
>>330
AutoResetEventでいいんじゃない?
http://msdn.microsoft.com/ja-jp/library/ms173179.aspx

338 :デフォルトの名無しさん:2008/09/16(火) 19:44:49
もみたー

339 :デフォルトの名無しさん:2008/09/16(火) 20:24:09
ワロタorz

340 :デフォルトの名無しさん:2008/09/16(火) 20:59:03
すみません。
usingステートメントに二次元配列クラスを渡す方法を教えて下さい。
御願いします。

341 :デフォルトの名無しさん:2008/09/16(火) 21:00:53
日本語で御願いします

342 :デフォルトの名無しさん:2008/09/16(火) 21:07:06
public MapSearch[,] msc = new MapSearch[256,256];
for (i = 0; i < 256; i++)
{
for (j = 0; j < 256; j++)
{
msc[i,j] = new MapSearch();
}
}

//↓ステートメント内で宣言できません
//MapSearch内には多く変数が入っています
using (MapSearch[,] msc = new MapSearch[256,256]){
}
すみません。絶対何か間違った方法だと思いますが

343 :340:2008/09/16(火) 21:09:43
あ、>342=>340です。申し訳ありません。

344 :デフォルトの名無しさん:2008/09/16(火) 21:10:06
usingはメモリ使用量の大小とは無関係です。
IDisposableインターフェイスを実装しているもののみに限りusingが必要と覚えておきましょう。
マネージ配列はIDisposableを実装していませんから使えません。放置しましょう。

345 :340:2008/09/16(火) 21:17:28
>>344
ありがとうございます。
もう少し言葉を覚えたいと思います。

346 :デフォルトの名無しさん:2008/09/17(水) 01:22:22
配列を以下のように宣言したら、別の関数に渡せるのですが?
private int[] func1() {
int[] testarrays = {1,2,3,4,5};
return testarrays;
}
private void func2(int[] a) {
int[] testarrays2 = func1();
}
自分の環境だと動いているのですが、C#では配列はスタックに
作成されないのですか?


347 :デフォルトの名無しさん:2008/09/17(水) 01:22:53
配列はオブジェクトです。

348 :デフォルトの名無しさん:2008/09/17(水) 02:43:17
そうか。
そして開放は、ガーベージコレクターにまかせればいいんですよね。
ありがとうございました。

349 :デフォルトの名無しさん:2008/09/17(水) 03:19:35
すみません。最近プログラムに目覚めてC#の本を買って勉強中です。

まずやりたいことは、Excelを使ったグラフ作成での資料提出です。
Consoleでの操作はある程度やったのでそろそろExcelに手を出したいのですが・・


350 :デフォルトの名無しさん:2008/09/17(水) 03:38:40
>>349
こんな時間に、なんか軽い感じの書き込みだな。
もしかして、あんたのいるところは昼間?
英語問題ないんだったら、
Visual Studio Tools for Office:
Using C# with Excel, Word, Outlook, and InfoPath
とかどうスか?


351 :デフォルトの名無しさん:2008/09/17(水) 10:48:12
>>350
知り合いが言うにはそこまで複雑ではないそです。
一般家庭にあるExcelを使ってグラフと作成して印刷するだけです。

基本的なことだとは思いますがC#を勉強しててもまったくそのことに触れません。
昨日数時間も本屋さんに通いつかれて疲れました

352 :デフォルトの名無しさん:2008/09/17(水) 11:49:53
C#を使わずにExcelのマクロだけでやったほうがいいんじゃないかな

353 :デフォルトの名無しさん:2008/09/17(水) 12:07:48
何考えてC#選んだのか知らないけど、直接Excel触るのにはC#は不向きなんだよね

354 :デフォルトの名無しさん:2008/09/17(水) 13:27:07
>>331
>たしか、基本データ型はop_色々を実装していない。
Reflectorで見たらマジでそうだったんだけどさ
どうして演算できる訳?なんでこんな仕様?

355 :デフォルトの名無しさん:2008/09/17(水) 13:32:16
もちろん理由はパフォーマンス
数値演算ごときに一々メソッド呼び出しとかコスト高すぎ
ILレベルで数値演算用のオペランドが使われる

356 :デフォルトの名無しさん:2008/09/17(水) 13:33:51
正しくはオペランドではなくオペコード

357 :デフォルトの名無しさん:2008/09/17(水) 13:56:44
構造体みたいに見えるように工夫してるけど実際は対応するIL組み込み型として扱われる

358 :デフォルトの名無しさん:2008/09/17(水) 14:17:24
decimalは真っ当な構造体なんだぜ?


359 :デフォルトの名無しさん:2008/09/17(水) 14:36:26
decimalも他ほどではないにしろやっぱりCLRにべったりくっついてるね

360 :デフォルトの名無しさん:2008/09/17(水) 15:04:58
Excel触るならVB.Netの方が使いやすいと思う(というか、かなりめんどくさいw>C#)
自分は遅さに耐えかねてVBAで組むことが多い

361 :デフォルトの名無しさん:2008/09/17(水) 15:11:07
VB.NETもC#も変わらん

362 :デフォルトの名無しさん:2008/09/17(水) 15:13:55
オプショナル引数に対応できる分だけVBが楽
あとは推奨じゃないがCreateObjectでレイトバインディングも可能
まあたいして変わらないのは確かだがね

363 :デフォルトの名無しさん:2008/09/17(水) 15:46:52
すまん、基本だと思うんだが、Equals、==について教えてたもれ

一応、ガイドラインはみますた
http://msdn.microsoft.com/ja-jp/library/ms173147(vs.80).aspx

・基本的に値的なオブジェクトでなければEqualsをオーバーラードする必要はないのか?
・演算子==のオーバーライドについてガイドラインではオブジェクトが不変な場合に同じ値を持つ限り同一云々とあるが、自分的にはそのオブジェクトが値的なものであればオーバーライドしなければいけないように思うのだが違うのか。
・その上でDictionaryのようなKey的なオブジェクトを使うものはそのキーの同一性を比較するのに、==とEqualsのどちらを使うべきなのか。
・GetHashCodeの効率的な実装方法

以上のことを教えてくれ。エロい人

364 :デフォルトの名無しさん:2008/09/17(水) 15:57:28
・ない。
・その項目は参照型の場合のみ。
・IEqualityComparer<T>を使う。特別な実装がない場合はEqualityComparer.Default。
・知らん

365 :デフォルトの名無しさん:2008/09/17(水) 20:03:27
>>361
遅延バインディングが(手軽に)できるのとできないのじゃ天と地ほと違うと思うけど。
あと暗黙的なキャストができないと面倒な場面も多い。

366 :デフォルトの名無しさん:2008/09/17(水) 22:53:30
>>365
>・その項目は参照型の場合のみ。
いや参照型のオブジェクトで値的な性質のものについて値としての比較を強制するために==をoverrideしなければいけないのかと。

367 :デフォルトの名無しさん:2008/09/17(水) 22:56:25
>>363
> ハッシュ
Point構造体を例にすると

- Xを返す (.NETはこれ)
- Yを返す
- XとYの上位16ビットを並べたものを返す

などの実装が考えられるけど、
事前に確率分布が分かっていなければ基本的にどれでも一緒だから、
適当にフィールドから32ビット見繕って返せばいいよ

368 :デフォルトの名無しさん:2008/09/17(水) 23:04:34
ここにはXorなんてどうよ、と書いてある。
http://msdn.microsoft.com/ja-jp/library/system.object.gethashcode.aspx

369 :デフォルトの名無しさん:2008/09/17(水) 23:08:03
>>367
あれ、PointはXとYのxorだったはず

370 :デフォルトの名無しさん:2008/09/17(水) 23:19:28
ごめん、何か別のと勘違いしてた

371 :デフォルトの名無しさん:2008/09/18(木) 00:21:55
とりあえずはメンバ全部の GetHashCode Xor だな普通
あとは分布とコスト次第で調整(必要なのはあまりない)

372 :デフォルトの名無しさん:2008/09/18(木) 00:24:24
俺は少しビットずらすのがすき。
あんま深く考えてはいないけど。


373 :デフォルトの名無しさん:2008/09/18(木) 00:26:37
floatはどうすると?

374 :デフォルトの名無しさん:2008/09/18(木) 00:29:34
float.GetHashCode

375 :デフォルトの名無しさん:2008/09/18(木) 00:30:25
質問です。

String s = (o==null)?"":o.ToString();
みたいにいちいちNullチェックするの面倒だから

static String ObjToString(Object o){
return (o==null)?"":o.ToString();
}

みたいな野作ったんですが邪道でしょうか
もっといい方法ないでしょうか


376 :デフォルトの名無しさん:2008/09/18(木) 00:39:21
>もっといい方法
VBを使う。
VBだとnullはString.Empty扱いされる。(本当)

377 :デフォルトの名無しさん:2008/09/18(木) 00:43:20
まじかーでもVB使いにくいしなー

慣れかな

378 :デフォルトの名無しさん:2008/09/18(木) 00:51:12
>>375
自分なら拡張メソッドにする。
おかげで自分のプログラムではobjectのメソッドが増えること増えること('A`)

379 :デフォルトの名無しさん:2008/09/18(木) 00:54:28
三項演算子ってこわくね?

String s = (dataSet.Tables.Count == 0) ? "" : (dataSet.Tables[0].Rows.Count == 0) ? "" : (dataSet.Tables[0].Rows[0]["Field0"] == null) ? "" : dataSet.Tables[0].Rows[0]["Field0"].ToString();


380 :デフォルトの名無しさん:2008/09/18(木) 01:00:30
そうか?俺平気で結構連結するよ
改行とインデントしっかりすれば個人的にはこっちのほうが
みやすい
とはいえその例はしないかな

381 :デフォルトの名無しさん:2008/09/18(木) 01:00:58
>>378
拡張メソッド はずかしながら知りませんでした。
これは便利ですね。


382 :デフォルトの名無しさん:2008/09/18(木) 01:02:06
>>378
>objectのメソッドが増えること増えること

せめてジェネリクス使おうよ。

public static string SafeToString<T>(this T obj)
{
  return (obj != null) ? obj.ToString() : string.Empty;
}

383 :デフォルトの名無しさん:2008/09/18(木) 01:11:19
>>382
それにジェネリクス使っても何の意味もなかろーもん

384 :デフォルトの名無しさん:2008/09/18(木) 01:12:05
それに何の意味があるのか教えてくれたまえ。


385 :デフォルトの名無しさん:2008/09/18(木) 01:12:14
この場合ジェネリクスにしたら何がうれしいの?
よくわからんがnull許容型に対してボクシングが行われないとかなのかな?

386 :デフォルトの名無しさん:2008/09/18(木) 01:13:00
値型だとボクシングが回避できるんだぜ?


387 :デフォルトの名無しさん:2008/09/18(木) 01:13:35
T が値型だと boxing が起きませんな
デメリットも思いつかんし付けたほうがいいね

388 :デフォルトの名無しさん:2008/09/18(木) 01:13:49
余計なnullチェックもなくなるんだぜ?

389 :デフォルトの名無しさん:2008/09/18(木) 01:14:34
だけどToStringするようなもんならあんまり意味はないんだぜ?


390 :デフォルトの名無しさん:2008/09/18(木) 01:19:12
>>388
おお、値型ならアクティブ時に条件分岐すら消滅しますな確かに

391 :デフォルトの名無しさん:2008/09/18(木) 01:21:59
むしろこうすると値型で余計なメソッドが見えなくなってうまーかな。

public static string SafeToString<T>(this T obj)
  where T:class
{
  return (obj != null) ? obj.ToString() : string.Empty;
}


392 :デフォルトの名無しさん:2008/09/18(木) 01:24:38
DataGridViewかRDBMS関連のお話かな

393 :384:2008/09/18(木) 01:25:27
しょうじきすまん買った
今は反省している

394 :デフォルトの名無しさん:2008/09/18(木) 01:31:17
俺はcoalesceの方が好きだな

(obj ?? "").ToString()

395 :デフォルトの名無しさん:2008/09/18(木) 02:41:21
その系のパターン結構多いんだよな。
で思わず??で書こうとして無理じゃんってのが多いんだよな。


396 :デフォルトの名無しさん:2008/09/18(木) 06:06:23
c#2008EE使っているんだけど
F5デバッグしてプログラム終了後、エディタ画面にもどるまで
2秒ほどもたつくんだけど、これは無料だからわざとやってるのかな?

c2d E8400でやっているんだけど、これでも足りないとは思えないんだけど・・・

397 :デフォルトの名無しさん:2008/09/18(木) 09:08:45
そんな現象に会ったこと無い

398 :デフォルトの名無しさん:2008/09/18(木) 10:18:24
Webプロジェクトやフォームアプリでも、ちょっとした小さなコードを書いて挙動を確認したい時が
あるじゃないですか。例えば、Enumのパースってこれで良かったっけ?とか。

そういう時、Visual Studioだとマイクロコードを書いて確かめる方法なかったでしたっけ?
皆さん、どうしています?
ソリューションにコンソールアプリプロジェクトを追加するのは大げさだし、
別にテスト用ソリューションを用意しておくほどのものでもないし。

テストプロジェクトでも流用して、小さなコンソールアプリでも追加できないんですかね。

399 :デフォルトの名無しさん:2008/09/18(木) 10:19:36
またスタートページ切ってないとかじゃないのどうせ

400 :デフォルトの名無しさん:2008/09/18(木) 10:24:32
EEって書かれると、エンタープライズエディションかと思っちゃうよね〜。
2008チームスイート使ってるけれど、SP1で確かにもたつきが無くなった気がするよ。


401 :デフォルトの名無しさん:2008/09/18(木) 10:34:11
>>398
小さいテストコードって意味なら、適当にブレークして
イミディエイトでご自由にどうぞ。

402 :デフォルトの名無しさん:2008/09/18(木) 11:00:29
オブジェクトテストベンチ
ちょっと違うか…

403 :396:2008/09/18(木) 13:00:24
>>399
スタートページ表示したままだったので消してみました。様子見

>>400
一応最新です

404 :デフォルトの名無しさん:2008/09/18(木) 13:03:03
>>396
俺も、Vistaマシンに入れたら同じ現象おきるな。
なので今はXPマシンでやってる。

405 :396:2008/09/18(木) 13:13:58
スタートページ切ったら不可思議なラグがなくなった
ありがとう

406 :デフォルトの名無しさん:2008/09/18(木) 17:07:24
3.5SP1にしてからインテリ扇子が英語になってもーた

407 :デフォルトの名無しさん:2008/09/18(木) 17:38:50
翻訳が間に合わなかったらしい
ttp://blogs.msdn.com/dd_jpn/archive/2008/08/11/8848131.aspx

408 :デフォルトの名無しさん:2008/09/18(木) 18:12:06
>>407
そうだったんですか。
ありがとうございました。

409 :デフォルトの名無しさん:2008/09/18(木) 19:33:17
.NETリモーティングで双方がどちらもクライアントかつサーバーになる
サンプルをどこかで見た記憶があるんだけど、今ググっても見つからない。

誰か心当たりある人いない?

しかし、.NETリモーティングって同じことをやる方法が複数あるわ、
必要なクラスがバラバラの名前空間に散らばってるわでもう訳がわからん。

410 :デフォルトの名無しさん:2008/09/18(木) 21:41:45
よく双方向なんてやる気になるな。
リクエストリプライのステートレスでしか使ったことないぜ。


411 :デフォルトの名無しさん:2008/09/18(木) 22:01:19
>>398
MonoのMiguelたんがやってくれたぜ。

CSharpRepl
ttp://www.mono-project.com/CsharpRepl

412 :デフォルトの名無しさん:2008/09/18(木) 23:17:59
DataColumn.Expression プロパティについて教えてください。

あるフォルダの中で、条件に一致するファイル(名)を取得したいと思っています。
そこで、条件をテキストボックスなどで[abc def xyz]などのようにスペースで区切って、AND検索をしたいと思っているのですが、Dataset.DataTable.SelectのExpressionの記述方法で困っています。

具体的には、
string[] keywords = textbox1.Text.Split(' ');
というように各キーワードの抜き出しを行っているのですが、ここからどうすればいいのか困っています。
abcだけならDataset.DataTableTable.Select("\"FileName = 'abc'\"");などでできると思うのですが。。。

よろしくお願いします。

413 :デフォルトの名無しさん:2008/09/18(木) 23:23:09
それのSelectの中身ってSQL文だっけ?
そんなに詳しくないけども、in 演算子ってなかった?
Filename in { 'abc', 'def', 'xyz' } みたいなの。

414 :412:2008/09/18(木) 23:28:12
>>413
すみません。リファレンスを書き忘れました。
http://msdn.microsoft.com/ja-jp/library/system.data.datacolumn.expression(VS.80).aspx

IN演算子ありました!

ちなみに、IN演算子を使って、
Filename IN { 'abc', 'def', 'xyz' }


415 :デフォルトの名無しさん:2008/09/18(木) 23:29:48
すみません。間違えてShif+Enterを押してしまいました。

ちなみに、IN演算子を使って、
Filename IN { 'abc', 'def', 'xyz' }
と記述した場合に、結果にはabc def xyzを含むファイル名が取得できるということでいいでしょうか?

416 :デフォルトの名無しさん:2008/09/18(木) 23:38:15
「を含む」じゃなくて「のいずれかに一致する」
Expression の IN は ()

「を含む」の場合は LIKE 演算子が必要だが IN と併用できたっけ。
無理なら OR でつなげるしかないかな?

417 :デフォルトの名無しさん:2008/09/18(木) 23:42:28
>>415
in は「右辺の配列の中に左辺が含まれているかどうか」
今の場合、Filename が abc, def, xyz のいずれかと一致するかどうか
になると思う。

418 :412:2008/09/18(木) 23:45:08
>>416
>>417
なるほど。

LIKEとINが併用できるか調べてみます。
# だめだった場合は、ORでつなげるか、複数回Selectを実行してやってみようと思います。

ありがとうございました。

419 :デフォルトの名無しさん:2008/09/18(木) 23:46:11
というか、こういう処理こそ LINQ の出番なんだけどねぇ。

420 :412:2008/09/18(木) 23:58:31
>>419
すみません。
LINQについてはまだ勉強不足です。
# 将来的には勉強しなければと思っていますが・・・。

421 :デフォルトの名無しさん:2008/09/19(金) 00:03:37
元々から非 LINQ の DataTable 使ってるとか
会社の方針として使うものが決まってるんなら別にいいと思うけど、
新規に学ぶなら LINQ の方が楽というだけ。

422 :デフォルトの名無しさん:2008/09/19(金) 00:14:59
RDBMSやSQLをきちんと理解していれば、LINQの勉強なんて大した手間でもない

423 :412:2008/09/19(金) 00:37:03
>>421
>>422
助言ありがとうございます。
今後勉強する際の参考にしたいと思います。

424 :デフォルトの名無しさん:2008/09/19(金) 22:25:12
すれ違いで間違ったところに投稿してしまったのでここへ書かせてもらいます。

C#2.0 

CTIのシステムを自分のソフトにも組み込んでみたいんですが
どんな感じで実現するんでしょう?

着信があってその番号から検索するのはわかるんですが、
どうやって電話を邪魔せずに番号だけ抜き出せばよいのか…・

外からの着信→PCのモデム→TEL
こんな感じでつなぎそうな気がするのですが・・・・

425 :424:2008/09/19(金) 22:27:26
おぉ・・・・間違ってShift+Enterを・・・orz

以下追記です。

対象はC#2.0+WinXP環境です。
また、単純に着信があれば顧客のデータにある電話番号か携帯番号のどちらかからデータが取得したい程度のことです。

番号さえフックできればあとは簡単な話なのですが・・・

426 :デフォルトの名無しさん:2008/09/19(金) 22:39:36
C#のクラスライブラリには直接サポートするものはなかったと思う。
何か市販のミドルウェアを使うならそのマニュアルを、モデムを直接制御するならモデムのマニュアルを。
ふらっとでスレ違いといわれたら当然ここでもそうだろう。

427 :デフォルトの名無しさん:2008/09/19(金) 22:40:38
Creed Taylor Issue レコードを C# で作りたいのか。

まあ、冗談は置いとくとしても3文字略語(・A・)イクナイ

428 :デフォルトの名無しさん:2008/09/19(金) 22:41:59
TAPI3Libで検索するとちょっとは幸せになるかもしれない。

429 :デフォルトの名無しさん:2008/09/19(金) 23:05:07
>>424
ここに書き込んだからには、そのCTIとやらの知識はあって
Cないし他言語では組めるんだろ
で、C#だと何が問題なんだ?

430 :デフォルトの名無しさん:2008/09/20(土) 00:12:29
>>424
.NET / Visual Basic環境でのCTI開発ツール“VBVoice”、トライアル版の無償ダウンロードの開始
http://japan.zdnet.com/release/story/0,3800075480,00017855p,00.htm
検索したらこんなのが見つかったけど調べてみれば?

431 :424:2008/09/20(土) 02:02:22
レスありがとうございます。
ひとまずCTIでやるべき事はわかるんですがその手法かなと

>>428
どうもTAPI3Libは電話機器とかその辺の関連DLLみたいですね
今軽く見たらなんとなくいけるかもしれない希望が見えてきた気がします。

>>426
そうですか、それがわかれば逆に範囲は狭められる感じがします。
TAPI3Libが今回やろうとしていることにうまいこと使えればうれしいものなのですが・・・

>>427
いわゆる広義でいう Computer Telephony Integration
のことを言おうとしていました。
ただ、もっと具体的に書くべきかなと思いました。

>>429
とりあえず組めるには組めるのですが、何ができないかというと
かかってきた電話を邪魔せずに電話番号(ナンバーディスプレイ)をPCで取得しようとする方法です。
ハード寄りな部分というのはあんまりしたことがないのでノウハウが・・・

>>430
それはどうもその会社の製品を買ったおまけで、しかも開発ライセンスはタダだけど配布ライセンスはいるという感じなorz

まずは頂いた情報であれるだけやってみようと思います。
ありがとうございました。

432 :デフォルトの名無しさん:2008/09/20(土) 08:42:09
ワンギリ業者氏ねよ

433 :デフォルトの名無しさん:2008/09/20(土) 10:54:22
C#でソースを書いていて、タブキーを押すと押せば押しただけタブが挿入されるのがいやです。
タブを何回押しても、決まったインデントの位置に行くだけになるよう設定できますか?
環境はVisual C#2008です。よろしくお願いします。

434 :デフォルトの名無しさん:2008/09/20(土) 11:35:49
文字列をtextBoxに表示するとき、改行を\r\nと書かないとだめなのはなぜですか?
MessageBoxに表示するときは\nで改行できるのに。

435 :デフォルトの名無しさん:2008/09/20(土) 12:03:36
寧ろMessageBoxがおかしい。

436 :デフォルトの名無しさん:2008/09/20(土) 13:27:27
コモンコントロールに依存してるところがそうなってる感じかな。


437 :デフォルトの名無しさん:2008/09/20(土) 13:44:33
コモンコントロールに依存してないWPFのTextBoxは\r\n \r \nのどれもOKだった

438 :デフォルトの名無しさん:2008/09/20(土) 19:47:22
>>431
CTIは知らんけど、auの携帯電話ならシリアルで接続すれば、着信時にシリアルポートから電話番号の情報が受信できるけど・・・

439 :デフォルトの名無しさん:2008/09/21(日) 03:15:28
[C#, Delphi] いい加減 C# 信者がうざい件
http://tobysoft.net/diary/archives/2008/09/believers_of_c-sharp_are_uzai.html
---
C# 信者の特徴
 Hejlsberg は神であり神による実装である C# こそが唯一絶対の言語である
 他の言語(特に DelphiとJava)は存在自体が悪である
 他の言語を使っているのは C# を知らないからである
 C# を布教することでそのような不幸な子羊たちを救済することこそが正義である
どこかの世界宗教のようですね。


440 :デフォルトの名無しさん:2008/09/21(日) 03:28:21
まあ文句は使ってみてから言えや
もちろんこっちはPASCALもJavaも使える

441 :デフォルトの名無しさん:2008/09/21(日) 03:42:37
C#使ってるけど別に信者じゃないからどうでもいいよ。

だいいち信者がウザイのはどこの言語でも一緒だから
ことさら言うまでのことじゃないんだ。

442 :デフォルトの名無しさん:2008/09/21(日) 09:48:13
C#で書かれているチャートソフトを使用しています
いろいろとソース弄って表示を変えたいところがあります

プログラミングをした事がないのですが
いきなりC#から入ったら無謀でしょうか?

443 :デフォルトの名無しさん:2008/09/21(日) 09:51:24
具体性のない質問をされてもな。具体的に困ったことがおきてからふらっとへ。

444 :デフォルトの名無しさん:2008/09/21(日) 09:55:03
言語によらず入ってくるの自体が無謀

445 :デフォルトの名無しさん:2008/09/21(日) 12:17:37
>>442
ソース見て頭がフリーズしなけりゃ大丈夫

446 :デフォルトの名無しさん:2008/09/21(日) 18:44:36
プログラミングがしてみたいんじゃなくてそのソフトを弄るのだけが動機なんだったら
言語問わずすぐ挫折するよ

447 :デフォルトの名無しさん:2008/09/21(日) 19:19:46
BackgroundWorkerでCancelAsyncメソッドを呼び出して、RunWorkerCompletedイベントで
引数RunWorkerCompletedEventArgs.Resultを参照するとInvalidOperationExceptionがスロー
されるのは仕様?

DoWorkイベント内で
if (backgroundWorker1.CancellationPending)
{
e.Result = "hoge";
e.Cancel = true;
}

とやってもダメだった。

448 :デフォルトの名無しさん:2008/09/21(日) 19:20:12
イベントハンドは仮想関数であってもいいの?

449 :デフォルトの名無しさん:2008/09/21(日) 19:39:02
>>447
そうみたいだね
>>448
うん
オーバーライドされてたらちゃんと派生クラスのメソッドが呼ばれる

450 :デフォルトの名無しさん:2008/09/21(日) 19:40:16
>>447
RunWorkerCompletedEventArgs.Resultの解説に明記されてる

451 :デフォルトの名無しさん:2008/09/22(月) 01:28:10
DatasetのDataTableにおいて、DataRowの要素が重要かどうかを判断するために、列として System.Boolean で isImportant という名前をつけています。
そこで、DataTableに isImportant が true となっている要素だけを取り込もうと思い、以下のようなコードを書いたのですが、System.Boolean の値判定はどうすればいいでしょうか?
(現状では単純に True となっているのですが、そもそもそれでいいのかどうか・・・。)
また、ほかにスマートなやり方があれば教えていただけるとうれしいです。

DataSet.DataRow[] dataRows = (DataSet.DataRow[])DataSet1.Table1.Select("\"isImportant = 'True'");

よろしくお願いします。

452 :デフォルトの名無しさん:2008/09/22(月) 06:20:11
C#でExcelのアドインを作ろうとして以下のページを見てるのですが、
ttp://support.microsoft.com/kb/302901/ja
>[新しいプロジェクト] ダイアログ ボックスで、[プロジェクトの種類] の下の [その他のプロジェクト] を展開し、
>[機能拡張プロジェクト] をクリックします。次に、[共有アドイン] テンプレートをクリックします。
という手順のところで、「その他のプロジェクト」というのがありません。
自分の使っているのはVisual Studio C# 2008 Expressなのですが、ExpressではExcelアドインは作成できないので
しょうか?
どうかよろしくお願いします。


453 :デフォルトの名無しさん:2008/09/22(月) 07:23:51
>>452
この資料は以下の製品について記述したものです。
 ・Microsoft Visual C# .NET 2003 Standard Edition
 ・Microsoft Visual C# .NET 2002 Standard Edition

まともに調べたことは無いがちらっと検索したら否定的な意見が目に付くな

454 :デフォルトの名無しさん:2008/09/22(月) 07:43:45
>>453
ありがとうございます。
自分も調べているのですが、Expressでアドインを作成できるにはできるらしいのですが、それ用のテンプレートが
Expressには入ってない、というところまではわかりました。
テンプレートをダウンロードできるのか、もしくは簡単に自分で書けるのか、もしくはExpressでやるのはやめた方がいいのか
今調べているところです。

455 :弱弱:2008/09/22(月) 07:54:40
とりあえず、VS2008Professionalの90日間トライアルバージョンをダウンロード
し始めました。
#でもダウンロードマネージャというのがJavaでできてるのが変な感じ。
最悪、こいつで作ってみて、shared add-inのtemplateが自作できそうなのか判断してみます。


456 :弱弱:2008/09/22(月) 12:36:28
ダウンロードして、トライアル版で作り始めました。
まず、ExcelアドインでHello worldを作ろうとしているのですが、
 private Excel.Application applicationObject;
 private Core.COMAddIn addInInstance;
 private Object missing = Type.Missing;
この3行のコンパイルが通りません。コンパイルエラーには、
Expected class, delegate, enum, interface or struct
と出ているのですが、、、
参照は、COMのMicrosoft Excel 11.0 Object Libraryを追加しました。
どうかよろしくお願いします。


457 :デフォルトの名無しさん:2008/09/22(月) 12:39:21
using Excel = Microsoft.Office.Interop.Excel;
このへんは入れた?

458 :デフォルトの名無しさん:2008/09/22(月) 17:14:20
C#でデスクトップマスコットみたいな 自由な形のアプリを作るにはどうしたらいいですか?
参考になるような書籍・サイト等ないでしょうか?


459 :デフォルトの名無しさん:2008/09/22(月) 17:24:47
ちょっとググったが、
ttp://uchukamen.com/Programming1/Region/
こういうやつ?

460 :デフォルトの名無しさん:2008/09/22(月) 17:30:22
>>458
http://www.codeguru.com/csharp/csharp/cs_misc/graphicsandimages/article.php/c4259/

461 :デフォルトの名無しさん:2008/09/22(月) 17:42:27
>>459
>>460
まさに求めていたモノです。
ありがとうございます!!

462 :弱弱:2008/09/22(月) 20:10:08
>>457
ありがとうございます。
using Core = Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms;
を入れました。あと、参照の追加で、
Microsoft.Office.Interop.Excel
も追加してあります。
でも結果は同じでした。


463 :デフォルトの名無しさん:2008/09/22(月) 20:11:57
グローバル変数定義しようとしてるだろ
クラスメンバとして宣言しろ

464 :弱弱:2008/09/22(月) 20:49:45
>>463
ありがとうございます。
クラスメンバとして宣言したらコンパイル行けたみたいなのですが、そのあと管理者で
実行しないとだめといわれました。
HKEY_CLASSES_ROOT\MyAddin3.Connectへのアクセスが拒否されました。
といわれてます。自分も管理者権限もってるんですが、、、

465 :デフォルトの名無しさん:2008/09/22(月) 20:54:46
>>464
>>463はバカだから放置したほうがいいよ

466 :デフォルトの名無しさん:2008/09/22(月) 20:59:33
馬鹿はおまえだ

467 :デフォルトの名無しさん:2008/09/22(月) 21:43:54
(´・ω・`)しらんがな

468 :デフォルトの名無しさん:2008/09/23(火) 01:15:01
Visual Studioを管理者権限で実行させてみようと思うのですが、
どうすればよいですか?ちなみに環境はVista上のVS2008です。

469 :デフォルトの名無しさん:2008/09/23(火) 01:19:47
実行するときに右クリックで管理者権限で実行を選択するとあっさりできました。
とりあえず、F5押すとExcelが起動して、Hello Worldが表示されました。
ありがとうございました。

470 :デフォルトの名無しさん:2008/09/23(火) 07:29:06
DDEを利用したいのですが
メインのスレッドでないと正しく動作しないようです。
他のスレッドを実行中にDDEにアクセスすることはできないでしょうか?

471 :デフォルトの名無しさん:2008/09/23(火) 07:30:24
DoDemoE

472 :デフォルトの名無しさん:2008/09/23(火) 07:39:38
DemoDaijinE

473 :デフォルトの名無しさん:2008/09/23(火) 10:46:51
どうやってDDE使ってるのか分からんけどSTAThreadか
まあ普通にControl.Invokeでメインスレッドで処理すれば良いじゃん

474 :デフォルトの名無しさん:2008/09/23(火) 19:07:45
VS2008で.NET FW3.5向けで開発したものが、.NET FW2.0しか入ってない環境でも動くんだけど大丈夫?

475 :デフォルトの名無しさん:2008/09/23(火) 19:35:17
大丈夫

476 :デフォルトの名無しさん:2008/09/23(火) 20:36:54
>>474
3.0 と 3.5 は基本的にライブラリの追加のみ。
追加部分を使わなければ .NET Framework のバージョンは 2.0 で OK。

477 :デフォルトの名無しさん:2008/09/23(火) 23:57:53
>>475-476
ありがとう、大丈夫なんだね

478 :デフォルトの名無しさん:2008/09/24(水) 09:59:11
当たり前だが2.0SP1以降や3.0以降の機能を使おうとしたら止まるぞ。


479 :デフォルトの名無しさん:2008/09/24(水) 17:27:04
private List<ISchedule> zTasks = new List<ISchedule>();
これを同じことを NET 1.1でやりたいんですが どうすればいいんですか?

arraylist ってヒントまではもらえたんですが
具体的なコードを教えてくれませんか?

480 :デフォルトの名無しさん:2008/09/24(水) 17:33:16
private ArrayList zTasks = new ArrayList();
要素がobject型になるので、ISchedule型でなくても入れようと思えば入れられる
取り出すときにはダウンキャストが必要
どうしてもちゃんと型付けしたかったらSystem.Collections.CollectionBaseから派生した
ISchedule型専用のコレクションを自作する

481 :デフォルトの名無しさん:2008/09/26(金) 00:35:12
コントロールが結構たくさんあるフォームがいくつかあるのですが、
一応コーディングが終わってこれらの動作を一通りテストしたいというときには、
手動でやるしかないですか?
このボタンとこのコンボボックスの××の項目を選択してOKをおしたら△△になって、、、、
とか、かなり煩雑なのです。
こういうテストってどうすればよいですか?

482 :デフォルトの名無しさん:2008/09/26(金) 00:38:54
GUIテストの出来るツールを使うか、GUIで中のプロパティをいじくる動作と、プロパティに基づいたその後の動作を分けて後者をユニットテストで、前者は仕方ないので手動でしこしこですかね?
もっといい方法があれば教えてエロイ人。

483 :デフォルトの名無しさん:2008/09/26(金) 00:43:26
皆さんリリースしたフォームアプリ(まぁなんでもいいのですが、とりあえず客先に納入したとおもいねぇ)で想定していなかった例外がでる時って現象把握とかどうしてますか?
いまはスタックフレームを出しているぐらいなんですが、これだけだと原因が把握できない時ってありますよね?
( ゚Д゚)ナニカ?コードを仕込んでおけば例外はいた時点でのレジスタ?の値とかはけて、後でILと照らし合わせれば変数値が把握できるなどなにか技があれば是非・・・

484 :デフォルトの名無しさん:2008/09/26(金) 00:57:33
>>483
tryで全部くくればエラーでなくていいよ

>>482
APIぐらい使えよカス

485 :デフォルトの名無しさん:2008/09/26(金) 00:58:40
GUI操作しなければチェックできない時点で糞設計
はじめからやり直せ

486 :デフォルトの名無しさん:2008/09/26(金) 01:48:06
>>484
だから俺が言ってるのがAPIだろうがこの池沼

487 :デフォルトの名無しさん:2008/09/26(金) 06:38:25
>>483
追わないといけない処理してるmethodは中でcatchして情報まとめてthrow
んで大外で全部catchしてログ出力じゃ問題か?

>>485
糞設計者の俺にサンプルの提示してもらえないか?

488 :デフォルトの名無しさん:2008/09/26(金) 06:48:02
手動での操作を減らす方向での設計には大賛成、ただ減らすことはできてもゼロにはできない。
WEBアプリじゃあるまいしテスト容易性のために利用者の利便性や操作性は犠牲にできない。


489 :デフォルトの名無しさん:2008/09/26(金) 07:46:55
>>487
>追わないといけない処理してるmethodは中でcatchして情報まとめてthrow
>んで大外で全部catchしてログ出力じゃ問題か?
その場合、リリースしてから想定してなかったところですっ飛んで、追わないといけなくなったときに必要な情報がとれなくてどうしようということがありますた(´・ω・`)
情報まとめるよう入れ替えることが出来るときは問題ないんですが、諸事情で其れが出来ないときにどうしたらいいかと。
BoundContextObjectとかうまく使うとリコンパイルしないでうまく出来そうな所もあるかも知れないけど全部其れというわけにもいかないし

490 :デフォルトの名無しさん:2008/09/26(金) 09:11:22
結合テスト以降は手動でいいんじゃね?
UIなんて変わるもんだし

単体テストはユニットテスト使えばいいし

491 :デフォルトの名無しさん:2008/09/26(金) 10:27:04
BoundContextObjectてなんだ。

492 :デフォルトの名無しさん:2008/09/26(金) 10:42:50
商用アプリ作っていてちょっくら難読化しようと思ったら、

Dotfuscatorたけぇぇぇぇぇぇぇぇぇぇ!!!!!

1ユーザー1ビルドマシーンで85万てどんだけですか。
これこの間まで15万ぐらいだったような気がするんだが気のせいですか?
しょうがないので他のツール試してみる(ノД`)シクシク
そういうのはだいたい600$から1200$ぐらいなのに・・・

493 :デフォルトの名無しさん:2008/09/26(金) 11:25:46
なんかフリーのなかったっけ?
機能は落ちるだろうけど

494 :デフォルトの名無しさん:2008/09/26(金) 11:27:52
フリーっつうか、CommunityEditionはVSに付属

495 :デフォルトの名無しさん:2008/09/26(金) 11:52:55
フリーならこのへん
http://uwa.potetihouse.com/soft/nandoku.html
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

496 :デフォルトの名無しさん:2008/09/26(金) 12:14:16
XXX_FormClosing(object sender, FormClosingEventArgs e)
の中で、
e.Cancel = true;
というコードがあるのですが、これの意図が良くわかりません。
これって何か意図がありますか?


497 :デフォルトの名無しさん:2008/09/26(金) 12:17:53
それがどのイベントの時に呼び出されるメソッドかは分かるな?
あとはそのイベントの解説読め

498 :デフォルトの名無しさん:2008/09/26(金) 12:40:27
フリーだと商用使用は禁止されてるぞ

499 :デフォルトの名無しさん:2008/09/26(金) 12:48:33
GPLの難読化ツールとか憧れるな

500 :デフォルトの名無しさん:2008/09/26(金) 12:58:08
>>497
ありがとうございます。
フォームを閉じるのをキャンセルする意図ですね。ヘルプ読んだら真っ先に出てきてました。
ありがとうございました。

501 :デフォルトの名無しさん:2008/09/26(金) 23:44:11
>>489
入れ替え不可で修正って何の意味があんの?修正したって入れ替え出来ないんだろ?
想定外とかはテスト不足か理解して作ってない、素直に諦める。

502 :デフォルトの名無しさん:2008/09/26(金) 23:45:08
タブブラウザを作ろうとして試行錯誤しています。
とりあえずシンプルに、TabPageにWebBrowser(System.Windows.Forms)をAddしてTabControl上で表示させることにしたのですが、
iGoogleのページに移動して、ページ内のすべてのコンテンツが完全に表示される前に「タブを閉じる」のような操作を通じてWebBrowserをDisposeしてしまうと、
IEが立ち上がり、アプリのプロセスが停止するまでものすごい勢いでタブを開いてしまいます(http://www.google.co.jp/#%22remote_iframe〜などのURL)。
IEを起動しているのはDCOM Server Process Launcherサービスのようです。
現状iGoogle以外のサイトでは起こらないのですが、回避方法がありましたらご教授ください。
また、情報の不足等ありましたらご指摘ください。よろしくお願いします。

503 :デフォルトの名無しさん:2008/09/27(土) 00:17:28
コンボボックスに名前のリストを何個か表示させておき、comboBox.SelectedTextで
選択されたものをとってこようと思ったのですが、うまくいきません。comboBox.SelectedItem.ToString()
で出来たのですが、SetelctedTextってどんな使い方があるのですか?


504 :デフォルトの名無しさん:2008/09/27(土) 00:23:13
>>503
SelectedText でぐぐったら1番上にまんまな答えが載ってたんだが。

505 :デフォルトの名無しさん:2008/09/27(土) 00:29:08
すいません、見ました。
じゃあとりあえずSelectedItemを使っといて必要なときにはToString()する、
というのでいいですか?

506 :デフォルトの名無しさん:2008/09/27(土) 00:33:47
コードのある部分を無効化したいとき、#if 0 と#endifで括ってやってたんですが、
C#では出来ないですか?

507 :デフォルトの名無しさん:2008/09/27(土) 00:35:58
>>505
まあ、そう。

>>506
#if false

508 :デフォルトの名無しさん:2008/09/27(土) 00:39:28
Conditional属性なんてのもなかったけ。
ほとんど使ったことないけど。

509 :デフォルトの名無しさん:2008/09/27(土) 00:53:10
>>507
ありがとうございます。

510 :デフォルトの名無しさん:2008/09/27(土) 02:20:46
>>501
入れ替えできないってのは容易に入れ替えできないということだろ。
たとえば、本番環境で24時間稼働していてテスト環境では現象が再現しない場合など、メンテナンス時などに詳しくログはくものに入れ替えるとか。

511 :デフォルトの名無しさん:2008/09/27(土) 19:24:17
デリゲートは本当に遅いの?
ただの仮想関数よりも?

512 :デフォルトの名無しさん:2008/09/27(土) 19:27:35
どこで聞いてきたのさ?DynamicInvokeしなければ速いよ。


513 :デフォルトの名無しさん:2008/09/27(土) 19:52:46
C#なじてんで…

514 :デフォルトの名無しさん:2008/09/27(土) 20:01:02
(インライン化されてない)普通のメソッド呼び出しと仮想関数呼び出しだって、
遅くなるのは間接参照1回分よ。

デリゲートはそれよりはちょっと遅いかも。
普通の関数ポインタよりも高機能なことやるのに色々オーバーヘッドかかってるだろうし。

515 :デフォルトの名無しさん:2008/09/27(土) 21:08:04
ILも見ずに議論とな

516 :デフォルトの名無しさん:2008/09/27(土) 21:13:50
ILからJITされた結果も確認せずに議(略ってどうやったら見れるのだろう。

仮想関数のオーバーヘッドはJITでほぼゼロになる。
インライン化もたいていJITでやってる。


517 :デフォルトの名無しさん:2008/09/27(土) 21:19:54
ILはあんまり見ないけどJITコンパイル後のは時々見る
こっちの方が分かりやすい

518 :デフォルトの名無しさん:2008/09/27(土) 21:42:40
C#のJITではC++でコンパイルされたコードより高速なコードが出力されると聞いたが
CPUごとに最適化できるという意味でな

519 :デフォルトの名無しさん:2008/09/27(土) 21:45:56
そういう場合もある、程度だろ。

520 :デフォルトの名無しさん:2008/09/27(土) 21:47:19
まぁなんにせよ初回実行にすこし時間かかります

521 :デフォルトの名無しさん:2008/09/27(土) 21:50:47
Cとアセンブラの関係とそう変わらないと思う。
どうしても人手の最適が強い部分もあるし、
機械的な最適化の方が強い場面、あるいはそれで十分な場面も多々。

522 :デフォルトの名無しさん:2008/09/27(土) 21:52:11
できるのとするのは別問題だけどな

523 :デフォルトの名無しさん:2008/09/27(土) 23:26:34
http://sts.bkukr.de/l-davoss/blog/default.aspx?BlogId=21
開発環境もポータブル



524 :デフォルトの名無しさん:2008/09/28(日) 01:31:27
>>511
デリゲートは仮想関数よりもおそいらしい。
どっかの英語のサイトにテスト結果出てた。
普通の関数>>>>仮想関数>デリゲートってかんじ
仮想関数とデリゲートは1割ぐらいの差?それほど気にすることじゃないかと。
どっちにしろ普通の関数よりは数倍遅いので其れは柔軟性に必要な代償だと思ってあきらめるがヨロし。


525 :デフォルトの名無しさん:2008/09/28(日) 05:28:40
フォーム上にtextboxを複数設置してるんですが
それぞれ同じイベントを記述したい時
どのようにすればいいのでしょうか?
private void textBox1_Enter(object sender, EventArgs e)
{
textBox1.BackColor = Color.RED;

}
private void textBox1_Leave(object sender, EventArgs e)
{
textBox1.BackColor = Color.White;
}
フォーム上のテキストボックスをコピペしてもイベント記述は
コピーされないので、困っています。
このような連番のコードを生成するアプリなどあるのでしょうか?


526 :デフォルトの名無しさん:2008/09/28(日) 06:28:01
全く同じ処理を行うと解釈していいんだろ

ならプロパティ ウィンドウのイベントから全部のTextBoxのEnter/Leaveに
textBox1_Enter/textBox1_Leaveを設定すればいい

527 :デフォルトの名無しさん:2008/09/28(日) 07:01:41
ありがとう、できました

528 :デフォルトの名無しさん:2008/09/28(日) 07:58:39
>>524
> 普通の関数>>>>仮想関数>デリゲートってかんじ 

普通の関数が大きく有利になるケースとして、
テストに使用した関数がサイズが小さくJITでインライン化された場合がある。
仮想関数やデリゲートの場合はサイズが小さくてもインライン化されない。
int f(int i) { if (i>=0) return i; else -i; } 
という関数を使用した場合普通の関数はJITでインライン化されて非常に有利になる。

最適化をOFFにすればインライン化は抑制されるが、
最適化前提で設計されている.NETのパフォーマンス測定で意味のある行為ではない。
最適化ONのままインライン化を抑制するには無駄なコードを挿入してサイズを増やす必要がある。
テストでは引数i は負になることはないとする。
int f(int i) { if (i>=0) return i;
 意味のない大量のコード; -- ただし最適化で捨てられないように
  Randomで生成して結果はConsoleに出力するようにするなど工夫が必要
else -i; } 

さらにデリゲートに関してはデリゲートの生成を減らす工夫が必要になる。
これらの条件でテストすると普通の関数・仮想関数・デリゲートはほぼ変わらなくなる。



529 :デフォルトの名無しさん:2008/09/28(日) 08:02:18
君は注意力が足りないようだ

530 :デフォルトの名無しさん:2008/09/28(日) 11:42:16
リフレクション経由の呼び出しくらいになるとさすがに問題になるだろうけど
インターフェイスとデリゲートなんて普通の使い方ではほとんど意味のない差

531 :デフォルトの名無しさん:2008/09/28(日) 14:04:59
>>525
こっちに逃げてきたのか?
お前は基本から学べと言っただろカス

532 :525:2008/09/28(日) 14:33:34
?

533 :デフォルトの名無しさん:2008/09/28(日) 14:47:33
delegateからvirtual呼ぶとダブルパンチで遅くなるのかな

534 :デフォルトの名無しさん:2008/09/28(日) 15:06:15
まぁリフレクション経由の呼び出しもループの中とかで使わなければ十分に速いんだがな

535 :デフォルトの名無しさん:2008/09/28(日) 20:32:54
繰り返しリフレクション経由の呼び出しをするときはCreateDelegateを使うのがセオリー

536 :デフォルトの名無しさん:2008/09/28(日) 20:42:13
数百のイベントを毎秒60回呼んだらまずいの?

537 :デフォルトの名無しさん:2008/09/28(日) 20:50:33
リフレクションなら死ぬかもね

538 :デフォルトの名無しさん:2008/09/28(日) 23:31:36
C#からIEをコントロールするのはどうすればよいですか?
やりたいことは、アクセスしたURLヒストリを取得したり、ヒストリを消したり、
とかです。


539 :デフォルトの名無しさん:2008/09/28(日) 23:37:30
COMをラップ

540 :デフォルトの名無しさん:2008/09/29(月) 00:08:26
RichTextBox.DetectUrlsだとファイルパス(C:\tempなど)でLinkClickedイベントで拾えないんですが、
DetectUrlsの対象を独自に変更することはできますでしょうか?
もしくは代替の実装方法はありますでしょうか?

541 :デフォルトの名無しさん:2008/09/29(月) 00:51:45
file://形式のファイルパスにするとか

542 :デフォルトの名無しさん:2008/09/29(月) 00:59:50
>>541
それだとリンクになりますねー

付箋紙アプリを作っているんで、エクスプローラからコピった文字そのままでリンクになるのが目指すところではあるんですよね


543 :デフォルトの名無しさん:2008/09/29(月) 09:32:20
>>539
COMをラップする方法を教えてください。


544 :デフォルトの名無しさん:2008/09/29(月) 09:36:16
>>543
意味わかってて聞いてるの?

545 :デフォルトの名無しさん:2008/09/29(月) 11:13:59
>>544
調べてみて、IEのCOMオブジェクトのCUrlHistoryを使えばIEのヒストリにアクセスできるらしい、
という情報を得たんですが、これ以上どうすればいいのかぜんぜんわかりません。


546 :デフォルトの名無しさん:2008/09/29(月) 11:59:54
初歩的な質問ですが、お答えいただければ幸いです。

string[] s = new string[] { "a", "b", "c", "d" };
string msg = string.Format("{0}, {1}, {2}, {3}", s); // @
MessageBox.Show(msg);

int[] i = new int[] { 1, 2, 3, 4 };
msg = string.Format("{0}, {1}, {2}, {3}", i); // A
MessageBox.Show(msg);


@は成功するのに、AでFormatExceptionが発生します。
「インデックス (0 ベース) は 0 以上で、引数リストのサイズよりも小さくなければなりません。」

MSDNや他サイトを見るのですが、失敗する意味がよく分かりません。
どなかたご教示願います。

547 :デフォルトの名無しさん:2008/09/29(月) 12:10:24
配列の共変性

参照型配列は基底クラスの配列として扱える(これが共変性)
stringはobjectから派生しているからstring[]もobject[]として扱える
ところが値型配列にはこれが適用されない
intは一応objectから派生してるけどint[]はobject[]として扱えない

548 :デフォルトの名無しさん:2008/09/29(月) 12:49:02
>>547
丁寧な解説、ありがとうございました。

同様にbyte, short, long, decimalなども
扱えないことを確認しました。

549 :デフォルトの名無しさん:2008/09/29(月) 22:43:37
(´・∀・`)ヘー

550 :デフォルトの名無しさん:2008/09/29(月) 22:56:40
自作のプログラムからエクセルファイル(.xls)を起動して
そのエクセルファイルが閉じられるまでプログラムを中断したいのですが、
何かいい方法はありませんか?

using System.Diagnotics;
// 中略
var excelInfo = new ProcessStartInfo(エクセルファイル名);
excelInfo.Verb = "open";
var excel = new Process();
excel.StartInfo = excelInfo;
excel.Start();
excel.WaitForExit(); // ここでInvalidOperationException

msdnなどを調べて上記のコードを書いてみたんですが、
これだと既にエクセルで何かのファイルを開いていたときに
最後の行でInvalidOperationExceptionが発生してしまいます。

自分の開きたいエクセルファイルが開いている間だけ、
プログラムを待機させる方法があれば教えてください。

551 :デフォルトの名無しさん:2008/09/29(月) 23:02:28
Excel.exeを別インスタンスで立ち上げる。COM Interopでもよい。

552 :デフォルトの名無しさん:2008/09/29(月) 23:26:36
>>551
すみません、別インスタンスで立ち上げるのってどうやるんですか?
Processクラスの中にはそれっぽいのは見つけられなかったんですが・・・

InteropもGoogleで検索していて何度か見かけたんですが、
ウィンドウハンドル?の取得方法が分からなくて挫折してしまいました。

どちらの方法でも構いませんので、もう少し詳しく教えていただけませんか?

553 :デフォルトの名無しさん:2008/09/29(月) 23:50:17
DDE使わないようにすればいい
(シェル関連付けのopenはデフォルトでDDE)

554 :デフォルトの名無しさん:2008/09/30(火) 00:07:13
>>553
すみません、「dde process open」「ddeとは」などで検索はしてみたのですが、
どうやるのか分かりませんでした。

また明日検索してみます。
ありがとうございました。

555 :デフォルトの名無しさん:2008/09/30(火) 15:03:06
おまえ検索馬鹿か?
ProcessとProcessStartInfoのドキュメント読め

556 :デフォルトの名無しさん:2008/09/30(火) 15:09:30
>>550をみるかぎり、COM Interopがベストだとは思うがな。

557 :デフォルトの名無しさん:2008/09/30(火) 18:01:42
ツリー状のコレクションはないの?

558 :デフォルトの名無しさん:2008/09/30(火) 18:12:00
System.Collections.Generic.TreeSet<T>をリフレクションで

559 :デフォルトの名無しさん:2008/09/30(火) 18:30:21
それは作れなかったよ

560 :デフォルトの名無しさん:2008/09/30(火) 18:40:30
リストとかから削除されるとDispose()かける方法はないですか?

561 :デフォルトの名無しさん:2008/09/30(火) 18:43:46
System.Collections.ObjectModel.Collection<T>から派生して
RemoveItemやSetItemやClearItemsをオーバーライド

562 :デフォルトの名無しさん:2008/09/30(火) 20:34:42
>>557
書き捨てコードならListから派生させれば十分かな。
これでツリーの代わりになる。

public class Node<T> : List<Node<T>>
{
  public T Value;
}


563 :デフォルトの名無しさん:2008/09/30(火) 20:59:09
>>559
「リフレクションで」

564 :デフォルトの名無しさん:2008/09/30(火) 22:50:14
>>556
すみません、COM Interopを使用する場合って具体的にどうすればいいんですか?

565 :デフォルトの名無しさん:2008/09/30(火) 22:56:19
ググればいいんです

566 :デフォルトの名無しさん:2008/09/30(火) 22:57:59
参照の追加で希望のCOMオブジェクトを選ぶ

567 :デフォルトの名無しさん:2008/10/01(水) 00:05:01
>>550
ShellExecute() 相当で開くんじゃなくて、Excel のフルパスを
指定して CreateProcess() 相当で開いたらどうだろ?

568 :デフォルトの名無しさん:2008/10/01(水) 02:29:46
面倒なだけだろ

569 :デフォルトの名無しさん:2008/10/01(水) 09:50:08
C#の正規表現とPerlの正規表現の違いはどこが挙げられるでしょうか?
また、それらを変換するしくみとはないでしょうか?

570 :デフォルトの名無しさん:2008/10/01(水) 09:50:47
× しくみとは
○ 仕組みが

571 :デフォルトの名無しさん:2008/10/01(水) 13:37:56
正規表現つかって変換

572 :デフォルトの名無しさん:2008/10/01(水) 18:28:16
はじめましてC#超初心者です
解説本を読む前に質問してます

class1.csってところを下記の様にしたんですけど
エラーになります
どうすればいいですか
Winsockで接続するテストです
何をどうしたらいいのかわかりません
よろしくお願いします
動くように書換えお願いします


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace winsock_tes
{
public class Class1
{string url = "http://www.yahoo.co.jp/";
System.Net.WebClient wc = new System.Net.WebClient();
wc.Encoding = System.Text.Encoding.GetEncoding(51932);
string src = wc.DownloadString(url);
wc.Dispose();
}
}


573 :デフォルトの名無しさん:2008/10/01(水) 18:30:30
うん、じゃあ本読め

574 :デフォルトの名無しさん:2008/10/01(水) 18:31:30
ふらっとC#,C♯,C#(初心者用) Part31
http://pc11.2ch.net/test/read.cgi/tech/1222659587/

575 :デフォルトの名無しさん:2008/10/01(水) 19:00:54
>>574
ありがと

576 :デフォルトの名無しさん:2008/10/01(水) 19:46:15
>>572
マルチ市ねカス

577 :デフォルトの名無しさん:2008/10/01(水) 19:49:23
>>576
流れも読めないのに変なレスつけんなボケ
どう見ても>>574さんはこっちで聞けばいいよって教えてくれているって感じだよね
それに対して>>575でお礼を言ったんだから
>>574に聞きに行くんだろなあって想像できませんか
はげ

578 :デフォルトの名無しさん:2008/10/01(水) 19:51:01
マルチキャストで問い合わせたほうが効率がいい

579 :デフォルトの名無しさん:2008/10/01(水) 19:54:14
やっぱりシングルトンがいいん

580 :デフォルトの名無しさん:2008/10/01(水) 22:42:11
>>565
うーん、「Com interop 開く」とか「Excel ウィンドウハンドル」とかでGoogleってるんですけど、
未だにわかりません。
何で検索すれば出てきますか?

581 :580:2008/10/01(水) 22:49:39
すみません。自己解決しますた。

582 :デフォルトの名無しさん:2008/10/01(水) 23:09:06
Listは継承しちゃだめよん

583 :デフォルトの名無しさん:2008/10/01(水) 23:12:44
internalかprivateなクラスならガイドライン的には問題ないはず

584 :デフォルトの名無しさん:2008/10/02(木) 00:03:50
今、計算結果キャッシュをするクラスを作っているのですが
ゴミ掃除をガベージコレクトのタイミングに合わせて実行したいと思っています
ガベージコレクタのコレクトタイミングを取得したいと思ったのですが、GCクラスにはそれらしいイベントはなさそうです
何か良い方法等ありますでしょうか?

585 :デフォルトの名無しさん:2008/10/02(木) 00:05:46
GC動くのは時限式じゃないぞ。
GCとタイミング合わせるってのがそもそも変。

586 :デフォルトの名無しさん:2008/10/02(木) 00:05:49
WeakReferenceを使ってGCに対応したキャッシュにするのが正攻法

587 :デフォルトの名無しさん:2008/10/02(木) 00:09:11
計算結果って単なるintやdoubleの数値なの?
それくらいならキャッシュのサイズを固定して溢れたら古いのを捨てる方がいいんじゃね

588 :デフォルトの名無しさん:2008/10/02(木) 00:09:56
WeakReference は使っています
class Element<T>
{
 public WeakReference Data;
 public Element Next;
 public Element(T data) { Data = new WeakReference(data); Next = null; }
}
で、このElementはリンクリストになっていて管理されているのですが、このノードがゴミなのです。
メモリーが不足してきたら、全ノードを探っていってもはや使われていないWeakReferenceを持つノードを全部削除してしまおうと思っています。
WeakReferenceで大半のゴミはなんとかなるのですが、ノードゴミも削除したいと思っているのです。


589 :デフォルトの名無しさん:2008/10/02(木) 00:13:38
System::Collections::ObjectModel::Collection<T>ってのがあるな

590 :デフォルトの名無しさん:2008/10/02(木) 00:15:38
>>584
GCタイミングの取得は.NET 3.5 SP1で追加された。
ttp://msdn.microsoft.com/ja-jp/library/cc713687.aspx

591 :デフォルトの名無しさん:2008/10/02(木) 00:18:21
>>589

                l三`ー 、_;:;:;:;:;:;:j;:;:;:;:;:;:_;:;:;_;:-三三三三三l
               l三  r=ミ''‐--‐';二,_ ̄    ,三三三彡彡l_   この感じ・・・・
              lミ′   ̄    ー-'"    '=ミニ彡彡/‐、ヽ
                  l;l  ,_-‐ 、    __,,.. - 、       彡彡彳、.//  異教徒か・・・・
_______∧,、_‖ `之ヽ、, i l´ _,ィ辷ァ-、、   彡彡'r ノ/_ ______
 ̄ ̄ ̄ ̄ ̄ ̄ ̄'`'` ̄ 1     ̄フ/l l::. ヽこ~ ̄     彡彳~´/  ̄ ̄ ̄ ̄ ̄ ̄


592 :デフォルトの名無しさん:2008/10/02(木) 00:24:26
>>589
C++なんか捨てるんだ!

593 :デフォルトの名無しさん:2008/10/02(木) 00:25:57
>>588
リンクリストはLinkedList<T>使いなよ

594 :デフォルトの名無しさん:2008/10/02(木) 00:47:16
>>590
2008はそのうち入れようと思っていましたが・・・
それでもスレッド使わないと駄目っぽいですね、一応スレッドセーフには作ってあるのですが
シングルトンであるこのクラスにスレッドを使うと、監視スレッドを停止させるタイミングがウインドウのcloseイベント等から取得などとなって汎用性がものすごく厳しいです。
別の方策を考えてみます・・・

595 :デフォルトの名無しさん:2008/10/02(木) 00:54:14
こういうのってデストラクタ使えばいけるのかな?
よくわからナス

596 :デフォルトの名無しさん:2008/10/02(木) 00:57:24
子プロセスでメモリクリーナー使えばいいんじゃね?

597 :デフォルトの名無しさん:2008/10/02(木) 04:26:36
こんな感じかね

class AutoDeletedListItem<T> {
  private class AutoDeletedListItemValue {
    public AutoDeletedListItemValue(T value) { this.Value = value; }
    ~AutoDeletedListItemValue() { if(Finalized != null) Finalized(this, EventArgs.Empty); }
    public T Value { get; private set; }
    public event EventHandler Finalized;
  }

  private WeakReference valueRef;
  public AutoDeletedListItem(List<AutoDeletedListItem<T>> owner, T value) {
    var itemVal = new AutoDeletedListItemValue(value);
    itemVal.Finalized += (sender, e) => { this.Owner.Remove(this); };
    this.Owner = owner;
    this.valueRef = new WeakReference(itemVal);
  }
  public T Value { get { return ((AutoDeletedListItemValue)this.valueRef.Target).Value; } }
  public List<AutoDeletedListItem<T>> Owner { get; private set; }
}

--------
// List<AutoDeletedListItem<T>> list;
// T value1, value2;
list.Add(new AutoDeletedListItem<T>(list, value1));
list.Add(new AutoDeletedListItem<T>(list, value2));


598 :デフォルトの名無しさん:2008/10/02(木) 09:50:29
すいません、質問です。
「main関数を持つクラス内全域」で有効なインスタンスを宣言すること、は可能でしょうか?

class A:main+他を宣言。
    class Bのインスタンスをどっかで生成する。←これをこのクラス内の各所から直接アクセスしたい。
class B:メンバ+メソッドを宣言

説明が分かり難くて申し訳ないっす。(´Д`;

599 :デフォルトの名無しさん:2008/10/02(木) 10:31:55
AのフィールドにBのインスタンスを入れればいいだけ
Aをインスタンス化したくないならstaticフィールドに入れる

600 :デフォルトの名無しさん:2008/10/02(木) 11:21:41
>>599
それをやってみたんですが、
Bのメソッドを呼び出すところでコンパイルエラーがでてしまって。

error CS0118: 'A.b' は 'フィールド' を意味しますが、 'クラス' でなければなりません。
と言われます。orz
AフィールドでBをインスタンス化してますが、A自体をインスタンス化してないからでしょうか・・・。
が、main内でAのインスタンス化をしても全域有効にはならず。orzorz

601 :デフォルトの名無しさん:2008/10/02(木) 11:25:52
static class A {
 static B b;
 static void Main() {
  b = new B();
  処理1();
  処理2();
 }
 static void 処理1() { b.Hoge(); }
 static void 処理2() { b.Foo = "あいうえお"; }
}

602 :デフォルトの名無しさん:2008/10/02(木) 13:06:29
>>601
おぉ。直接はいきませんでしたが、1行目の
static class A

class A
にしたらいきました。

Bのインスタンスをstatic宣言するのがポイントだったんですね。

ありがとうございました。

603 :デフォルトの名無しさん:2008/10/02(木) 13:23:43
なんでstaticフィールド変数をstaticメソッドからしか扱えないわけ?

604 :デフォルトの名無しさん:2008/10/02(木) 13:56:12
>>603
は?

605 :デフォルトの名無しさん:2008/10/02(木) 13:57:13
インスタンスメソッドからでも扱えるはずだ

606 :デフォルトの名無しさん:2008/10/02(木) 14:00:27
>>605
クラス内部での話

607 :デフォルトの名無しさん:2008/10/02(木) 14:01:03
>>606
は?

608 :デフォルトの名無しさん:2008/10/02(木) 14:02:24
クラス内部だろうとどこだろうと
staticフィールドはインスタンスメソッドから扱える

609 :デフォルトの名無しさん:2008/10/02(木) 14:15:53
private static int a;

private void b()
{
this.a=1;
}
ができるとでも?

610 :デフォルトの名無しさん:2008/10/02(木) 14:18:50
無条件にthisをつける派の人だったのか

611 :デフォルトの名無しさん:2008/10/02(木) 14:20:10
thisはここって意味じゃなくて自分自身のインスタンスって意味
staticにインスタンスは関係ないからその記述は無効

612 :デフォルトの名無しさん:2008/10/02(木) 14:25:21
ASP.NETで、ListViewコントロールを使ったときに、
連続するRowのあるセルを縦に結合することは可能でしょうか?
GridViewだと可能らしいことはググって発見できるのですが‥‥。


613 :デフォルトの名無しさん:2008/10/02(木) 14:39:26
継承を必要としないならstaticクラスでもいいんだよね?
ということはほとんどの場合staticになるんじゃない?

614 :デフォルトの名無しさん:2008/10/02(木) 14:41:28
>>609
釣りじゃなくて天然だったのかw

class MyClass
static int a;

void b(){
MyClass.a=1; //このときMyClass内部にある静的メンバであるため、普通にa=1としても当然良い
}

オブジェクト指向が全く分かってねえな。
C#入門からやり直し。

615 :デフォルトの名無しさん:2008/10/02(木) 14:42:22
>>613
いいえ。
いいえ。

最近アホが多すぎだわな。

616 :デフォルトの名無しさん:2008/10/02(木) 14:47:06
ローカル変数やグローバル変数、static変数など全部自動で色分けしてくれよな
32bitフルカラーという高性能マシンの能力を全然引き出してない

617 :614:2008/10/02(木) 14:47:22
ちょっと訂正。

class MyClass
{
public static int a;

void b(){
MyClass.a=1; //このときMyClass内部にある静的メンバであるため、普通にa=1としても当然良い
}
}

aがPublicじゃないとするとなんかコメントの意味合いがなくなってしまうな。
これだと実感しやすいか。



618 :デフォルトの名無しさん:2008/10/02(木) 14:48:24
>>615
その答えを導き出した根拠を具体的に述べよ

619 :デフォルトの名無しさん:2008/10/02(木) 15:03:17
>>618
ttp://ufcpp.net/study/csharp/oo_static.html#class
自分で調べることもできないカスにはプログラミングは難しい。

アホにも分かるように説明すると、

static class MyClass
{
public static string 性, 名, 住所, 電話番号;
}

継承の必要がないのでstaticなクラスにしてみたが、
100人分の電話帳を作りたいのだが、そもそもMyClassインスタンスが作れないので無理。
staticなクラスということは電話帳というよりも、ある特定の人の情報を格納するクラスということになる。
つまりこの場合、クラス名はMyClassではなくMyHoneyとでもすべき・・・というのは冗談だ。


620 :デフォルトの名無しさん:2008/10/02(木) 15:12:14
ハニーのためなら何でもしちゃう

621 :612:2008/10/02(木) 15:21:34
みんな、まったりいこうよ。

622 :デフォルトの名無しさん:2008/10/02(木) 17:46:34
すいません、質問です。
数値の2.5を時間の2:30と表示するにはどうすればいいですか?

623 :デフォルトの名無しさん:2008/10/02(木) 17:53:27
2.51はどう表示してほしいですか?

624 :デフォルトの名無しさん:2008/10/02(木) 17:56:57
そんなことは聞いてません
数値の2.5を時間の2:30と表示しさえすればいいんです

625 :デフォルトの名無しさん:2008/10/02(木) 17:57:14
>>622
とりあえず思いついたまま書くとこうかな。

double value = 2.5;
int hour = (int)value;
int minute = (int)((value - hour) * 60);

string str = string.Format("{0}:{1}", hour, minute);

626 :デフォルトの名無しさん:2008/10/02(木) 17:58:38
if (value == 2.5) {
    return "2:30"
}
これで良いんじゃね?

627 :デフォルトの名無しさん:2008/10/02(木) 18:01:50
60倍して60で割った数(整数)と余りを出すとか。

628 :デフォルトの名無しさん:2008/10/02(木) 18:10:04
>>619
わざわざ得意例を出すなよ
データセットをstaticにするわけないだろ
そもそも、そういう場合クラスを使う必要すらない

通常のクラス運営をする場合staticでもいけるだろうと言っているんだがな

>>619のクラスを利用する場合
static class library
{
 static List<MyClass> myClass;
 static メソッド();
 static メソッド();
 static メソッド();
}
でもいけるだろといってるんだよ

629 :デフォルトの名無しさん:2008/10/02(木) 18:11:38
特異って1個でも例があったら理由になるでしょ

630 :デフォルトの名無しさん:2008/10/02(木) 18:13:50
通常のクラス運営って何なんだろ

631 :デフォルトの名無しさん:2008/10/02(木) 18:19:00
>>628
通常のクラス運営って何?

なんかどうみてもOOPが全く分かっていないようにしか見えんのだが。

static class library
{
 static List<MyClass> myClass;
 static メソッド();
 static メソッド();
 static メソッド();
}

んでMyClassはクラスじゃなくて構造体にするってか。
それなんてC言語?
わざわざオブジェクト指向言語使ってそんな設計する奴いねーよ

632 :631:2008/10/02(木) 18:20:06
>>630
かぶったw

633 :デフォルトの名無しさん:2008/10/02(木) 18:21:21
>>628
継承の話はどこへいった?

634 :625:2008/10/02(木) 18:25:31
>>627
どうみてもそっちのがスマートだなw
負けました。

double value = 2.5;
int hour, minute;
hour = Math.DivRem((int)(value * 60), 60, out minute);

string str = string.Format("{0}:{1}", hour, minute);

635 :631:2008/10/02(木) 18:28:58
>>633
多分TextBoxクラスとかButtonクラスがstatic classじゃないだろうがという反論を押さえる為に、
そういうトンチンカンな事を言い出したんだと思う。

636 :デフォルトの名無しさん:2008/10/02(木) 20:01:52
>624と返しているところを見ると、
>626が一番スマートなのは間違いないように思える件w
みんな優しいなw。

637 :デフォルトの名無しさん:2008/10/02(木) 21:01:28
Console.WriteLine("{0}:{1}",(int)2.5,(2.5-(int)2.5)*60);

638 :デフォルトの名無しさん:2008/10/02(木) 21:01:40
>>581
これ誰?
>>580解決していないんで、分かる方居れば教えてください。

639 :デフォルトの名無しさん:2008/10/02(木) 21:22:36
const string 2.5="2.30";

640 :デフォルトの名無しさん:2008/10/02(木) 21:33:45
switch(value){
case 2.5: return "2:30";
default: return "そんなことは聞いてません";
}

641 :デフォルトの名無しさん:2008/10/02(木) 21:44:48
>>640
wwwwwwwwwwwwwwwwww

642 :デフォルトの名無しさん:2008/10/02(木) 21:48:06
>>640
コーヒー吹いたwww

643 :デフォルトの名無しさん:2008/10/02(木) 22:17:07
>>638
excel interop C#でググるとか

とりあえずこういうとことか
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html

644 :622:2008/10/02(木) 22:38:41
>>625
>>627
>>634
>>637
ありがとうございました。

645 :デフォルトの名無しさん:2008/10/02(木) 22:44:25
>>644
死ね

646 :デフォルトの名無しさん:2008/10/02(木) 22:59:47
>>643
そういうところは読んだのですが、
どうすれば終了まで待てるのかが分かりません。
>>550ででのエラーはレジストリの値からexcel.exeを新しく起動することで一応起こらなくなりましたが、
中のxlsファイルだけ閉じてもエクセル本体を閉じないかぎりProcess終了になりません。
こういうプログラミングをしたことある人が居れば教えてください。

647 :622:2008/10/02(木) 23:00:40
          トイ
          トイ
          トイ
         i三i
        〃   ヾ、
       〃      ヾ、
     〃         ヾ、
   〃    ____    ヾ、
  〃   /      \   ヾ、
 ||   /  _ノ  ヽ、_  \  ||
 || /  o゚⌒   ⌒゚o  \ ||
  ヾ,|     (__人__)    |//
.  (⌒)、_   ` ⌒´     _,(⌒)
  / i `ー=======一'i ヽ
 l___ノ,、          ,、ヽ___i
    l           l

648 :デフォルトの名無しさん:2008/10/02(木) 23:17:37
>>646
マクロの WorkBook_Close に引っかけるか。

ファイルハンドルなりを使って、開いているファイルを監視するか。
どちらにせよ、一筋縄じゃ行かない、ってことだわな。

649 :デフォルトの名無しさん:2008/10/03(金) 00:27:39
ググって解決しなかったら急に弱気になる最近のSEって…


650 :デフォルトの名無しさん:2008/10/03(金) 00:53:06
30越えてPEって・・・・

651 :デフォルトの名無しさん:2008/10/03(金) 10:09:34
>>646
プロセスの終了は自分で起動したときのようにハンドル取ればどうにでもなるだろう。
どんなやり方でも、1から順番に教わらないと何もできないんじゃキミには無理。

652 :デフォルトの名無しさん:2008/10/04(土) 13:00:46
DataGridViewでDataSourceをList<T>などにしたときに、
ちょうどListViewのDetailモードのように、要素数にかかわらず(たとえ0でも)
クライアント領域いっぱいにグリッドを表示しておくことってできない?

653 :デフォルトの名無しさん:2008/10/04(土) 13:31:14
>>652
無理。糞仕様なので諦めろ

654 :デフォルトの名無しさん:2008/10/04(土) 18:59:42
なんでSystem.Collections.Generic.TreeSetは封印されてるの?

655 :デフォルトの名無しさん:2008/10/04(土) 19:20:28
listviewにrtf書式を表現できないものでしょうか。
Textに対して、一部ボールドとかやりたいのですが。

656 :デフォルトの名無しさん:2008/10/04(土) 19:31:56
オーナードロー
ただしRTFは自前で解析

WPFならすっげー楽だな

657 :デフォルトの名無しさん:2008/10/04(土) 19:41:35
>>653
左様か。

しかし、「諦めろ」ってなんだよその口調w
君って日常生活で余程人に抑圧されてるんだろうねきっと。

658 :デフォルトの名無しさん:2008/10/04(土) 19:49:59
>>657
質問者という立場を弁えろ
警護も使えないカスに答える義理はない

659 :デフォルトの名無しさん:2008/10/04(土) 19:53:07
>>658
警備員でもやってろwwwカスwww

660 :デフォルトの名無しさん:2008/10/04(土) 20:17:02
謙虚であるべきではあるが、回答者が上から目線というのもいかがか。

661 :デフォルトの名無しさん:2008/10/04(土) 20:18:58
>>659
警護使える立場だから、相当なお偉いさんじゃないか?

662 :デフォルトの名無しさん:2008/10/04(土) 20:19:50
>>658
なんだこのクズ
お前出入り禁止
ここの解答者しなくていいから来るな

663 :デフォルトの名無しさん:2008/10/04(土) 20:31:49
どこの掲示板から大量流入してきたの?

664 :デフォルトの名無しさん:2008/10/04(土) 20:33:45
>>660
IDのない板だからね。訳の分からない奴は質問者本人じゃないと
見なしてスルーでいいよ。あとから本当に質問者本人だと分かって
びっくりすることもあるけど。

665 :デフォルトの名無しさん:2008/10/04(土) 21:07:19
2chでいちいち言葉遣いにつっかかる奴ってなんなの?小学生なの?

666 :デフォルトの名無しさん:2008/10/04(土) 21:08:17
辞書引かないだけましだ

667 :デフォルトの名無しさん:2008/10/04(土) 21:20:04
>>664
と質問者が言っております

668 :デフォルトの名無しさん:2008/10/04(土) 21:45:07
>>652
無理。糞仕様なのであきらめろん

669 :デフォルトの名無しさん:2008/10/04(土) 22:19:37
>>654
System.Windows.Forms.TreeNodeCollection

670 :デフォルトの名無しさん:2008/10/04(土) 22:38:36
ツリーリストの代用にならんだろそれは…

671 :デフォルトの名無しさん:2008/10/04(土) 22:42:06
XML

672 :デフォルトの名無しさん:2008/10/04(土) 23:01:30
重い

673 :デフォルトの名無しさん:2008/10/04(土) 23:38:24
エクスプローラの左側のフォルダツリーを表示してくれるコントロール無いのかな?
自分でシェルAPI叩いて実装しなきゃダメ?

674 :デフォルトの名無しさん:2008/10/04(土) 23:49:21
codeprojectとか探せば見つかりそうな気もする

675 :デフォルトの名無しさん:2008/10/05(日) 01:01:19
Threadについて質問です。

WPFを用いて、プログレスバーを用意し、ファイルを開く(読み込む)間にその進捗状況を表示したいと思っています。
ただ、ファイルを開く処理が重いため、別のスレッドにしてDispatcher.Invokeを用いてプログレスバーの更新を行っています。

そこで一つ質問なのですが、もし、このプログレスバーを表示しているウインドウを閉じた場合、スレッドは動き続けるのでしょうか。
また、もし動き続ける場合には、Dispathcer.Invokeメソッドによって(すでにウインドウが閉じられているため、)参照なしのプログレスバーを操作しないようにするにはどうしたらいいでしょうか。

よろしくお願いいたします。

676 :デフォルトの名無しさん:2008/10/05(日) 01:09:16
別にやらせときゃいいと思うけど

677 :675:2008/10/05(日) 01:55:39
>>676
その場合、Invoke処理に関しては例外で回避ということになるのでしょうか?

678 :デフォルトの名無しさん:2008/10/05(日) 03:05:13
>>673
ListViewのTreeNodeをDriveInfo,DirectoryInfo,FileSystemInfoを使って自分で構築する
先月作った私の初めてのC#プログラム
簡単で楽しかったですよ

679 :デフォルトの名無しさん:2008/10/05(日) 03:41:43
>>656
thx:)
やっぱ、オーナードローか。
MeasureStringの結果がフォントによって綺麗じゃないので困ったなー。
一旦RitchTextBoxに流し込んでビットマップをDrawImageで描くのかな。

WPFはぜんぜん勉強してないわ。

680 :デフォルトの名無しさん:2008/10/05(日) 09:14:10
>>654
リフレクション使って、TreeSetのすべてのメンバをデリゲートでバイパスする
アダプタクラスを作ればいいんじゃね

681 :デフォルトの名無しさん:2008/10/05(日) 13:26:09
>>679
別にいちゃもんつけるわけじゃなくて純粋に聞きたいんだけど、

>MeasureStringの結果がフォントによって綺麗じゃない
これってどういう意味?

682 :デフォルトの名無しさん:2008/10/05(日) 16:06:33
>>677
普通にやってればInvokeの呼び出し自体では例外出ないはずだけど?

683 :デフォルトの名無しさん:2008/10/05(日) 16:13:59
>>681
ども。
プロポーショナルフォントとかだと、
MeasureStringの戻り値(PointF)の精度が、あまりよくない気がするんです。
↓を試したんだけど、
@RitchTextBoxにrtf書式で(複数フォントを)Appendしたとき
A単純に平文(単一フォント)をListViewのtextにsetしたとき
BDrawString+MeasureStringを繰り返してListViewに描画したとき

Bのとき、DrawStringの度に字間が空いたり、くっついたりして、
最終的に描画される文字列が@に比べて美しくない(と思う。)

684 :デフォルトの名無しさん:2008/10/05(日) 16:19:43
>>654
そもそもそんなものないぞ。

685 :デフォルトの名無しさん:2008/10/05(日) 16:57:35
>>683
あーなるほどそういう意味か。
でもそれってMSDNにも書いてある現象だし、一応解説のところに回避方法も書いてあるね。

まあMSDNに書いてある通りの方法で本当に望みどおりの結果が得られるかどうかは
申し訳ないけど知らないけど。

686 :デフォルトの名無しさん:2008/10/05(日) 17:22:21
ネットへのデータ送受信についての質問です。

ネットへのデータ累積送信量(MB)と累積受信量(MB)を表示したいんだけどどうしたらいいかわかりません
どなたかお願いします

687 :デフォルトの名無しさん:2008/10/05(日) 17:26:16
送受信した量を覚えておけばいいだけだと思うけど、そういうことじゃないんだろうな

688 :デフォルトの名無しさん:2008/10/05(日) 17:30:06
ブラウザや他のアプリケーションでのデータのダウンロードなど全て含めてです

689 :デフォルトの名無しさん:2008/10/05(日) 17:30:43
>>686
iphelper にそんな API があったような希ガス

690 :デフォルトの名無しさん:2008/10/05(日) 17:41:08
>>684
C++/CLIで見るとなんか宣言はされてるっぽい
使えないけど

691 :デフォルトの名無しさん:2008/10/05(日) 17:41:41
>>689
お見事
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200509/05090027.txt

692 :デフォルトの名無しさん:2008/10/05(日) 19:44:37
>>685
うん。「解説」のところね。
私もそこまでは試してないw
RitchTextBoxのAppendTextメソッドの内部実装はちゃんとしてるんだろうなぁ。

ListBox.Items[0].AppentText(string, Font, Brush);
こんなのがほしいなぁw

693 :デフォルトの名無しさん:2008/10/05(日) 19:57:05
> RitchTextBoxのAppendTextメソッドの内部実装はちゃんとしてるんだろうなぁ。
RichEdit丸投げなのでそもそもGDI+使ってない

694 :デフォルトの名無しさん:2008/10/05(日) 19:59:25
ListBox の Item にひとつひとつ RichEdit を貼り付けて(ry

695 :デフォルトの名無しさん:2008/10/05(日) 20:35:50
>>690
ググってもこのスレしか出てこないんだが

696 :デフォルトの名無しさん:2008/10/05(日) 23:22:19
そりゃinternalだからな

697 :デフォルトの名無しさん:2008/10/05(日) 23:23:25
why?

698 :デフォルトの名無しさん:2008/10/06(月) 00:21:47
public=世界
internal=日本
private=代々木公園

699 :デフォルトの名無しさん:2008/10/06(月) 00:40:29
>private=代々木公園
ww

700 :デフォルトの名無しさん:2008/10/06(月) 10:30:21
ワシントンハイツか

701 :デフォルトの名無しさん:2008/10/09(木) 00:50:09
画像処理関連で連続画像として物体を追跡するアルゴリズムを考えてるのですが
どのようなアルゴリズムがありますか?

702 :デフォルトの名無しさん:2008/10/09(木) 00:54:39
物体だけが動くのかによって難易度が極端に違うな。
その手の研究は、高速道路で速度違反とりしまるやつ
とかライン工場で、部品ながれてるのがきたのか、おわった
のか判定するやつ
簡単なやつなら、最小エントロピー法とか。

703 :デフォルトの名無しさん:2008/10/09(木) 00:56:07
ごめん、おれのもってるプログラムは、最大エントロピー法だった。
ぐだぐだアルゴリズムなんていきなり検索せずに
ビットマップを時系列にもって自分で解析するほうが楽だぞ。

704 :デフォルトの名無しさん:2008/10/09(木) 00:58:11
おれの隣の人がつくったやつで人追跡プログラムってのもあったきがする
人とみなす定義を最初にきめてもらって(追跡したい物体ね)
画像でその人と判定する部分を連続性を仮定して追跡していくやつ。
ま、発想は簡単だろ。あとは実装しながらおもいつくとおもうよ。

705 :デフォルトの名無しさん:2008/10/09(木) 03:37:18
C++は長いんですけどC#は全然ダメな私に教えてください。
参照渡しの関数を作りたいんです。
aとbをもらって結果をansに入れて返します。以下のように書きました。
protected void foo(int a, int b, ref int ans)
{
ans = a + b;
}

呼び出すときにfoo(1, 2, ref ans);って呼び出すわけですが、なぜrefってつけないといけないのでしょう?
だってプロトタイプで第三引数は参照になっているわけだからコンパイラは参照型であることが分かると思うのですが。。
愚問かな?なんか理由があるなら知っておきたいです。


706 :デフォルトの名無しさん:2008/10/09(木) 03:59:12
>>705
プログラマが誤って値渡しのつもりで参照渡しを使うのを防ぐためじゃない?
関係ないけどその例だと ref より out の方が適切だと思う。

707 :デフォルトの名無しさん:2008/10/09(木) 04:24:46
>>706
ありがとうございます。
了解いたしました。


708 :デフォルトの名無しさん:2008/10/10(金) 19:16:26
以下のようなバグが出ました
>System.Runtime.Serialization.SerializationException はハンドルされませんでした。
> Message="空のストリームを逆シリアル化しようとしています。"

空のストリームを逆シリアル化できる方法を教えてください

709 :デフォルトの名無しさん:2008/10/10(金) 19:18:51
できないから諦めろ

でなきゃもっとまともに質問しろ

710 :デフォルトの名無しさん:2008/10/10(金) 19:32:59
わかりました
書きなおしますね

System.Runtime.Serialization.SerializationException はハンドルしつつ、
空のストリームを逆シリアル化できる方法を教えてください

711 :デフォルトの名無しさん:2008/10/10(金) 20:05:07
空なのにどうしろと

712 :デフォルトの名無しさん:2008/10/10(金) 20:09:36
キーボードカスタマイズを実装するとしたら、どうするのが良いでしょうか?
グローバルなキー割り当て(MenuItemに設定出来る)については
[機能名:MenuItem:関数:ショートカットキー]
のセットを作れば、作れそうです。

しかし、各コントロールごとのキー割り当ては大変そうです。
イベントハンドラに全キーのcase文を書いて
押されたキーを上記セットから検索し、機能があれば実行、みたいな感じで
いけますかね?
(しかし、考えるだけでも大変そうだ・・)

イベントハンドラはKeyPress,KeyDown,KeyUp3つもある上、
例えばツリービューだとCtrl+Vを押すと音が鳴るのを防ぐために
KeyPressでhandledプロパティをtrueにするなどの個別の処理があったりするし
実装されている方はどんな感じでやっていらっしゃるんでしょうか?

713 :デフォルトの名無しさん:2008/10/10(金) 20:14:13
>>712
フック

714 :デフォルトの名無しさん:2008/10/10(金) 20:15:37
WPFでアクションバインディング

715 :デフォルトの名無しさん:2008/10/10(金) 20:15:57
フックか、調べてみます。thx

716 :デフォルトの名無しさん:2008/10/10(金) 20:22:27
ProcessCmdKeyで入力全部のっとるって手も

717 :デフォルトの名無しさん:2008/10/11(土) 02:02:00
C#を使ってGUIプログラミングしてるんですが、RADで使えるコントロールがなかなか使いにくくて困っています。
だれか先達が既存のコントロールを改良したものを公開してないかググってみたのですが、見つかりませんでした。
昔、海外のサイトで改良されたコントロールが公開されているのを見かけたのですが、ブックマークし忘れ、
どこのページだかわからなくなってしまいました。
日本/英語圏どっちでもいいので、自作のコントロールを公開しているようなサイトはありませんでしょうか?

718 :デフォルトの名無しさん:2008/10/11(土) 02:13:14
一生愚痴ってろクソが

719 :デフォルトの名無しさん:2008/10/11(土) 12:20:09
TreeViewでノードを選択すると、テキストが青くなり選択状態がはっきりわかりますが、
TreeViewからフォーカスを離れると(ex:テキストボックスにフォーカスを移す)、
ノードの色が元に戻り、どのノードを選択していたのかさっぱりわからなくなります。
これを、エクスプローラのツリーみたいにフォーカスが離れた後、ノードが灰色になるようにしたいのですが、
どうすればこのようにできるんでしょうか?
プロパティなどで簡単にできそうな気もしたのですが、MSDNを探してもググっても見つかりませんでした。

720 :デフォルトの名無しさん:2008/10/11(土) 12:29:16
TVS_SHOWSELALWAYS スタイルか、何でないんだろう。

721 :デフォルトの名無しさん:2008/10/11(土) 12:43:23
>>719
TreeView.HideSelection プロパティ
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.treeview.hideselection(VS.80).aspx

722 :デフォルトの名無しさん:2008/10/11(土) 12:54:34
スタイルの名前と逆なのねw

723 :719:2008/10/11(土) 13:36:16
>>721
ありがとうございます。
プロパティは一応すべて目を通したつもりだったんですが、見逃してたようです。助かりました。

724 :デフォルトの名無しさん:2008/10/11(土) 13:51:03
DataTable が

 顔写真 typeof(Image),
 名前   typeof(string),
 電話1 typeof(string),
 電話2 typeof(string),
 電話3 typeof(string),

で、DataGridViewの行には下みたいな感じで表示したいんだけど無理かな。

 1列目 2列目   3列目
┌──┬───┬─────────────┐
│   │    │ TEL 1               │
│   │    ├─────────────┤
│ img │name │ TEL 2               │
│   │    ├─────────────┤
│   │    │ TEL 3               │
└──┴───┴─────────────┘

今しようとしているのは、DataTableに行が追加されたときに、
DataGridViewの3列目にTableLayoutPanelを・・・とか考えてるんだけど・・

今までは、DataTableに行突っ込めば、
自動的にDataGridViewに反映されてたけど、
その動作をカスタマイズしたいときどうすればよいかわからないっす。

基本的な質問かもしれないけど、ヒントプリーズ。

725 :デフォルトの名無しさん:2008/10/11(土) 13:55:50
WPFでDataTemplate使えば超簡単

726 :デフォルトの名無しさん:2008/10/11(土) 13:59:47
DataGridViewはカスタムしようとするととたんに大変だからねー
ttp://msdn.microsoft.com/ja-jp/library/7fb61s43(VS.80).aspx
ttp://msdn.microsoft.com/ja-jp/library/7tas5c80(VS.80).aspx
まあMSDNはこの辺?

727 :デフォルトの名無しさん:2008/10/11(土) 14:19:54
>>725
WPFというのは知らなかった。
これ便利そうだね、ありがとう!

>>726
お、ありがとう。
ちとここを参考にやってみるよー

728 :デフォルトの名無しさん:2008/10/11(土) 14:28:15
WPFか〜、興味あるんだけど未だによく違いがわからない。
DirectXで描画するんだっけ?やってる人で違いとかWPF使ってるメリットとかあったら
ぜひおせーて。

729 :デフォルトの名無しさん:2008/10/11(土) 14:32:29
>>726
見てみたけど、表示させるのはやろうと思えばできそうだが、
編集(テキストボックスが3つあるような動作)も可能にしようとすると難しそうだ・・・(´Д`;

730 :724:2008/10/11(土) 14:47:52
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2723834&SiteID=7
ここにも有用な情報があった。
WPFとやらもあわせて、勉強してみまーす。
回答してくれた方々、ありがとー

731 :デフォルトの名無しさん:2008/10/11(土) 15:11:00
>>728
コントロールがすげー柔軟

732 :デフォルトの名無しさん:2008/10/11(土) 20:05:29
半透明のコントロールを作ったんだが
重ねると↓こうなってしまう。
http://www2.vipper.org/vip951616.png.html

ググってもできてる例が見当たらない。
もしかしてこういうのは全部独自で描画しないと無理?

733 :デフォルトの名無しさん:2008/10/11(土) 20:12:25
xpまでのWindowsならレイヤードウィンドウにしないと無理。

734 :デフォルトの名無しさん:2008/10/11(土) 20:20:13
>>733
ありがと

735 :デフォルトの名無しさん:2008/10/11(土) 20:25:24
WPFでアプリケーションを作っているのだが、Window1を閉じてもアプリケーション(デバッグ)が終了しない。
それで、調べてみると別のスレッドが待ち状態になっていて、それがずっと待っているためにデバッグが終了しないようなのだが、全部のスレッドを終了させるようなオプションは無いものでしょうか?

736 :デフォルトの名無しさん:2008/10/11(土) 21:49:41
あぷりけーしょん.いぐじっと()してるか?

737 :735:2008/10/11(土) 22:20:46
>>736
System.Windows.Forms.Application.Exit();
System.Windows.Forms.Application.ExitThread();
System.Windows.Application.Current.Shutdown(0);
などを試しているのですが、いまいちうまく動いてくれません。

Window1_Closing(object sender, System.ComponentModel.CancelEventArgs e)の中に書いているのがいけないかとも思いましたが、特に思い当たる節もないので…

738 :デフォルトの名無しさん:2008/10/11(土) 22:26:03
自分で起こしたスレッドが残ってるせいなんだったらWPF関係ないでしょ
作り方が悪い

739 :デフォルトの名無しさん:2008/10/11(土) 22:27:45
Dictionaryにキーを追加したら、
そろそろハッシュテーブルが増えそうってのを知ろ方法はない?

740 :デフォルトの名無しさん:2008/10/11(土) 22:30:46
次スレは C丼 も入れてくれ

741 :デフォルトの名無しさん:2008/10/11(土) 22:31:58
断る
氏ね

742 :デフォルトの名無しさん:2008/10/11(土) 22:32:31
>>739
I feel your love 〇〇〇〇〇〇〇〇〇〇 〜♪


743 :デフォルトの名無しさん:2008/10/11(土) 22:56:52
C#でOpenGLをつかうアプリを検討してます。ほかに移植するかもしれないのでDirectXは考えてません。
色々とラッパーがあるみたいで探してみたのですが、
CsGL:ttp://csgl.sourceforge.net/
Tao FrameWork:ttp://www.taoframework.com/
ヒスイ:ttp://www.quatouch.com/products/hisui/
とかありました。この中で試してみて気に入ったのをつかおうかと思うのですが、
ほかにいいのがあったら教えてください。
よろしくお願いします。


744 :デフォルトの名無しさん:2008/10/11(土) 23:04:32
>>743
http://www.opentk.com/

745 :デフォルトの名無しさん:2008/10/11(土) 23:32:47
>>739

buckets
entries
count
version
freeList
freeCount
comparer
keys
values
_syncRoot
m_siInfo

746 :デフォルトの名無しさん:2008/10/12(日) 00:38:47
val hoge = new Dictionary<T1, T2>(100000);
Type type = typeof(Dictionary<T1, T2>);
val buckets = type.InvokeMember("buckets",BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, hoge, null);

// buckets {Length=108631} int[]


747 :デフォルトの名無しさん:2008/10/12(日) 00:42:33
将来の実装変更で使えなくなっても文句は言えないよ

748 :デフォルトの名無しさん:2008/10/12(日) 01:03:34
>>746
それ確実にテーブルが広がる処理より重いから…

749 :デフォルトの名無しさん:2008/10/12(日) 01:05:09
テーブルが広がる処理って吐きそうになるほど重いだろ

750 :デフォルトの名無しさん:2008/10/12(日) 01:08:36
まあ>>746は最初だけ超重いけどあとは普通の変数としてアクセスできるからね
絶対やっちゃダメなのは確かだけどw

751 :デフォルトの名無しさん:2008/10/12(日) 02:10:48
VC# 2008 Express でSQL Server Compact使ったプログラムを作っています。

「新しい項目の追加」→「ローカルデータベース」でDB作成、テーブルスキーマ定義を行い、
テーブルの内容をDataGridViewで表示、編集できるところまで作ったのですが、
アプリを閉じる→アプリ再立ち上げすると編集した内容が消えてしまいます。
(というより、画面で編集してもDBの.sdfファイルに反映されていない感じ)

ちなみに基本的にIDEの画面のみで作っていて、まだ自分のコードは書いてない状態です。
アホな質問かもしれませんがお願いします。

752 :デフォルトの名無しさん:2008/10/12(日) 03:01:52
初心者スレ誰も立てないのか?

753 :デフォルトの名無しさん:2008/10/12(日) 03:08:33
常々思ってたんだが、同じようようなの2スレもいらないだろ

754 :デフォルトの名無しさん:2008/10/12(日) 03:14:54
こっち相手されなくて寂しかったの?

755 :デフォルトの名無しさん:2008/10/12(日) 08:14:59
初心者用のスレがないと、そのうちVBスレみたいになるのが
見えているので誰かよろ。うちは規制で無理だった。

756 :デフォルトの名無しさん:2008/10/12(日) 09:57:52
>>748
そもそも初期capaqcity決定するためのプロファインリグかなんかに使うんだろ

757 :デフォルトの名無しさん:2008/10/12(日) 10:48:05
ふらっと前スレ>>993がせっかく仕切ったのに
>>994みたいな事態を把握できない自称正義君のせいで
結局スレ立て出来なかったっていうオチ。
仕切ってる間に自分でやったらどうだ、とか無責任に言っちゃって重複スレが多数出来る現実も知らないんだろうね。

758 :デフォルトの名無しさん:2008/10/12(日) 11:42:05
>>757
お前馬鹿だろ。
っていうか、君本当にプログラマ?w

競合を無くす方法は一つじゃない。
少なくとも「偉そうな命令口調で誰かに責任を負わせる」ことは必要条件でもなんでもない。

具体的な一例は、例えば馬鹿な命令口調クン自身が時刻とともに「俺が立てる」
と宣言すれば現実解としては問題がないはずだ。

759 :デフォルトの名無しさん:2008/10/12(日) 12:55:51
>>758
いいからさっさと立てろ

760 :デフォルトの名無しさん:2008/10/12(日) 13:03:29
自分で立てろよ

761 :デフォルトの名無しさん:2008/10/12(日) 13:13:19
立てといたよ。
http://pc11.2ch.net/test/read.cgi/tech/1223777524/

762 :デフォルトの名無しさん:2008/10/12(日) 13:18:31
あなたに生きてる価値あるのかな・・・

763 :デフォルトの名無しさん:2008/10/12(日) 13:25:15
DataTable dt = new DataTable();
dt.Columns.Add("UNK", typeof(string));
dt.Columns.Add("CNK", typeof(string));
dt.Columns.Add("MNK", typeof(string));

ListBox.DataSource = dt;
DataRow dr = dt.NewRow();
dr["UNK"] = "良好";
dr["CHK"] = "16cm";
dr["MNK"] = "緩い";
dt.Rows.Add(dr);

という感じで、DataTableのCHKの値をListBoxに反映させようと考えています。
上のコードのままだと、ListBoxにはSystem.Data.DataRowView"と、いうタイプ名が出てきます。
そもそもどの列を反映させるか指定してないので当たり前かもしれませんが。
期待通りの動作にするためにはどうすればよいですか。

764 :デフォルトの名無しさん:2008/10/12(日) 14:09:29
DataSourceまで分かってんだったらまずヘルプでそれの解説見ろよ

765 :デフォルトの名無しさん:2008/10/12(日) 14:11:13
コンストラクタから別の引数のコンストラクタを呼ぶとクラスが消滅したですけど
そうなんですか?

766 :デフォルトの名無しさん:2008/10/12(日) 14:26:56
言ってる意味がわかりませんでしたですけど

767 :デフォルトの名無しさん:2008/10/12(日) 14:27:14
なにその怪奇現象

768 :763:2008/10/12(日) 14:29:05
自己解決しますた。
ListBox.DisplayMemberでいけるっぽいですね。
http://smdn.invisiblefulmoon.net/ikimasshoy/vbdotnet/aboutlistbox.html#parag4



769 :デフォルトの名無しさん:2008/10/12(日) 14:49:15
末定期同作

770 :デフォルトの名無しさん:2008/10/12(日) 16:44:03
ttp://weekly.yahoo.co.jp/81/map/index.html

コナミブースのイベントアイコンにマウスカーソルを合わせてみろ
コナミの隠し玉。スペシャルムービーへの案内が出る

771 :デフォルトの名無しさん:2008/10/12(日) 16:55:25
コピペ君って馬鹿だな、まで読んだ。

772 :デフォルトの名無しさん:2008/10/12(日) 17:27:01
>>771
うんこちんこなめなめ
まで読んだ

773 :デフォルトの名無しさん:2008/10/12(日) 17:32:47
いや、つまんないから

774 :デフォルトの名無しさん:2008/10/12(日) 17:37:41
>>770
コナミじゃなくてレベルファイブってとこじゃね?

775 :デフォルトの名無しさん:2008/10/12(日) 17:49:06
ドコモにもかぶってるし微妙だな

776 :デフォルトの名無しさん:2008/10/12(日) 17:53:50
コナミの左側やべえwwwwwwwwwww

777 :デフォルトの名無しさん:2008/10/12(日) 18:20:46
通風しますた。

778 :デフォルトの名無しさん:2008/10/12(日) 19:51:18
ちょ、どうなってんのこれ

779 :デフォルトの名無しさん:2008/10/12(日) 20:00:46
>>777
ご愁傷様です。
なにげにキリいいな

780 :デフォルトの名無しさん:2008/10/12(日) 20:14:04
mlang.dllが使いたいのですがPC検索してもmlang.idlが見つかりません。
system32フォルダにはmlang.dllがあるのですが
ildasmで除いたところCLR形式ではないみたいです。たぶんCOM?
この場合、何かのツールを使ってmlang.dllは利用できるのでしょうか?



781 :デフォルトの名無しさん:2008/10/12(日) 20:32:27
>>780
COM Interop か P/Invoke

782 :デフォルトの名無しさん:2008/10/12(日) 20:39:25
Microsoft SDK入れたらMLang.idlとmidl.exeが付いてくる
midlでMLang.idlを処理するとMLang.tlbが作れる
tlbimp.exeでMLang.tlbをインポートするとマネージドアセンブリであるMultiLanguage.dllが作られる

783 :デフォルトの名無しさん:2008/10/12(日) 21:02:04
ありがとうございます。それぞれ調べてみます

midl.exeですが、実はC#じゃないCLRで動作する言語を使っており
Visual Studio 2008 shellを入れてるんですがそこには含まれてないようです。

PC検索したらMicrosoft SDKs\Windows\v6.0AというバージョンでMicrosoft SDKが入ってましたが
ここにあったmidl.exeと、VS2005のフォルダ(VC8)のmlang.idlでは実行出来ませんでした
環境が混在してるのがあまり良くないのかもしれません

784 :デフォルトの名無しさん:2008/10/12(日) 21:06:15
ttp://d.hatena.ne.jp/alcy/20071119/1195480247

785 :デフォルトの名無しさん:2008/10/12(日) 21:11:25
Microsoft SDK入ってるならそのlibフォルダにあるだろidlファイル

786 :デフォルトの名無しさん:2008/10/12(日) 22:09:34
そのURLはチェック済みですが
そもそも動かそうとしてるのはVS2008環境ですし
そのバッチは自分の環境にないフォルダを参照してるんで動作しません

Microsoft SDKフォルダには
binフォルダと、BoostWrapperってフォルダしか無いです。
まだ調査中ですが、、COMから呼べるのならそれで対応しますわ

787 :デフォルトの名無しさん:2008/10/12(日) 23:46:11
久しぶりに2ちゃんを見たんだが、、
ここ数十レスの殺伐さを見てるとム板に戻ってきたって実感するな。

788 :デフォルトの名無しさん:2008/10/13(月) 00:42:22
>>786
それそもそも Windows SDK 入ってない。
VS に同封されているのはあくまでサブセット

それと、ないと思うが一応。x64 環境なら x86 のほうは
Windows SDK 入れてもそうなる

789 :デフォルトの名無しさん:2008/10/13(月) 01:09:46
>>751 分かる方いらっしゃいませんか?
てかスレ違いなのかな。

790 :デフォルトの名無しさん:2008/10/13(月) 01:11:58
>>789
FAQのアレじゃないかな。実行のたびにDBをコピーする設定になってる。

791 :デフォルトの名無しさん:2008/10/13(月) 01:43:36
>788
ありがとう。結局COMはまだわからないので挑戦してみたところ
↓若干問題があったけど何とかSDKインストール出来ました
ttp://blogs.wankuma.com/shannon/archive/2008/01/05/115982.aspx
無事midlでtlb作成し、.Net2.0のフォルダにあったregtlibv12.exeにて
以下のメッセージ1行のみでる所まで確認できました。
Registration of mlang.tlb successful.
しかし、最後に参照の追加をしようとしたところ、一覧に表示されてません
もしやVS2005のほうに追加されたのかと思い確認してみましたが
2005のほうにも追加されていませんでした
regtlb,regtlib,regtlibv12と色々バージョンがあるので疑ってるんですが
VS2008版のregtlbでもあるんですかね
参照の追加の一覧に追加されてるのはdll,exe,ocxとかなんですが
tlbもきちんと追加出来るんでしょか


792 :デフォルトの名無しさん:2008/10/13(月) 01:46:46
>>790
レスありがとうございます。もしよければFAQの場所教えて頂けないでしょうか?
探してみたのですが、設定の場所が分からなくて…。

書き忘れていましたが、構成はDataGridView→BindingSource
→データソース構成ウィザードで自動生成されたデータセット という感じです。
これでDataGridViewの変更が自動的にDBに反映されるものだと思っていたのですが…
もしかして違うのかな。


793 :デフォルトの名無しさん:2008/10/13(月) 01:53:59
>>791
だから参照の一覧から探すんじゃなくて tlb 生成したら
その生成物を tlbimp する。すると、MultiLanguage.dll とか
まぁ名前どうなるか知らんが .NET な DLL が出来るから
この DLL を直接参照する。
>>782 の人が書いてることなんだがいわれた先から忘れて
どうするよ

794 :791:2008/10/13(月) 01:55:38
しょうもないことですが、フルパスで指定したら解決しました。アドバイスくれた方thx

795 :791:2008/10/13(月) 01:56:47
うお、そういえば手順やってないです・・
ちょいtlbimpがあるか探してみますわ

796 :デフォルトの名無しさん:2008/10/13(月) 11:16:32
ttp://d.hatena.ne.jp/bellbind/20040704/p1
のまねして、ローカルで aspx 動かそうとしたんですが、
文字化けがどうやっても解決できないんです。

traceをonにすると、
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/040trace/trace.html
によると、「要求の詳細」とでるべきところに、"隕∵アゅ・隧ウ邏ー"と出ています orz

上記画面で、要求・応答のエンコードはともに Unicode(UTF8)となっています。
ブラウザのエンコードも utf-8 にしてるのに、なんで化けるの〜って感じです。

web.config とか @ Page とかいじってみたが変化せず。

どなたか、お知恵を貸してください。

797 :デフォルトの名無しさん:2008/10/13(月) 12:16:10
>>796
要求の詳細をUTF-8で保存してSJISでみるとそういう風に化けるね、ブラウザの方ほんとにUTF-8?

798 :デフォルトの名無しさん:2008/10/13(月) 13:46:54
>>792
>>236

799 :デフォルトの名無しさん:2008/10/13(月) 13:54:30
黒いプレステ

800 :デフォルトの名無しさん:2008/10/13(月) 15:27:05
ボリュームとかに使れれてる目盛りと五角形のつまみが付いたコントロールはなんて言ったっけ?

801 :デフォルトの名無しさん:2008/10/13(月) 15:30:54
>>800
スライダーかな?

802 :デフォルトの名無しさん:2008/10/13(月) 15:31:48
五角形のつまみ?

803 :デフォルトの名無しさん:2008/10/13(月) 15:52:44

    ∧
==| .|==
    |._|

804 :800:2008/10/13(月) 16:29:39
みつかりましたー

805 :デフォルトの名無しさん:2008/10/13(月) 17:05:34
スレの流れと全然関係ない話だが、ツールバーやクイックランチで使われる
シェブロンって奴は、どうも俺の記憶回路と相性が悪いらしく何度覚えても
必ず呼び方がわからなくなるよ。

なんでだろう。

806 :デフォルトの名無しさん:2008/10/13(月) 17:12:40
ヘラルドリーの勉強でもしてみれば。面白いよ。

807 :792:2008/10/13(月) 18:02:52
自己解決しました。
DataGridVewでのテーブルに対する編集が終わった段階で、
TableAdapterのUpdatteメソッドを呼んでやらないと
DataGridViewで行った変更が反映されないんですね。
基本的過ぎることかもしれませんが、まったく分かっていませんでした…。

808 :796:2008/10/13(月) 19:06:04
>>797
レスありがとうございます。
firefox と ie 両方で確認したんで utf-8 で間違いないと思います。
う〜ん、なんだろう。





809 :デフォルトの名無しさん:2008/10/14(火) 00:33:58
以下のような構成で質問です

親フォーム
 自作コントロール(SplitContainerの派生クラス)
 ステータスバー(StatusStrip)

自作コントロールのウィンドウプロシージャ内(keydownハンドラ)で
ステータスバーにデータを表示させたいのですが
このような場合どうすればよいのでしょうか
win32APIの世界であればユーザ定義メッセージを
親に送るという方法があると思うんですが.Netではどうするのが一般的ですか?

810 :デフォルトの名無しさん:2008/10/14(火) 00:36:53
>>809
データを表示するコントロールを格納するプロパティを自作コントロールに用意する。
プロパティが設定されていれば書き込み、されてなければ何もしない。

って感じかなぁ。

811 :デフォルトの名無しさん:2008/10/14(火) 00:43:33
ビリルドにするといつもより時間がかかるのはどうして?

812 :デフォルトの名無しさん:2008/10/14(火) 00:46:23
>>811
リビルド、ね。

いったん、中間ファイルとかを全部削除するから。

813 :デフォルトの名無しさん:2008/10/14(火) 01:02:31
>810
こういうことですか?
親フォーム
 自作コントロール(SplitContainerの派生クラス)
  ステータスバー(StatusStrip)
↑の構成は、最初に検討したのですが
StatusStripがFormにしかつけられないという制限のため取りやめました。

しかし、どちらにせよ書き込みたいデータは公開してるのですが
プロパティが設定されているかを確認するのは
定期的に確認するということでしょうか?

814 :デフォルトの名無しさん:2008/10/14(火) 01:03:37
>>813
ちょっと違う。

エラープロバイダみたいな仕組み。

815 :デフォルトの名無しさん:2008/10/14(火) 01:06:09
なるほど。エラープロバイダという単語は初耳なので調べてみます。

816 :デフォルトの名無しさん:2008/10/14(火) 02:09:30
手抜きな感は否めないが、自作コントロールがステータスバーの参照を保持するのはだめか?

817 :デフォルトの名無しさん:2008/10/14(火) 19:17:58
今期のまとめ:

ロザリオ2 ある日突然現れた女の子が裏モカに粘着するアニメ
地獄少女3 ある日突然復活した地獄少女が女の子にキスするアニメ
かんなぎ ある日突然現れた女の子と同棲し始めるアニメ
ケメコ ある日突然現れた女の子と同棲し始めるアニメ
まかでみ ある日突然現れた女の子と同棲し始めるアニメ
禁書目録 ある日突然現れた女の子を守ろうとするアニメ
黒塚 ある日偶然知り合った女の子と逃避行し始めるアニメ
とらどら ある日偶然知り合った女の子と半同棲し始めるアニメ
ラインバレル ある日突然落ちてきた女の子と同棲し始めるアニメ
クラナド ある日偶然知り合った女の子と同棲し始めるアニメ
あかねいろ ある日偶然知り合った許嫁と同棲し始めるアニメ
ef melodies ある日偶然知り合った女の子を押し倒しそうなアニメ
キャシャーン ある日偶然知り合った女の子と一波乱ありそうなアニメ

818 :デフォルトの名無しさん:2008/10/14(火) 19:54:52
>>816
むしろ出来ればそうしたいのですが
splitcontainerにはStatusStripはつけられないようです(読み取り専用のため)
結局の所、splitcontainerの中にいるTextboxやTreeViewにはつけられるので
ちょっとかっこわるいけどこれで対応しようかと思います

819 :デフォルトの名無しさん:2008/10/14(火) 19:59:02
イベント使えば

820 :デフォルトの名無しさん:2008/10/14(火) 22:16:48
>>818
そんな糞コード書いてはダメだろうw

819の言うようにイベントを使うのが正解。
Formに仲介役(mediator)になってもらうんだよ。
標準のGUI部品つかったプログラミングはいつも無意識にそうしてるだろ?

自作コントロールに適当なイベントを実装して、
そのイベントを受信したFormがステータスバーを操作するんだよ。

821 :デフォルトの名無しさん:2008/10/15(水) 02:43:08
超初心者なんですが、変数にアクセスするときに
わざわざプロパティを経由してアクセスする必要性がわかりません
直接変数にアクセスしちゃなんでだめなんですか?

822 :デフォルトの名無しさん:2008/10/15(水) 02:45:24
何度説明すれば気が済むんだ!
という質問だよ

823 :デフォルトの名無しさん:2008/10/15(水) 03:00:41
>>821
・ブレイクポイントが置ける。例えば値が変わったときに実行をとめられるのでデバッグしやすい。
変数だとこれができない。
・↓みたいな感じで、共通の処理を一箇所で書ける
set { hoge = value * 1.05; }
消費税が変わってもここを直すだけなので楽チン。
・今は何もしてなくても後から実装することになるかもしれないのでとにかく書いとけ。
書いとけば間違いない。


824 :デフォルトの名無しさん:2008/10/15(水) 03:05:34
寸止めか、やるなおぬし

825 :デフォルトの名無しさん:2008/10/15(水) 03:10:35
本当はそんな必要などない
何かの宗教に取り付かれた結果書くことが当たり前だと思い込まされている

826 :デフォルトの名無しさん:2008/10/15(水) 03:13:31
直接フィールド弄られたら妥当性チェックすらできない。

その為"フィールドをprivate"にして"publicなメソッド GetHoge() / SetHoge()"でアクセスする事になるけど
それだと面倒だしGet/Setを使うようにするには該当箇所を書き換える必要がある。

だからC#では、クラス外からはフィールドのように使えて、クラス内からはGet/Setのメソッドのように振舞うプロパティが用意されている。

ってぐらいの理解でいいんじゃね?

827 :821:2008/10/15(水) 03:22:24
>>823,826
なるほどよくわかりました
サンクスでっす

828 :デフォルトの名無しさん:2008/10/15(水) 03:26:28
嘘を言うな!わかってないだろ!

829 :デフォルトの名無しさん:2008/10/15(水) 03:30:05
おれさまの理解力をあなどってもらっては困るな

830 :デフォルトの名無しさん:2008/10/15(水) 04:33:06
初心者に聞いてもわからんだろうから君たちに聞くが、
業界内におけるC#の普及率はどんなもんかね?
C#を扱った書籍は増えてきてるように思うが。

831 :デフォルトの名無しさん:2008/10/15(水) 04:56:35
フリーソフトとか.NET2.0以上必須って書いてあるやつ増えてきてると感じるよ

832 :デフォルトの名無しさん:2008/10/15(水) 05:17:17
Silverlightの正式版が出たんじゃないの
話題にならんね

833 :デフォルトの名無しさん:2008/10/15(水) 07:24:19
>>832
そういうのに食いつきたがる新し物好きは
CTP とかβの頃に食いついてるから、
正式版出てもあんまり盛り上がらない。
てか、製品版出てから食いついても遅い。

あと、Silverlight スレが別にあるし。

834 :デフォルトの名無しさん:2008/10/15(水) 09:45:32
C# にはSTLみたいなライブラリがないのは何故なんだぜ?

探し方が悪いのかな...「知ってるがお前の態度が気に入らない」
とか言わずキーワードを教えてくだしあ><

835 :デフォルトの名無しさん:2008/10/15(水) 09:48:10
System.Collections.Generic

836 :デフォルトの名無しさん:2008/10/15(水) 09:50:49
System.Linq

837 :デフォルトの名無しさん:2008/10/15(水) 09:54:51
Power Collections for .NET
ttp://www.codeplex.com/PowerCollections

The C5 Generic Collection Library
ttp://www.itu.dk/research/c5/

838 :デフォルトの名無しさん:2008/10/15(水) 10:04:30
あんまりSTLみたいじゃないわ

839 :デフォルトの名無しさん:2008/10/15(水) 10:43:27
>>838
STLのコンテナ相当なら>>835
functional相当なら…匿名デリゲートかな…

algorithm相当は知らない。むしろ俺が知りたい

840 :デフォルトの名無しさん:2008/10/15(水) 15:39:49
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 知ってるが    | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |

841 :デフォルトの名無しさん:2008/10/15(水) 15:57:36
LINQがアルゴリズムだよ

842 :デフォルトの名無しさん:2008/10/15(水) 17:01:01
特定の名前空間に存在する型のTypeオブジェクトをすべて取得したいのですが
Assembly.GetTypesの結果を自分でフィルタするしかないんでしょうか

843 :デフォルトの名無しさん:2008/10/15(水) 17:02:08
君が持っていないアセンブリにその名前空間下のクラスが定義されてるかもよ?

844 :842:2008/10/15(水) 17:04:47
それは認識されなくて構いません
力技以外に方法がないのかどうか知りたかっただけです

845 :デフォルトの名無しさん:2008/10/15(水) 17:08:05
うん
しょせん名前空間ってのは分かりやすくするための修飾子に過ぎないし

846 :842:2008/10/15(水) 17:11:12
わかりました。ありがとうございました。

847 :デフォルトの名無しさん:2008/10/15(水) 19:10:29
名前空間って、そういうオブジェクトがないんだよね。
あくまで型の正式名称の一部なだけで。


848 :デフォルトの名無しさん:2008/10/15(水) 20:58:09
モジュールと名前空間で二重管理になるからな

849 :デフォルトの名無しさん:2008/10/16(木) 11:12:13
VS2005でだたGridViewを継承して独自の機能を持たせたカスタムコントロールを作りたいと思っています。
その際にこのコントロールで設定してほしくないプロパティを使う側から隠蔽してしまいたいのですが何かいい方法はないでしょうか?

例えば カスタムコントロール.BorderStyle が外から使えないようにしたいのです。
よろしくお願いします。

850 :デフォルトの名無しさん:2008/10/16(木) 12:04:37
[Browsable(false), EditorBrowsable( EditorBrowsableState.Never)]
public new BorderStyle BorderStyle
{
get { return base.BorderStyle; }
}

こんなんじゃだめ?見ることはできるけどいじれない。

851 :デフォルトの名無しさん:2008/10/16(木) 12:51:06
なるほど〜
そういう発想もあるのか・・・
ちょっといい案が思いつかなかったんでそれ使ってみます。
ありがとうございました。

852 :デフォルトの名無しさん:2008/10/16(木) 22:14:46
pdf入出力用のフリーのいいライブラリあったら教えてください

853 :デフォルトの名無しさん:2008/10/17(金) 02:00:10
Adobe Acrobat 7.0 Elementsってもう売ってないのか

854 :834:2008/10/17(金) 06:18:09
みなさんありがとうございました.週末に皆さんのポインタをたどって色々調べてみようと思います.

855 :デフォルトの名無しさん:2008/10/17(金) 11:38:46
なんで列挙型はIEquatable<T>を実装してないの?

856 :デフォルトの名無しさん:2008/10/17(金) 11:51:23
>>855
クラスじゃないから。

857 :855:2008/10/17(金) 11:57:02
IEquatable<T>は主に構造体がobject.Equalsのボクシングを避けるために実装するものでしょ
System.Int32とかも実装してるし
中身はただの数値なんだから自動的に実装してくれてもいいのに

858 :デフォルトの名無しさん:2008/10/17(金) 15:24:11
定期的にテキストデータを保存する保存プログラムがあり、
定期的にそのテキストデータをStreamReaderで開いて情報を表示する(読み込みのみ)
プログラムを作っています。

しかし、定期的にテキストデータをStreamReaderで開いている最中に
保存プログラムがタイミング悪く保存しようとすると別のプロセスがファイルを使用中ですと言うエラーが出てしまい
そのタイミングのデータが破棄されてしまいます・・・
保存プログラムに干渉しないようにデータを読み込むことはできませんか?
よろしくお願いします。

859 :デフォルトの名無しさん:2008/10/17(金) 15:29:39
セマフォ

860 :デフォルトの名無しさん:2008/10/17(金) 15:37:45
保存する方次第だが それはいじれるの?
取りあえずFileShare.ReadWriteで開いてみるとか

861 :デフォルトの名無しさん:2008/10/17(金) 15:43:42
保存する方はソースも公開しておらず一切いじれません

862 :デフォルトの名無しさん:2008/10/17(金) 15:48:09
深夜に読み込む

863 :デフォルトの名無しさん:2008/10/17(金) 15:51:01
その相手のPGにもよるけど

書き込み時間が短かくてその間隔がそれなりにあるのなら
失敗したら1秒とかの間再試行繰り返してタイムアウトしたらエラーにするとかいろいろ出来ると思うんだけど

864 :デフォルトの名無しさん:2008/10/17(金) 15:58:51
FileShare.ReadWriteを導入してみました。
自分のPGがファイルを開いてる最中にSleepさせてテストしたらバッチリ相手のPGが書き込みしてくれました。
多分これで解決できたと思います。

>>863
書き込みに失敗するのは相手のPGで、書き込みも不定期なのでそういうことが出来なかったのです。

865 :デフォルトの名無しさん:2008/10/17(金) 16:05:36
Windowsはファイルオープン時に勝手にロックされるってことなんだろうか
恐ろしい子

866 :デフォルトの名無しさん:2008/10/17(金) 16:11:41
は?

867 :デフォルトの名無しさん:2008/10/17(金) 16:19:27
相手のPGに電話

868 :デフォルトの名無しさん:2008/10/17(金) 19:10:27
>>865
そのためのFileShareだろ。
それに、ファイルオープン時に標準でロックする方がWindows以外でも一般的だと思うぞ。

869 :デフォルトの名無しさん:2008/10/17(金) 19:29:14
いや、Unixについて言えば、「読み込み」でファイルを
オープンした際に標準でロックがかかるなんてことはないだろう。
openで開いたファイルをfcntlに渡してロックする必要がある。

870 :デフォルトの名無しさん:2008/10/17(金) 20:39:30
unixってファイル読み込み中にそのファイル削除したらどうなんの?

871 :デフォルトの名無しさん:2008/10/17(金) 21:00:54
オープンとロックがアトミックにできなかったら困る場面も結構あると思うが

872 :デフォルトの名無しさん:2008/10/17(金) 21:28:10
>>870
排他かけてなければ、消したほうは成功する。
inodeは残っててオープンしてるやつからは見えるが
それ以外からは見えないんじゃないかな。
そいつがCloseしたら消える。

873 :デフォルトの名無しさん:2008/10/17(金) 23:33:03
>>870
ファイルを読み書きでオープンしてすぐ削除。
オープンしたプロセスは、クローズするまで読み書きできるが、
他のプロセスからは一切読み書きできない。

テンポラリファイルの定石的な使い方の一つ。

874 :デフォルトの名無しさん:2008/10/18(土) 01:17:19
コントロールのborderStyle.fixed3Dみたいな立体枠を
graphicクラスで描画する方法って無かったっけ?
FillRectangleで描画した四角形に枠線を付けたいんだが・・・

875 :デフォルトの名無しさん:2008/10/18(土) 01:21:35
ControlPaintかな?

876 :デフォルトの名無しさん:2008/10/18(土) 01:41:50
ImageくらすとBitmapクラスはどう使い分ければいいんですか?

877 :デフォルトの名無しさん:2008/10/18(土) 02:35:42
ImageですむならImage。そういうわけにいかんときはBitmap

878 :デフォルトの名無しさん:2008/10/18(土) 03:03:10
>>875
それだ!出来たよ!ありがと〜よ〜

879 :デフォルトの名無しさん:2008/10/18(土) 03:05:04
今から初めてプログラミングを学ぶなら
C#/JAVA/VBどれがいいかな?
C#のスレだからきっと答えはC#だもんねぇ〜

880 :デフォルトの名無しさん:2008/10/18(土) 03:09:56
理想的にはまずCをやって
それからJavaやC#に進むのがいいように思う。
Cは基本なので覚えとくとコンピュータに対する理解が深まると思う
車で言うと

C:マニュアル車
Java、C#、VB:オートマ車

ってかんじかな。
マニュアル→オートマには簡単に移れるけど
逆は難しいと思う

881 :デフォルトの名無しさん:2008/10/18(土) 03:11:36
マニュアルの免許取って一度も車運転せずにゴールドになった私にはやはりオートマでしょうか?

882 :デフォルトの名無しさん:2008/10/18(土) 03:13:33
C++:難しい

C:簡単なようで実は難しい

C#,JAVA,VB:ゆとり世代向け

883 :デフォルトの名無しさん:2008/10/18(土) 03:17:42
>C#/JAVA/VBどれがいいかな?

どれでもいいんじゃね?

884 :デフォルトの名無しさん:2008/10/18(土) 03:20:43
C++は厨房の頃にVC買ってウィンドウ組めなくて積んだわ

885 :デフォルトの名無しさん:2008/10/18(土) 03:29:13
Win32APIでGUI書いてたころがなつかしい
C#の簡単さは異常

886 :デフォルトの名無しさん:2008/10/18(土) 03:31:21
MFCを見るたび吐き気がする

887 :デフォルトの名無しさん:2008/10/18(土) 04:35:29
MFCにはじめてさわったとき
あまりのわからなさに鬱になりそうになった

888 :デフォルトの名無しさん:2008/10/18(土) 05:37:07
C#やってF#やっとけ。そのあとBoo.

889 :デフォルトの名無しさん:2008/10/18(土) 08:52:51
Win32APIはウィンドウアプリ組めるようになるまで3回くらい挫折したからオススメしない

890 :デフォルトの名無しさん:2008/10/18(土) 12:03:14
>>884
俺がここにいる!!!!

891 :デフォルトの名無しさん:2008/10/18(土) 12:14:12
C#やってオブジェクト指向になれてから、
興味があればC/C++やった方がいいと思う。

俺もC#やってから、C++でオブジェクト指向なコードを書けるようになったし。

892 :デフォルトの名無しさん:2008/10/18(土) 13:20:27
GUIやろうとしても
Win32APIやらMFCは止めろといわれ
C#やJavaはゆとりといわれ
とうしろっちゅーねん

893 :デフォルトの名無しさん:2008/10/18(土) 13:24:17
ゆとりがあるのは、いいことだろ?

894 :デフォルトの名無しさん:2008/10/18(土) 13:41:25
おまえら.NET3.0使ってる?
おれは2.0しか使ってないけど。
3.0になってプロパティが書きやすくなったりして便利そうではあるがまだ未体験

895 :デフォルトの名無しさん:2008/10/18(土) 13:43:02
OS入れ直した時に3.5を入れた
インテリ扇子が英語になって最近作ってない・・・

896 :デフォルトの名無しさん:2008/10/18(土) 14:01:27
VisualStudioと対応する.NET Frameworkのバージョン
VS2002(VS7)  - .NET Framework 1.0
VS2003(VS7.1) - .NET Framework 1.1
VS2005(VS8)  - .NET Framework 2.0 ※1
VS2008(VS9)  - .NET Framework 2.0/3.0/3.5
※1 アドイン追加で、.NET Framework 3.0 向けの開発も可能

対応OS
.NET Framework 1.0/1.1 - 98, 98SE, ME, NT4.0, 2000, 2003, XP,(2008, Vista ※1.1のみ)
.NET Framework 2.0    - 98, 98SE, ME,     .2000, 2003, XP, 2008, Vista
.NET Framework 3.0/3.5 -                  .2003, XP, 2008, Vista

CLRのバージョン
.NET Framework 1.0 - CLR1.0
.NET Framework 1.1 - CLR1.1
.NET Framework 2.0/3.0/3.5 - CLR2.0

C#のバージョン
VS2002(VS7)  - C#1.0
VS2003(VS7.1) - C#1.1
VS2005(VS8)  - C#2.0
VS2008(VS9)  - C#3.0

.NET2.0の範囲で使えるC#3.0
型推論、匿名型, 暗黙型付け配列
コレクションイニシャライザ、オブジェクトイニシャライザ
パーシャルメソッド、自動プロパティ、ラムダ式

.NET3.xが必要になる機能
ラムダ式でFunc<>やAction<>, Expression<>などの利用
LINQクエリ式他、拡張メソッド

897 :デフォルトの名無しさん:2008/10/18(土) 14:01:59
>>894
.NET3.0ではC#の変更は無いぞ
C#3.0に上がったのは.NET3.5からな
まあC#3.0は.NET 2.0でも使えるけど

898 :デフォルトの名無しさん:2008/10/18(土) 19:52:53
このスレでは平気でC#3.0のコードが出てくるね
そのへんはさすがにVBと違って新しさが売りの言語だなあ

899 :デフォルトの名無しさん:2008/10/18(土) 19:54:59
inputmanって最近どうなの?
最新版が3月にリリースされたらしいけど

900 :デフォルトの名無しさん:2008/10/18(土) 20:06:34
>>898
VBスレでもちょくちょく答えてるけど、新機能が使えそうな質問を見ることが無い

901 :デフォルトの名無しさん:2008/10/18(土) 20:24:44
.NET Framework 1.0 - CLR1.0ってもう入手できないんですか?
それとも1.1に上書きされてしまったのでしょうか?

902 :デフォルトの名無しさん:2008/10/18(土) 20:37:36
ダウンロードセンター見てこい

903 :デフォルトの名無しさん:2008/10/18(土) 20:44:47
インターネットから切断してすべてのデータ受信・送信を止めると言った事は可能ですか?

904 :デフォルトの名無しさん:2008/10/18(土) 20:46:42
>>903
ケーブル抜けよ

905 :デフォルトの名無しさん:2008/10/18(土) 20:49:48
もちろんケーブルを抜いたり鋏みで切る以外にも物理的な方法はありますが
ソフトウェアで実装したいのです

906 :デフォルトの名無しさん:2008/10/18(土) 20:51:51
>>905
WMI の Win32_NetworkAdapter.Disable() でいいんじゃね。

907 :デフォルトの名無しさん:2008/10/18(土) 20:59:59
>>902
ダウンロードセンターで検索しても出てきませんでした

しかし、他の古いページに.NET Framework 1.0 再頒布パッケージへのリンクがありましたが、
そのページは削除されていますと出ました

908 :デフォルトの名無しさん:2008/10/18(土) 21:09:15
>>907
http://www.microsoft.com/downloads/details.aspx?FamilyID=4fe5bdb5-c7a7-4505-9927-2213868a325b&DisplayLang=ja

909 :デフォルトの名無しさん:2008/10/18(土) 21:16:18
.NET Frameworkで検索すればSP1/SP2/SP3が見つかる
(SP3が欲しいのなら、.NET Framework 1.0 で検索するのが早い

910 :デフォルトの名無しさん:2008/10/18(土) 21:23:23
>>908
そのセットアップからOrca.exeで抜き出すんですか?

911 :デフォルトの名無しさん:2008/10/18(土) 21:29:43
>>909
それダウンロード出来るんですけどバージョンが違うか合わないと怒られてインストール出来ないんです
おそらく1.1以降の全てのCLRを削除しないといけないのかと思うのです

912 :デフォルトの名無しさん:2008/10/18(土) 21:32:18
>>910
何がしたいの?

>>908 が 1.0 なんだから、インストールすればいいだけなんだけど。
ランタイムだけほしい、ってこと? なら、SDK の中に、dotnetfx.exe が含まれてるはず。

913 :デフォルトの名無しさん:2008/10/18(土) 21:43:34
1.0のランタイムだけ欲しい
とりあえず908をぶち込んで逝ってきます

914 :デフォルトの名無しさん:2008/10/18(土) 21:52:45
>>913
http://www.microsoft.com/japan/msdn/netframework/downloads/sdk.aspx

.NET Framework 再頒布パッケージ ダウンロード(20.4 MB)

915 :デフォルトの名無しさん:2008/10/18(土) 22:05:42
>>914
中断出来たんでそっち先にやってみます
というかそれで駄目だったらもう駄目か

916 :デフォルトの名無しさん:2008/10/18(土) 22:24:28
ありがとうございます
.NET Framework 再頒布パッケージ ダウンロード(20.4 MB)入りました
.NET CLR 1.0.3705
しかし、この後SP3を入れても.NET CLR 1.0.3705のままでした
.NET CLR 1.0.3705の正体はSP3なのでしょうか?
プログラムの変更と削除から見てもSP3とは表示されていません

917 :デフォルトの名無しさん:2008/10/18(土) 22:28:21
>>916
いい加減にしろよ

.NET Framework のバージョン、および Service Pack が適用されているかどうかを確認する方法
http://support.microsoft.com/kb/318785/

918 :デフォルトの名無しさん:2008/10/18(土) 22:35:14
>>917
お前みたいな奴がいるから話が終わらないんだよ

919 :デフォルトの名無しさん:2008/10/18(土) 22:40:18
確認取れました
1.0.3705.6018 = SP3
ありがとうございました
話が終わりました
地球に生まれて良かったです!

920 :デフォルトの名無しさん:2008/10/18(土) 23:24:27
>>918
いやそれはひどいと思う…


921 :デフォルトの名無しさん:2008/10/19(日) 12:08:06
スルー力のないのは馬鹿だ

922 :デフォルトの名無しさん:2008/10/19(日) 12:29:24
力って書いちゃう奴・・・

923 :デフォルトの名無しさん:2008/10/19(日) 17:09:28


924 :デフォルトの名無しさん:2008/10/20(月) 09:33:32
エウレ力!エウレ力!

925 :デフォルトの名無しさん:2008/10/21(火) 08:50:54
君がすきなんだ!君じゃなきゃ駄目なんだ!

926 :デフォルトの名無しさん:2008/10/21(火) 12:23:49
A.exe と B.exeがあって
A.exeのボタン押したらB.exeのとあるメソッドを動かして、Bの表示内容を変更したい場合、
どんな方法で「Aのボタン押したよー」っていうのをBに伝えればいいのですか?

windowsメッセージってやつでやるのか?
それもなんなのかわからないけど。

A,Bどっちも自作PGで。


927 :デフォルトの名無しさん:2008/10/21(火) 12:30:43
自作ならいくらでもやりようはあるな
パラメータ通知する必要も無いならEventWaitHandleで名前つきイベント使って通知するのが一番楽
パラメータ通知するなら標準入力を使うのが個人的には楽だな

928 :デフォルトの名無しさん:2008/10/21(火) 12:30:56
プロセス間通信は数通りあるから好きなの選んでください

929 :デフォルトの名無しさん:2008/10/21(火) 12:31:00
プロセス間通信で調べると、いっぱい手段があることがわかる。
もちろん、ウィンドウにメッセージを送る手もあるし、C#ならリモーティングでもいいし。

930 :デフォルトの名無しさん:2008/10/21(火) 12:43:01
そこであえてソケット通信をry

931 :926:2008/10/21(火) 12:58:09
>>927-930
さんきゅーです。
ちょっと調べてみます。


932 :デフォルトの名無しさん:2008/10/21(火) 14:37:45
Spy++ですねわかります!!

933 :デフォルトの名無しさん:2008/10/21(火) 17:20:01
Regex クラスについてなのですが、

<table> ... </table>

<table>

...

<table .... ABC .... </table>

...

</table>

といった構造のhtmlがある時、
<table .... ABC .... </table>
にマッチする正規表現の作り方が分かる人が居たら教えてください。
ABCといった文字パターンが入ったテーブルを切り出したいのですが、思いのほか難しいです。
また <table .... ABC .... </table> の中に table タグのネストはないです。

934 :デフォルトの名無しさん:2008/10/21(火) 17:36:26
.*?の代わりに.*?ABC.*?にするだけじゃね?

935 :デフォルトの名無しさん:2008/10/21(火) 17:41:13
>>934
んっ、ちょっと良く分からないです具体的にはどんな感じで・・・

936 :デフォルトの名無しさん:2008/10/21(火) 17:44:01
HTMLDOM使ったほうが・・・・

937 :デフォルトの名無しさん:2008/10/21(火) 17:47:15
>>936
これが対象のHTMLの文法が間違っているので使えないんですよw

938 :デフォルトの名無しさん:2008/10/21(火) 17:51:59
ABC含まない単純なtableのマッチングは書けるの?

939 :デフォルトの名無しさん:2008/10/21(火) 17:53:59
>>933
ぐだぐだ書いてるけど、要するにABCの直近の<tableと</table>を探したいってだけの話なんだろ?

940 :デフォルトの名無しさん:2008/10/21(火) 17:54:09
>>938
\<table(?!\<\/table\>.)*\<\/table\>
完全ではないですが、これでそこそこは・・・

941 :デフォルトの名無しさん:2008/10/21(火) 18:21:35
<table.*?ABC.*?</table>

942 :デフォルトの名無しさん:2008/10/21(火) 18:27:15
<table.*?ABC.*?</table> = <tableABC</table> では?


943 :デフォルトの名無しさん:2008/10/21(火) 18:28:04
はああああ?

944 :デフォルトの名無しさん:2008/10/21(火) 18:29:02
最小の繰り返しで、一文字または無しだから0文字かと

945 :デフォルトの名無しさん:2008/10/21(火) 18:30:11

正規表現 Part5
http://pc11.2ch.net/test/read.cgi/tech/1212498448/


946 :デフォルトの名無しさん:2008/10/21(火) 18:30:18
>>942
MSDN で量指定子調べろ

941はちと足りんな
ABCまでの間は((?!</table>).)*にしないと
<table></table><table>ABC</table>
のとき余計なの引っ掛ける

947 :デフォルトの名無しさん:2008/10/21(火) 18:32:27
>>946
調べて判ったら来ていないです、ところでそれでも駄目だと思われます、それについてはというか試しました。

948 :デフォルトの名無しさん:2008/10/21(火) 18:33:52
量指定子で調べてわからなくてここに来たなら、それも書けよ。

949 :デフォルトの名無しさん:2008/10/21(火) 18:34:07
ちなみに分からなかったら無理してレスせず無視しておいてください、そのうち使い手も来るかも知れないので期待しているので・・・
多分僕より分かっていないと思うので。

950 :デフォルトの名無しさん:2008/10/21(火) 18:36:25
正規表現スレがこの板にあることも知らないで、何を調べたんだか。

951 :デフォルトの名無しさん:2008/10/21(火) 18:41:48
ある質問に片っぱしから答えようとして、それで判らなかったら片っぱしから汚い言葉で答えるのは止めた方がいいぜ
背伸びのも大概にしておけ

952 :デフォルトの名無しさん:2008/10/21(火) 18:42:14
多分僕より分かっていないと思うので

953 :945:2008/10/21(火) 18:43:32
答える奴も質問する奴も馬鹿でいいじゃないかw

954 :941:2008/10/21(火) 18:58:27
>>946
おお、確かに足らなかった。突っ込みサンクス

955 :デフォルトの名無しさん:2008/10/21(火) 19:00:04
<table
</table
/table>
で、それぞれ検索
そして修正保管

使い手です

956 :デフォルトの名無しさん:2008/10/21(火) 19:11:34
すみません。Panelかなんかを配置してそれを盛り上がったように見せたいのですが
やり方がわかりません。教えてください。

957 :デフォルトの名無しさん:2008/10/21(火) 19:21:28



いボタン

使い手です

958 :956:2008/10/21(火) 19:24:16
>>957
なるほど、押せないボタンを表示用につかえばいいんですね。

どうもありがとうございました。その線でいこうとおもいます。

そういえば、Javaでも昔、似たような質問して、押せないボタンで対応したんだった。。8年位前。。

959 :デフォルトの名無しさん:2008/10/21(火) 19:24:41
正規表現の件、なんとか自己解決できたので、もし誰か同じような事情があるかたが居られましたら、参考にしてやって下さい。
\<TABLE.((?<!(\<\/TABLE\>|\<TABLE|ABC)).)*ABC.((?<!(\<\/TABLE\>|\<TABLE)).)*\<\/TABLE\>)

用心しないといけないのは、<TABLEの否定をしかけると、最初にある<TABLEにもマッチしてしまって、全体がマッチしない事になってしまうので
先頭の\<TABLEに続けて . を入れ一文字読み飛ばしてしまう事です。


960 :デフォルトの名無しさん:2008/10/21(火) 19:48:48
swingのパネルはボーダースタイル指定できるだろ

961 :デフォルトの名無しさん:2008/10/22(水) 21:58:57
現在C++を勉強してC#を勉強しようと思っています。
C#を勉強していると、よく先頭にusingディレクティブで名前空間を宣言してるコードを見かけます。

C++では名前空間は明記すべきとあるんですが、C#では明記しないほうがいいのでしょうか?


962 :デフォルトの名無しさん:2008/10/22(水) 22:07:01
System なんたらの類はあんまりフルネーム書かないけども、
非標準ライブラリの名前空間は using しないか、しても、
using Alias = Namespace.ClassName;
形式で使うかなあ。

963 :デフォルトの名無しさん:2008/10/22(水) 22:10:20
明記する必要が無いなら明記しない

964 :デフォルトの名無しさん:2008/10/22(水) 22:14:43
どんどんusingしていいよ
型の出所がはっきりしないということはあるかもしれないけど,
そんなもんVSの支援があるから無問題
衝突したらそのときはエイリアスを付けるなりフルネームを付けるなりすればいい

965 :デフォルトの名無しさん:2008/10/22(水) 22:14:55
おれはぶつからない限り書かないぞ

966 :デフォルトの名無しさん:2008/10/22(水) 22:16:32
C++ は代表的には include の存在と前方参照の制限と、ネストに
弱いっていうのがあって避けられるだけ。C# の場合その辺の理由が
あまりないのでほとんど避ける理由はない(もちろん例外もある)。
それに頼って BCL ががんがんネームスペース分けてる(から
全部書いていられない)しな。

まず勉強する姿勢として「理由」を考えよう。「〜だから」〜すべき、
理由のほうが大事。


967 :デフォルトの名無しさん:2008/10/22(水) 22:18:23
みなさん webBrowser のコントロール名ってどのように略されてますか?

968 :デフォルトの名無しさん:2008/10/22(水) 22:19:10
いくつも作るものじゃないんだから略さない

969 :デフォルトの名無しさん:2008/10/22(水) 22:25:08
>>967
browser かな

970 :デフォルトの名無しさん:2008/10/22(水) 22:26:04
_webCont

971 :デフォルトの名無しさん:2008/10/22(水) 22:30:36
>>968-970
レスどもです。
やっぱり3文字はきついですか?

972 :961:2008/10/22(水) 22:35:34
早い返信ありがとうございます。

>962-965
なるほど。
非標準ライブラリ以外はusing
することにします。

>966
今まで考えていませんでしたが、確かに理由は重要ですね。
これからは理由を考えて勉強していきます。

973 :デフォルトの名無しさん:2008/10/22(水) 22:42:50
C#って例えば配布などをして他人に使わせるときには、相手側に.NET Frameworkをインストールさせないといけないのでしょうか?

974 :デフォルトの名無しさん:2008/10/22(水) 22:46:43
おまえそれでもプログラマーか?

975 :デフォルトの名無しさん:2008/10/22(水) 22:46:58
2.0までならたいがい入ってるよ

976 :デフォルトの名無しさん:2008/10/22(水) 22:49:23
>>973
ClickOnce を使ってインストールされたら楽ちんだよ
相手方にインストールさせても、依存関係に入れて自動インストールできるようにもできる。
相手方にインストールさせる場合は、MSのインストールページを表示したりもできるし。

977 :デフォルトの名無しさん:2008/10/22(水) 22:53:23
using の使い方にいちいち気を使わないといけないC++の仕様が間違っているという話もある。

978 :デフォルトの名無しさん:2008/10/23(木) 00:57:25
>>973
相手側に.NET Frameworkをインストールさせてください
個人レベルでも標準化の為の活動は大切ですよ!

979 :デフォルトの名無しさん:2008/10/23(木) 01:02:53
相当へぼい環境や人格の持ち主なんか切り捨てていいよ

980 :デフォルトの名無しさん:2008/10/23(木) 06:05:18
ランタイムも含めて必要なマージモジュールは自動的にインストーラに組み込まれるのでは?

981 :デフォルトの名無しさん:2008/10/23(木) 07:40:21
>>980
.NET Framework は、自動では組み込まれないよ
言語パックとかも

982 :デフォルトの名無しさん:2008/10/23(木) 09:36:16
インストーラー作ってしまうのが楽

983 :デフォルトの名無しさん:2008/10/23(木) 12:28:27
自作インストーラはめちゃめちゃ大変じゃないか?
インストール関係のAPIとか正直見る気も起らない、OS毎に再起動手順もまるで違うし再開部分とか作っていられないし
他のソフトがインストール中はインストールできないようになっていたりするし

984 :デフォルトの名無しさん:2008/10/23(木) 12:49:36
>>983
なぜそこまで跳躍するのか分からないが、msi作るんじゃダメなのか?

985 :デフォルトの名無しさん:2008/10/23(木) 12:50:22
プロジェクト1つ作って、GUIで内容物をいじるのがそんなに大変か

986 :デフォルトの名無しさん:2008/10/23(木) 16:13:13
あほみたいな質問でごめんなのですが
vsでフォームアプリつくたのだけども
ウインドウサイズを広げたり縮めたり出来ない様
固定する方法ってあるのですか?

987 :デフォルトの名無しさん:2008/10/23(木) 16:17:17
その程度の事をいちいち聞くな

988 :デフォルトの名無しさん:2008/10/23(木) 16:18:35
FormBorderStyle

989 :986:2008/10/23(木) 16:23:11
.NETでしたね・・ 汚しすません解決しました。
FormBorderStyleをかえればいけたのですね。

990 :デフォルトの名無しさん:2008/10/23(木) 18:23:04
>>984
それは自作とは言わない

991 :デフォルトの名無しさん:2008/10/23(木) 18:40:14
新スレ
C#, C♯, C#相談室 Part49
http://pc11.2ch.net/test/read.cgi/tech/1224754660/

992 :デフォルトの名無しさん:2008/10/23(木) 18:45:13
自殺なんてしなくていいよ

993 :デフォルトの名無しさん:2008/10/23(木) 18:59:43
自作って言ってるの一人だけじゃないか

994 :デフォルトの名無しさん:2008/10/23(木) 20:26:48
打倒Java
.NET Frameworkへのリンクを必ずReadmeに相当するファイルに記述してください

995 :デフォルトの名無しさん:2008/10/23(木) 20:28:55
ヘルプにはSilverlight貼れ

996 :デフォルトの名無しさん:2008/10/23(木) 23:16:09
>>990
msi は自作だと思うが・・・えー?あれ(を基盤に)使うの MS の推奨
スタイルだぜ?

997 :デフォルトの名無しさん:2008/10/24(金) 00:19:23
まずは自作の定義を決めようぜ

998 :デフォルトの名無しさん:2008/10/24(金) 00:21:04
自作・・・それは俺オリジナル

999 :デフォルトの名無しさん:2008/10/24(金) 00:39:58
たとえMS推奨でもNOと言える日本人になること
レジストリ弄らないクラスのソフトにインストーラーは不要だと思うんだが

1000 :デフォルトの名無しさん:2008/10/24(金) 00:40:27
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

223 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)