[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 03/18 22:04 / Filesize : 133 KB / Number-of Response : 542
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part42



1 名前:デフォルトの名無しさん [2007/08/26(日) 12:42:25 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part41
pc11.2ch.net/test/read.cgi/tech/1184840053/

過去スレは>>2-5あたり。

42 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:12:08 ]
状態によらず不正な引数が与えられた場合はArgumentExceptionで
それ以外の時はInvalidOperationExceptionとか。

43 名前:38 mailto:sage [2007/08/27(月) 21:15:26 ]
>>40
俺も書いててそう思った。
でも状態を変更→呼び出しっていう一連の操作のうち状態変更がちゃんと行われてないって考えれば
InvalidOperationといえるような。
でもその瞬間だけみれば引数がおかしいのに他ならないからやっぱArgumentException?

44 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:35:03 ]
.NET Frameworkを見てると>>42が正しそうかな

45 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:26:41 ]
.NET 1.1のアプリって.NET2.0や3.0のフレームワーク入れたら動く?

46 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:34:00 ]
なんとなく動く

47 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:37:00 ]
ことによると動く

48 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:41:02 ]
動く可能性は否定できない

49 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:43:36 ]
もし動かなくても文句言うな

50 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:47:48 ]
.NET 1.1を入れちまえばいいんだろ



51 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:50:52 ]
>38
.NETが2.0になってからApplicationExceptionは派生するなって変わった気がする。

52 名前:デフォルトの名無しさん [2007/08/28(火) 00:28:01 ]
フォーム上のコントロールのEnabledをfalseにするとクリック等のイベントが親コントロールに通知されます。
これを通知させないようにする方法はありますでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 10:54:27 ]
渡されたオブジェクトの型を調べて、その型のListを作りたいんだけど<>の中の書き方が分かりません。
教えてえろいひと!

54 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:01:50 ]
まずはお前の肛門拡張からだ

55 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:02:01 ]
Activator.CreateInstance(typeof(List<>).MakeGenericType(obj.GetType()))

56 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:07:02 ]
何がしたいのか知らんが
Type listT=typeof(List<>);
object listHoge=listT.MakeGenericType(typeof(Hoge));

こんな感じじゃなかった?

57 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 11:07:33 ]
( TДT)ゴメンヨーCreate忘れてた

58 名前:デフォルトの名無しさん [2007/08/28(火) 11:13:15 ]
>>53

実行時にしか型がわからないなら、arraylistでobjectに格納すれば
いいんでないの?わざわざジェネリック使う意味がよくわからないけれど。

59 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 12:27:06 ]
Listよりarraylistの方がいいのかな?
使い分けが良く分かってないのでとりあえずList使おうかな、と

60 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 13:58:13 ]
引数の型に合わせるためにどうしても必要とかでなければ>>58でいいよ
Listに統一したかったらList<object>にすれば



61 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 13:59:25 ]
public List<T> CreateList<T>(params T[] objs)
{
 return new List<T>(objs);
}

こうだろ

62 名前:デフォルトの名無しさん [2007/08/28(火) 14:11:04 ]
>>61

63 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 14:13:04 ]
>>61
object value = (Int32)1;
Type type = value.GetType();
MethodInfo method = typeof(Program).GetMethod("CreateList");
MethodInfo generic = method.MakeGenericMethod(type);
Array paramArray = Array.CreateInstance(type, 1);
object list = generic.Invoke(null, new object[] { paramArray });

64 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 15:30:47 ]
dクス
arraylistでちょっとやってみます

65 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 15:32:12 ]
ArrayListよりList<object>のほうがいろいろ便利さ

66 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 16:06:59 ]
もうジェネリックなしでは生きられない
ArrayListでいちいちキャストしてた頃があったなんて信じられない

67 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:33:51 ]
>ArrayListでいちいちキャストしてた頃があったなんて信じられない
もっと地獄なのは、要素型ごとに実装された*Collectionクラス。
たいていIListないし、IEnumerable<T>,ICollection<T>なんてもちろんないし、
しかも未だにあちこちで使われてて実にムカツクんだけど。

