- 1 名前:デフォルトの名無しさん [2007/08/26(日) 12:42:25 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ C#, C♯, C#相談室 Part41 pc11.2ch.net/test/read.cgi/tech/1184840053/ 過去スレは>>2-5あたり。
- 14 名前:デフォルトの名無しさん [2007/08/26(日) 19:15:02 ]
- SortedDictionaryに格納されている先頭のKeyの取得の仕方を教えてください。
- 15 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 19:20:30 ]
- foreach一回目
- 16 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 19:20:33 ]
- foreachで回して1回目だけメモっておけばよいだけでは?
- 17 名前:デフォルトの名無しさん [2007/08/26(日) 19:28:26 ]
- こんな感じですね?
string FirstKey; foreach (KeyValuePair<string,int> pair in sortedDictionary) { FirstKey = pair.Key; break; } これしか方法は無いのでしょうか?
- 18 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:08:29 ]
- Enumerator取得して、一個目だけとればいいじゃん。
- 19 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:41:23 ]
- イミナサスw
- 20 名前:デフォルトの名無しさん [2007/08/26(日) 20:42:49 ]
- >>18
抽象的なアドバイスなら私にも出来ますが?
- 21 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:46:34 ]
- 別に抽象的ではない。
意味ないけどなw
- 22 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:50:39 ]
- こんな感じ?
SortedDictionary<string, string> sd = new SortedDictionary<string, string>(); sd.Add("a", "b"); SortedDictionary<string, string>.Enumerator e = sd.GetEnumerator(); if (e.MoveNext()) MessageBox.Show(e.Current.Key + " : "+e.Current.Value);
- 23 名前:18じゃないけど mailto:sage [2007/08/26(日) 20:52:02 ]
- 意味ないか?
foreachよりはマシだと思うけど・・・
- 24 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:53:17 ]
- C#3.0 だとこれで取れる。
Console.WriteLine(sd.Keys.First());
- 25 名前:デフォルトの名無しさん [2007/08/27(月) 01:27:47 ]
- WebBrowserコントロールでFlashを表示するとFlash内のクリックでのイベントが
が1度目しか実行されないのだけど対処策があるか知りませんか? コントロールから一度フォーカスを外すとイベントが処理されるようです。 IEコンポーネントを直接使うと問題はないのでコントロールのバグかと思われるのですが。
- 26 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 02:18:02 ]
- プログラムとは関係ないんだけど、
C#の月刊技術書って何読んでる? Windows Deveropers Magazineが休刊してから、何も読んでなくて。
- 27 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 07:46:08 ]
- C#で作った実行ファイルを配布する時って、何の情報があればいいすか
.NET入れとけ、みたいな つまりユーザー向け実行環境のことで相談なんすが
- 28 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 10:10:24 ]
- .NET Framework入れとけでおk
.NET2.0なら実行環境は2.0でも3.0でもおkだから今から配るなら3.0入れとけにしとけ
- 29 名前:28 mailto:sage [2007/08/27(月) 10:14:31 ]
- 日本語変だな
今から入れるなら3.0入れとけと言いたかった
- 30 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:11:53 ]
- WindowsUpdateしておけと書く
- 31 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 16:46:39 ]
- >>30
カスタムでないとインストールされないのでは?
- 32 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 18:44:56 ]
- vista買えでいいんじゃね
- 33 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:32:47 ]
- そんなソフト誰も使わねえ
- 34 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:35:20 ]
- オブジェクトの現在の状態に対して不適切な引数が与えられて
メソッドの呼び出しが失敗したとき、 ArgumentExceptionとInvalidOperationExceptionのどちらを投げればいいの?
- 35 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:35:28 ]
- 誰も使うなでいいんじゃね
- 36 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:37:16 ]
- >>34
おいらはInvalidOperationの方投げる
- 37 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:41:58 ]
- ArgumentExceptionのInnerExceptionにInvalidOperationExceptionを設定したものを
投げる、が正解。 というのは半分冗談だけど、ArgumentExceptionの方適切だと俺は思うけどなー InvalidOperationExceptionだと現在のステートだと引数に無関係に問答無用で ダメだという印象を受けるよ
- 38 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:52:42 ]
- 引数もoperationの一部だからそんなことないのでは。
ところで全部ApplicationExceptionから派生させろって規則は結局なくなったのか いつからなくなったんだっけ。
- 39 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:02:35 ]
- 2.0からだったかな
- 40 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:02:48 ]
- >>38
その理屈だと、そもそもArgumentExceptionは不要という話にならないか?
- 41 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:05:37 ]
- ガイドラインのInvalidOperationの
> オブジェクトの現在の状態から判断して、プロパティ セットやメソッド呼び出しが不適切な場合は、 > System.InvalidOperationException をスローする必要があります。 をどう解釈するかによるなぁ むしろメソッド個別の問題か?
- 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 ]
- 嫉妬は勘違いだろ
|

|