68 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:48:49 ]
(´・ω・`)<ねーソケット書く人いる?


69 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:52:05 ]
(・∀・)<いないよー

70 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:53:21 ]
ソケット自体は書いたこと無いな
ソケットを使ったプログラムは書いた事あるけど



71 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 18:53:54 ]
なんかガキ臭い奴が多くて萎えるなあ。。

ガキは宿題でもやってろよ、と言いたいところだが
最近じゃ2chでガキ臭いこと書いてる奴が40面下げたオッサンだったりする
笑えない状況だからなあ。

72 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 19:10:21 ]
(´・ω・`)<L2から書くのは、やっぱむり?



73 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 19:18:09 ]
40のおっさんが2chとかひくww

74 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 19:34:43 ]
すくなくともC#の範囲じゃ無理っぽ

75 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 19:47:34 ]
(´・ω・`)<やっぱ、#だけじゃだめか。
>>74
(´・ω・`)ノシ<有り難う。

76 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 21:19:08 ]
無理じゃねーよ

77 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:06:06 ]
文字列中に2バイトコードが含まれている or 含まれていないって
どういう判別が一番楽かな?
やっぱり正規表現?

78 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:09:22 ]
.NET の文字列はすべて2バイトコードですが何か

79 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:09:51 ]
>>78
あ、ごめん。日本語のひらがなや漢字という意味です。

80 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:13:49 ]
full width alphabet や ラテン拡張文字はどうしましょうか



81 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:14:11 ]
正規表現。

82 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:34:46 ]
>77
Shift_JISでのサイズでも取得すればいいんでない?

83 名前:デフォルトの名無しさん [2007/08/28(火) 23:43:32 ]
プログラミング初心者ですが、 C# 2005 Express Edtion を導入してみました。
それで、現在MSのサンプルプログラムで学習中なのですが、
以下のプログラムをビルドするとエラーが発生します。

www.microsoft.com/japan/msdn/academic/Articles/fun/03/
「エラー1 ジェネリック 型 'System.Collections.Generic.IEnumerator<T>' の使用には、'1' 型の引数が必要です。」

このエラーの意味が分からないのですが、これはどのように改善したら実行できるのでしょうか?
2003年の記事なので、内部の何かが変わっているのでしょうか?




84 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:14:22 ]
using System.Collections;

85 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:22:01 ]
>>67
>もっと地獄なのは、要素型ごとに実装された*Collectionクラス。

C# 3.0だと拡張メソッドのOfType<T>()でIEnumerable<T>に変換できる。
もうちょい待とうぜ。

var sc = new System.Collections.Specialized.StringCollection();
var list = sc.OfType<string>(); // IEnumerable<string>

86 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:36:17 ]
>>84
うまくいきました。
ありがとうございました。

87 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 16:14:18 ]
エラーが出るファイルの上の方に

using System.Collections.Generic;

って書いてないかな?
それを

using System.Collections;

に変更すれば直るはず。

88 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 19:51:34 ]
>>83
なんでこんな変なサンプルを学習に使うの
学習者向けと言うより、「こんなことができるんだよ、すごいでしょ」的なものだろこれ

89 名前:デフォルトの名無しさん [2007/08/29(水) 20:37:25 ]
インターネットショートカットがコピーできないんだけど、なんか方法無いでしょうか

90 名前:83 mailto:sage [2007/08/29(水) 20:38:42 ]
>>87
両方ともなかったので using System.Collections を追加したら動きました。
ありがとうございました。
ただ、リンクチェックを実行すると別のエラーを吐くので調べてます。

>>88
実はリンクチェックソフトを探していてたどり着いたのです
そしてら、VC#では簡単に組めそうではないですか!
驚きと期待で導入し勉強中な訳です
自分好みのリンクチェックソフトを作れたら最高にうれしいのですが・・・甘くはないようですね



91 名前:デフォルトの名無しさん [2007/08/29(水) 21:00:12 ]
>>81
intにキャストして256未満か以上って判断もありだよ

92 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:11:15 ]
その発想はなかったわw
いやもちろん嫌味だが

93 名前:デフォルトの名無しさん [2007/08/29(水) 21:16:22 ]
一文字ごとに処理しなくちゃいけないときは、これが一番早いんだが

94 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:34:30 ]
それじゃハングルとかアラビア語とかも捕まえちゃうんじゃん?

95 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:34:39 ]
Ĭは2バイトコードなの?

96 名前:デフォルトの名無しさん [2007/08/29(水) 21:43:45 ]
>>94
WEBじゃなきゃハングルやアラビア文字考慮する必要が無いシチュエーションなんていくらでも存在するだろ
要は使い分けなんだよ

97 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:51:43 ]
オレの記憶が確かならばここはC#スレであってC言語スレじゃないと思う

98 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:00:27 ]
たしかにC#スレだが、どうしてC言語スレがどうのという話が出てくるんだ?

99 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:34:37 ]
俺様に理解できない話は別言語
でこのスレが間違われやすいのはCスレ。
よって>>97

100 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:40:32 ]
何なのこいつ



101 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 02:05:06 ]
日本語==別言語

102 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 02:07:02 ]
>>101
>>99にとってはtrue

103 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 08:38:09 ]
ToolStripMenuで動的に追加された項目のクリックで処理をしたいのですが、
第一階層目のContextMenuStripではうまくクリックイベントの処理を行えたのですが、
第二階層目のToolStripMenuItemsでDropDownItemsにAddすると、
項目名がひとつしか表示されず、しかもクリックすると、本来ある項目数の数だけ
同じ処理が実行されてしまうような状態にあります。
どのようにすればそれぞれの項目の表示と、適切なクリックイベントの追加ができるようになるか
ご教授いただけないでしょうか。

ToolStripMenuItem items_for_A = new ToolStripMenuItem();
ToolStripMenuItem items_for_B = new ToolStripMenuItem();
Hashtable ht = new Hashtable(); // この中にはいくつかデータがあります

foreach(string ID in ht.keys)

    items_for_A.Text = ID;
    items_for_B.Text = ID;

    // 編集項目
    items_for_A.Click += delegate
    {
        NewForm Frm = new NewForm(ID);
        Frm.Show(); // フォームの表示
    };
    this.ToolStripMenuItemA.DropDownItems.Add(items_for_A);

    items_for_B.Click += delegate
    {
        Program.Hoge(ID); // 処理
    };
    this.ToolStripMenuItemB.DropDownItems.Add(items_for_B);
}

104 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 09:03:36 ]
>98
>intにキャストして256未満か以上って判断もありだよ
がどう見てもC言語的な考え方だって意味
C#でそんなコードはトリッキーなだけだろ

105 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 09:59:17 ]
みんなわかってるからスルーでいいのに・・・

106 名前:デフォルトの名無しさん [2007/08/30(木) 11:00:01 ]
>>103
ループの中で newしていないからアイテムのインスタンスが一つしかないからだよ
ToolStripMenuItem items_for_A = new ToolStripMenuItem();
ToolStripMenuItem items_for_B = new ToolStripMenuItem();
をループの中に移動してみ

107 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 12:37:40 ]
>>103
まあ真面目に入門書の一冊も読むべきだね。
基本がぜんぜんなってない感じ。

108 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:14:04 ]
>intにキャストして256未満か以上って判断もありだよ
ワロタ
こういう奴いるよな
ちょっと専門的なことひけらかして、俺すげーだろ的な
こういう奴と仕事したくねー

109 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:24:50 ]
自宅警備員に同僚っているの?

110 名前:デフォルトの名無しさん [2007/08/30(木) 13:30:10 ]
>91
馬鹿晒しage



111 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:39:19 ]
>>109
自演乙

112 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:54:45 ]
嫉妬が炸裂するような内容だったんだろうか。

113 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:37:18 ]
嫉妬ってwww本気で言ってそうで笑えんわ・・・

114 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:38:43 ]
嫉妬は勘違いだろ

115 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:45:52 ]
相談スレで相談に対して答えを出しただけで
どうしてここまで叩かれているのだろうか?
C#相談スレの住人の程度が知れる。

116 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:46:57 ]
>>115
   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
  ノ/  /     \_____
  ノ ̄ゝ

117 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:48:14 ]
>>115
ヒント:夏休み

118 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:48:34 ]
>115は満月の晩に変身するタイプの人間だろ、間違いなく。

119 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:51:08 ]
間違いがあれば指摘すればいいのに
人格攻撃が始まっちゃうんだもんな

120 名前:デフォルトの名無しさん [2007/08/30(木) 15:14:20 ]
単に UTF-16 で U+00?? になる文字は CP932 で1バイトになる文字なのか、
というような問題 (答えは否) のような気がするわけで、C 言語がどうとかいう話に
なるのかよくわからない。

C# の char が Unicode 文字であること、整数型にキャストできること、は C# の
仕様として明記されているわけだし (むしろ c の w_char の方が正体不明)。




121 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:26:22 ]
ごちゃごちゃうるさいスレになってきたなw
API使って出来なければ自作のライブラリを作るのが基本だろう。
なにを訳わからない議論してるんだ?

122 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:33:21 ]
RichTextBox を MS ゴシック で利用していますが、
文字列の一部を Bold にすると、その部分だけ横幅が広くなってしまい、
文字列がずれてしまいます。
Bold にしても文字幅が変わらないようにする方法はないでしょうか?



123 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:34:26 ]
自前で描画するしかないわな

124 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:34:31 ]
まぁセンスの問題だからな

でもIntにキャストするのが賛成のやつは俺の現場に近づかないでくれwwwっうぇwww

125 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:36:51 ]
HALFWIDTH_AND_FULLWIDTH_FORMSとかがあるしなぁ
\u00ff以下とかは流石に適当すぎだろ

126 名前:122 mailto:sage [2007/08/30(木) 15:58:52 ]
>>123
そうですか><
残念。

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

127 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 16:28:48 ]
というか日本語かどうかを識別するベーシックな方法を
誰も教えてないんじゃないか

charのメソッドになんかローカライズ情報を与えると
分かるとかそんなんあったろ

128 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 16:33:49 ]
>>124
俺様に理解できない話は別言語ってか?

129 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 16:37:21 ]
.NETってユニコードブロックをサポートしてたっけ?

サポートしてなくても
Hiragana, Katakana, HalfwidthAndFullwidthForms, CJKUnifiedIdeographs, CJKSymbolsAndPunctuation
あたりに含まれてるかどうか不等号で調べればいいだけだけど。

130 名前:129 mailto:sage [2007/08/30(木) 16:39:58 ]
ああ、正規表現は対応してたね。



131 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 16:48:26 ]
>128
言語のライブラリに用意されてる機能を自作して悦に入るような奴は狼人間ってこと

132 名前:デフォルトの名無しさん [2007/08/30(木) 17:03:04 ]
Encoding.GetBytes() があるから他の方法は認めません、と。
そういう考え方でOKな仕事も多いよね。

133 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 17:18:27 ]
ま、スマートじゃないわな
マジックナンバーを使うのと同じ臭いがする

134 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 17:20:23 ]
人を小ばかにして悦に入るようなヤツは何人間?

135 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 17:25:30 ]
スヘフェニンゲン

136 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 18:29:22 ]
>>122
MS ゴシックなら1pt下げれば同じになると思う

137 名前:103 mailto:sage [2007/08/30(木) 18:49:35 ]
>>106
クリック時の挙動がまだきちんとできませんでしたが、今回実現させたいことはできました。
どうもありがとうございました。

>>107
VB6を中途半端に覚えてからしばらくWebアプリのスクリプトに流れて、久々に勉強を兼ねてWinアプリを作ってみたのですが
やっぱりきちんと基本からやり直さないとダメですね。
ご指摘ありです。

138 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 18:52:54 ]
>>137
次からはふらっと池よ

139 名前:103 mailto:sage [2007/08/30(木) 19:02:42 ]
>>138
ふらっとも読んでたのですが向こうの>>1を読み飛ばしてしまってました。
そうします。スレ汚し失礼しました。

140 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 19:24:20 ]
プログラム全くやったことなくてC#覚えなくちゃならなくなったんだけど、
お勧めの参考書教えてください。



141 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 19:50:54 ]
フラット池

142 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 20:04:13 ]
Web検索とインテリセンスで何とかなるよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<133KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef