C#, C♯, C#相談室 P ..
34:デフォルトの名無しさん
07/08/27 20:35:20
オブジェクトの現在の状態に対して不適切な引数が与えられて
メソッドの呼び出しが失敗したとき、
ArgumentExceptionとInvalidOperationExceptionのどちらを投げればいいの?
35:デフォルトの名無しさん
07/08/27 20:35:28
誰も使うなでいいんじゃね
36:デフォルトの名無しさん
07/08/27 20:37:16
>>34
おいらはInvalidOperationの方投げる
37:デフォルトの名無しさん
07/08/27 20:41:58
ArgumentExceptionのInnerExceptionにInvalidOperationExceptionを設定したものを
投げる、が正解。
というのは半分冗談だけど、ArgumentExceptionの方適切だと俺は思うけどなー
InvalidOperationExceptionだと現在のステートだと引数に無関係に問答無用で
ダメだという印象を受けるよ
38:デフォルトの名無しさん
07/08/27 20:52:42
引数もoperationの一部だからそんなことないのでは。
ところで全部ApplicationExceptionから派生させろって規則は結局なくなったのか
いつからなくなったんだっけ。
39:デフォルトの名無しさん
07/08/27 21:02:35
2.0からだったかな
40:デフォルトの名無しさん
07/08/27 21:02:48
>>38
その理屈だと、そもそもArgumentExceptionは不要という話にならないか?
41:デフォルトの名無しさん
07/08/27 21:05:37
ガイドラインのInvalidOperationの
> オブジェクトの現在の状態から判断して、プロパティ セットやメソッド呼び出しが不適切な場合は、
> System.InvalidOperationException をスローする必要があります。
をどう解釈するかによるなぁ
むしろメソッド個別の問題か?
42:デフォルトの名無しさん
07/08/27 21:12:08
状態によらず不正な引数が与えられた場合はArgumentExceptionで
それ以外の時はInvalidOperationExceptionとか。
43:38
07/08/27 21:15:26
>>40
俺も書いててそう思った。
でも状態を変更→呼び出しっていう一連の操作のうち状態変更がちゃんと行われてないって考えれば
InvalidOperationといえるような。
でもその瞬間だけみれば引数がおかしいのに他ならないからやっぱArgumentException?
44:デフォルトの名無しさん
07/08/27 21:35:03
.NET Frameworkを見てると>>42が正しそうかな
45:デフォルトの名無しさん
07/08/27 22:26:41
.NET 1.1のアプリって.NET2.0や3.0のフレームワーク入れたら動く?
46:デフォルトの名無しさん
07/08/27 22:34:00
なんとなく動く
47:デフォルトの名無しさん
07/08/27 22:37:00
ことによると動く
48:デフォルトの名無しさん
07/08/27 22:41:02
動く可能性は否定できない
49:デフォルトの名無しさん
07/08/27 22:43:36
もし動かなくても文句言うな
50:デフォルトの名無しさん
07/08/27 22:47:48
.NET 1.1を入れちまえばいいんだろ
51:デフォルトの名無しさん
07/08/27 23:50:52
>38
.NETが2.0になってからApplicationExceptionは派生するなって変わった気がする。
52:デフォルトの名無しさん
07/08/28 00:28:01
フォーム上のコントロールのEnabledをfalseにするとクリック等のイベントが親コントロールに通知されます。
これを通知させないようにする方法はありますでしょうか?
53:デフォルトの名無しさん
07/08/28 10:54:27
渡されたオブジェクトの型を調べて、その型のListを作りたいんだけど<>の中の書き方が分かりません。
教えてえろいひと!
54:デフォルトの名無しさん
07/08/28 11:01:50
まずはお前の肛門拡張からだ
55:デフォルトの名無しさん
07/08/28 11:02:01
Activator.CreateInstance(typeof(List<>).MakeGenericType(obj.GetType()))
56:デフォルトの名無しさん
07/08/28 11:07:02
何がしたいのか知らんが
Type listT=typeof(List<>);
object listHoge=listT.MakeGenericType(typeof(Hoge));
こんな感じじゃなかった?
57:デフォルトの名無しさん
07/08/28 11:07:33
( TДT)ゴメンヨーCreate忘れてた
58:デフォルトの名無しさん
07/08/28 11:13:15
>>53
実行時にしか型がわからないなら、arraylistでobjectに格納すれば
いいんでないの?わざわざジェネリック使う意味がよくわからないけれど。
59:デフォルトの名無しさん
07/08/28 12:27:06
Listよりarraylistの方がいいのかな?
使い分けが良く分かってないのでとりあえずList使おうかな、と
60:デフォルトの名無しさん
07/08/28 13:58:13
引数の型に合わせるためにどうしても必要とかでなければ>>58でいいよ
Listに統一したかったらList<object>にすれば
61:デフォルトの名無しさん
07/08/28 13:59:25
public List<T> CreateList<T>(params T[] objs)
{
return new List<T>(objs);
}
こうだろ
62:デフォルトの名無しさん
07/08/28 14:11:04
>>61
63:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/28 15:30:47
dクス
arraylistでちょっとやってみます
65:デフォルトの名無しさん
07/08/28 15:32:12
ArrayListよりList<object>のほうがいろいろ便利さ
66:デフォルトの名無しさん
07/08/28 16:06:59
もうジェネリックなしでは生きられない
ArrayListでいちいちキャストしてた頃があったなんて信じられない
67:デフォルトの名無しさん
07/08/28 18:33:51
>ArrayListでいちいちキャストしてた頃があったなんて信じられない
もっと地獄なのは、要素型ごとに実装された*Collectionクラス。
たいていIListないし、IEnumerable<T>,ICollection<T>なんてもちろんないし、
しかも未だにあちこちで使われてて実にムカツクんだけど。
68:デフォルトの名無しさん
07/08/28 18:48:49
(´・ω・`)<ねーソケット書く人いる?
69:デフォルトの名無しさん
07/08/28 18:52:05
(・∀・)<いないよー
70:デフォルトの名無しさん
07/08/28 18:53:21
ソケット自体は書いたこと無いな
ソケットを使ったプログラムは書いた事あるけど
71:デフォルトの名無しさん
07/08/28 18:53:54
なんかガキ臭い奴が多くて萎えるなあ。。
ガキは宿題でもやってろよ、と言いたいところだが
最近じゃ2chでガキ臭いこと書いてる奴が40面下げたオッサンだったりする
笑えない状況だからなあ。
72:デフォルトの名無しさん
07/08/28 19:10:21
(´・ω・`)<L2から書くのは、やっぱむり?
73:デフォルトの名無しさん
07/08/28 19:18:09
40のおっさんが2chとかひくww
74:デフォルトの名無しさん
07/08/28 19:34:43
すくなくともC#の範囲じゃ無理っぽ
75:デフォルトの名無しさん
07/08/28 19:47:34
(´・ω・`)<やっぱ、#だけじゃだめか。
>>74
(´・ω・`)ノシ<有り難う。
76:デフォルトの名無しさん
07/08/28 21:19:08
無理じゃねーよ
77:デフォルトの名無しさん
07/08/28 22:06:06
文字列中に2バイトコードが含まれている or 含まれていないって
どういう判別が一番楽かな?
やっぱり正規表現?
78:デフォルトの名無しさん
07/08/28 22:09:22
.NET の文字列はすべて2バイトコードですが何か
79:デフォルトの名無しさん
07/08/28 22:09:51
>>78
あ、ごめん。日本語のひらがなや漢字という意味です。
80:デフォルトの名無しさん
07/08/28 22:13:49
full width alphabet や ラテン拡張文字はどうしましょうか
81:デフォルトの名無しさん
07/08/28 22:14:11
正規表現。
82:デフォルトの名無しさん
07/08/28 22:34:46
>77
Shift_JISでのサイズでも取得すればいいんでない?
83:デフォルトの名無しさん
07/08/28 23:43:32
プログラミング初心者ですが、 C# 2005 Express Edtion を導入してみました。
それで、現在MSのサンプルプログラムで学習中なのですが、
以下のプログラムをビルドするとエラーが発生します。
URLリンク(www.microsoft.com)
「エラー1 ジェネリック 型 'System.Collections.Generic.IEnumerator<T>' の使用には、'1' 型の引数が必要です。」
このエラーの意味が分からないのですが、これはどのように改善したら実行できるのでしょうか?
2003年の記事なので、内部の何かが変わっているのでしょうか?
84:デフォルトの名無しさん
07/08/29 00:14:22
using System.Collections;
85:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/29 10:36:17
>>84
うまくいきました。
ありがとうございました。
87:デフォルトの名無しさん
07/08/29 16:14:18
エラーが出るファイルの上の方に
using System.Collections.Generic;
って書いてないかな?
それを
using System.Collections;
に変更すれば直るはず。
88:デフォルトの名無しさん
07/08/29 19:51:34
>>83
なんでこんな変なサンプルを学習に使うの
学習者向けと言うより、「こんなことができるんだよ、すごいでしょ」的なものだろこれ
89:デフォルトの名無しさん
07/08/29 20:37:25
インターネットショートカットがコピーできないんだけど、なんか方法無いでしょうか
90:83
07/08/29 20:38:42
>>87
両方ともなかったので using System.Collections を追加したら動きました。
ありがとうございました。
ただ、リンクチェックを実行すると別のエラーを吐くので調べてます。
>>88
実はリンクチェックソフトを探していてたどり着いたのです
そしてら、VC#では簡単に組めそうではないですか!
驚きと期待で導入し勉強中な訳です
自分好みのリンクチェックソフトを作れたら最高にうれしいのですが・・・甘くはないようですね
91:デフォルトの名無しさん
07/08/29 21:00:12
>>81
intにキャストして256未満か以上って判断もありだよ
92:デフォルトの名無しさん
07/08/29 21:11:15
その発想はなかったわw
いやもちろん嫌味だが
93:デフォルトの名無しさん
07/08/29 21:16:22
一文字ごとに処理しなくちゃいけないときは、これが一番早いんだが
94:デフォルトの名無しさん
07/08/29 21:34:30
それじゃハングルとかアラビア語とかも捕まえちゃうんじゃん?
95:デフォルトの名無しさん
07/08/29 21:34:39
Ĭは2バイトコードなの?
96:デフォルトの名無しさん
07/08/29 21:43:45
>>94
WEBじゃなきゃハングルやアラビア文字考慮する必要が無いシチュエーションなんていくらでも存在するだろ
要は使い分けなんだよ
97:デフォルトの名無しさん
07/08/29 21:51:43
オレの記憶が確かならばここはC#スレであってC言語スレじゃないと思う
98:デフォルトの名無しさん
07/08/29 22:00:27
たしかにC#スレだが、どうしてC言語スレがどうのという話が出てくるんだ?
99:デフォルトの名無しさん
07/08/30 01:34:37
俺様に理解できない話は別言語
でこのスレが間違われやすいのはCスレ。
よって>>97
100:デフォルトの名無しさん
07/08/30 01:40:32
何なのこいつ
101:デフォルトの名無しさん
07/08/30 02:05:06
日本語==別言語
102:デフォルトの名無しさん
07/08/30 02:07:02
>>101
>>99にとってはtrue
103:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/08/30 09:03:36
>98
>intにキャストして256未満か以上って判断もありだよ
がどう見てもC言語的な考え方だって意味
C#でそんなコードはトリッキーなだけだろ
105:デフォルトの名無しさん
07/08/30 09:59:17
みんなわかってるからスルーでいいのに・・・
106:デフォルトの名無しさん
07/08/30 11:00:01
>>103
ループの中で newしていないからアイテムのインスタンスが一つしかないからだよ
ToolStripMenuItem items_for_A = new ToolStripMenuItem();
ToolStripMenuItem items_for_B = new ToolStripMenuItem();
をループの中に移動してみ
107:デフォルトの名無しさん
07/08/30 12:37:40
>>103
まあ真面目に入門書の一冊も読むべきだね。
基本がぜんぜんなってない感じ。
108:デフォルトの名無しさん
07/08/30 13:14:04
>intにキャストして256未満か以上って判断もありだよ
ワロタ
こういう奴いるよな
ちょっと専門的なことひけらかして、俺すげーだろ的な
こういう奴と仕事したくねー
109:デフォルトの名無しさん
07/08/30 13:24:50
自宅警備員に同僚っているの?
110:デフォルトの名無しさん
07/08/30 13:30:10
>91
馬鹿晒しage
111:デフォルトの名無しさん
07/08/30 13:39:19
>>109
自演乙
112:デフォルトの名無しさん
07/08/30 13:54:45
嫉妬が炸裂するような内容だったんだろうか。
113:デフォルトの名無しさん
07/08/30 14:37:18
嫉妬ってwww本気で言ってそうで笑えんわ・・・
114:デフォルトの名無しさん
07/08/30 14:38:43
嫉妬は勘違いだろ
115:デフォルトの名無しさん
07/08/30 14:45:52
相談スレで相談に対して答えを出しただけで
どうしてここまで叩かれているのだろうか?
C#相談スレの住人の程度が知れる。
116:デフォルトの名無しさん
07/08/30 14:46:57
>>115
∧_∧ / ̄ ̄ ̄ ̄ ̄
(ω・ )ゝ < なんだって?
ノ/ / \_____
ノ ̄ゝ
117:デフォルトの名無しさん
07/08/30 14:48:14
>>115
ヒント:夏休み
118:デフォルトの名無しさん
07/08/30 14:48:34
>115は満月の晩に変身するタイプの人間だろ、間違いなく。
119:デフォルトの名無しさん
07/08/30 14:51:08
間違いがあれば指摘すればいいのに
人格攻撃が始まっちゃうんだもんな
120:デフォルトの名無しさん
07/08/30 15:14:20
単に UTF-16 で U+00?? になる文字は CP932 で1バイトになる文字なのか、
というような問題 (答えは否) のような気がするわけで、C 言語がどうとかいう話に
なるのかよくわからない。
C# の char が Unicode 文字であること、整数型にキャストできること、は C# の
仕様として明記されているわけだし (むしろ c の w_char の方が正体不明)。
121:デフォルトの名無しさん
07/08/30 15:26:22
ごちゃごちゃうるさいスレになってきたなw
API使って出来なければ自作のライブラリを作るのが基本だろう。
なにを訳わからない議論してるんだ?
122:デフォルトの名無しさん
07/08/30 15:33:21
RichTextBox を MS ゴシック で利用していますが、
文字列の一部を Bold にすると、その部分だけ横幅が広くなってしまい、
文字列がずれてしまいます。
Bold にしても文字幅が変わらないようにする方法はないでしょうか?
123:デフォルトの名無しさん
07/08/30 15:34:26
自前で描画するしかないわな
124:デフォルトの名無しさん
07/08/30 15:34:31
まぁセンスの問題だからな
でもIntにキャストするのが賛成のやつは俺の現場に近づかないでくれwwwっうぇwww
125:デフォルトの名無しさん
07/08/30 15:36:51
HALFWIDTH_AND_FULLWIDTH_FORMSとかがあるしなぁ
\u00ff以下とかは流石に適当すぎだろ
126:122
07/08/30 15:58:52
>>123
そうですか><
残念。
ありがとうございました。
127:デフォルトの名無しさん
07/08/30 16:28:48
というか日本語かどうかを識別するベーシックな方法を
誰も教えてないんじゃないか
charのメソッドになんかローカライズ情報を与えると
分かるとかそんなんあったろ
128:デフォルトの名無しさん
07/08/30 16:33:49
>>124
俺様に理解できない話は別言語ってか?
129:デフォルトの名無しさん
07/08/30 16:37:21
.NETってユニコードブロックをサポートしてたっけ?
サポートしてなくても
Hiragana, Katakana, HalfwidthAndFullwidthForms, CJKUnifiedIdeographs, CJKSymbolsAndPunctuation
あたりに含まれてるかどうか不等号で調べればいいだけだけど。
130:129
07/08/30 16:39:58
ああ、正規表現は対応してたね。
131:デフォルトの名無しさん
07/08/30 16:48:26
>128
言語のライブラリに用意されてる機能を自作して悦に入るような奴は狼人間ってこと
132:デフォルトの名無しさん
07/08/30 17:03:04
Encoding.GetBytes() があるから他の方法は認めません、と。
そういう考え方でOKな仕事も多いよね。
133:デフォルトの名無しさん
07/08/30 17:18:27
ま、スマートじゃないわな
マジックナンバーを使うのと同じ臭いがする
134:デフォルトの名無しさん
07/08/30 17:20:23
人を小ばかにして悦に入るようなヤツは何人間?
135:デフォルトの名無しさん
07/08/30 17:25:30
スヘフェニンゲン
136:デフォルトの名無しさん
07/08/30 18:29:22
>>122
MS ゴシックなら1pt下げれば同じになると思う
137:103
07/08/30 18:49:35
>>106
クリック時の挙動がまだきちんとできませんでしたが、今回実現させたいことはできました。
どうもありがとうございました。
>>107
VB6を中途半端に覚えてからしばらくWebアプリのスクリプトに流れて、久々に勉強を兼ねてWinアプリを作ってみたのですが
やっぱりきちんと基本からやり直さないとダメですね。
ご指摘ありです。
138:デフォルトの名無しさん
07/08/30 18:52:54
>>137
次からはふらっと池よ
139:103
07/08/30 19:02:42
>>138
ふらっとも読んでたのですが向こうの>>1を読み飛ばしてしまってました。
そうします。スレ汚し失礼しました。
140:デフォルトの名無しさん
07/08/30 19:24:20
プログラム全くやったことなくてC#覚えなくちゃならなくなったんだけど、
お勧めの参考書教えてください。
141:デフォルトの名無しさん
07/08/30 19:50:54
フラット池
142:デフォルトの名無しさん
07/08/30 20:04:13
Web検索とインテリセンスで何とかなるよ
143:デフォルトの名無しさん
07/08/30 20:38:59
ActiveReports3.0を使った帳票を作成しています。.Net環境はVS2005を使用してます。
現象は、WebViewerを使ってPDF形式の出力をしようとすると、2003ServerEnterpriseだと
普通に出るのですが、2003server R2 StandardだとNo Specify Reportsと出てしまいます。
2台の同じバージョンのサーバーに入れて同じ現象でした。
また、WindowsXPの開発環境では普通に表示できます。似たような事象に出会ったかた
いらっしゃいましたら回避方法をお願いできませんでしょうか。
ここで聞くべきかあれですが、スレ違いでしたら誘導していただけると助かります。
よろしくお願いいたします。
144:デフォルトの名無しさん
07/08/30 20:44:48
勢いでソートしたらここもふらっともかなり上位だし
この板で一番レス数の多い言語はC#ということになりそうだな
145:デフォルトの名無しさん
07/08/30 21:05:05
まあ、C/C++ 出身者から初心者まで、ターゲットの幅が広いし。
146:デフォルトの名無しさん
07/08/30 21:33:06
TabControlの中に、TextBoxを複数配置し、PropetyBindingでデータをバインドしてます。
フォームが閉じられる際に、TextBoxの値が未入力ならアラートを出すようにしてますが、
TextBoxに値があるのにif(TextBox.Text == "")がtrueとなってしまいます。
その際、一度TextBoxが含まれるTabをセレクトすると正常な挙動となります。
どのような問題が考えられますでしょうか?
147:デフォルトの名無しさん
07/08/30 21:52:12
>>77
URLリンク(www.atmarkit.co.jp)
148:デフォルトの名無しさん
07/08/31 10:58:54
ファイルへの書き込みで質問があります。
using (TextWriter stream = createStream(filePath, Encoding.GetEncoding(932))) {
foreach (string line in hogeList) {
stream.WriteLine(line);
}
}
というような感じで、5千万行(約5G)ファイルに書き込むのですが、
3千万行(約3G)ほど書き込んだ所で以下のような例外が出てしまいました。
この例外発生時はディスク容量に余裕がある状態でした。
GetBytes() または GetByteCount() を呼び出す前に、Convert() 操作を完了するか、または Encoder.Reset() を呼び出さなければなりません。エンコーダ '日本語 (シフト JIS)' フォールバック 'System.Text.InternalEncoderBestFitFallback'。
System.ArgumentException: GetBytes() または GetByteCount() を呼び出す前に、Convert() 操作を完了するか、または Encoder.Reset() を呼び出さなければなりません。エンコーダ '日本語 (シフト JIS)' フォールバック 'System.Text.InternalEncoderBestFitFallback'。
場所 System.Text.DBCSCodePageEncoding.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32 byteCount, EncoderNLS encoder)
場所 System.Text.EncoderNLS.GetBytes(Char* chars, Int32 charCount, Byte* bytes, Int32 byteCount, Boolean flush)
場所 System.Text.EncoderNLS.GetBytes(Char[] chars, Int32 charIndex, Int32 charCount, Byte[] bytes, Int32 byteIndex, Boolean flush)
場所 System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
場所 System.IO.StreamWriter.Dispose(Boolean disposing)
場所 System.IO.TextWriter.Dispose()
見た感じEncodingの設定でコケてるように見えますが、意味が分りません。
もしかして○ギガ以上のファイルを作れない、といった感じの制限があるのでしょうか。
・Win2000
・VisualC# 2005 ExpressEdition
・.net framework2.0
149:デフォルトの名無しさん
07/08/31 11:47:59
このレスを見たあなたは確実に交通事故に会います
逃れる方法はただ一つ
↓このスレに行き
スレリンク(rcomic板)
// ̄ ̄ ̄ ̄\ .
彳丿; /,,,,,,,,\ u lヽ
入丿 -◎─◎- ;ヽミ.
| u:.:: (●:.:.●) u:.::|
| :∴) 3 (∴.:: | か、か、葛西なんてダサいよね♪
ノ ヽ、 ,___,. u . ノ、 や、や、やっぱり大阪の川島が最強だよ♪
>>255-256
( ´,_ゝ`)
理論で勝てないからって恥かし過ぎw
何処をどう見ても川島厨の理論が破綻し過ぎw
川島厨の特徴 恥かしくも自分の事を川島派と名乗る
一生懸命書いた恥かしい>>151-152を誰も納得してくれないので拗ねてる
早く病院行けっつううのwww
いい加減コピペ止めろ、葛西厨装った川島厨!!
>>377
↑はいはいコピペ乙
コピペしてる奴は、その内容関係なしに、川島厨の荒らしだって事はとっくにバレてんだよ!
>>151-152の直後といい、>>255-256の直後といい、先にコピペ荒らしすんのは、常に川島厨からだからだ!!
分かったか?カス!! 反論できないからってここまで荒らすか?
好きなだけ荒らせば?このスレは元々お前を隔離する為のスレだし
と書き込んでください。書き込まなければ確実に明日交通事故にあいますよ
150:デフォルトの名無しさん
07/08/31 12:33:22
コピペ君って馬鹿だな、まで読んだ。
151:デフォルトの名無しさん
07/08/31 14:48:56
宿題が終わってません、まで読んだ。
152:デフォルトの名無しさん
07/08/31 15:44:47
>>148
line に CP932 に属さない文字があるんじゃない?
153:デフォルトの名無しさん
07/08/31 16:27:52
Action<T>のメソッドを可変に指定することは出来ないの?
154:デフォルトの名無しさん
07/08/31 16:35:47
質問の意味が分かりません。
155:デフォルトの名無しさん
07/08/31 17:45:35
・Action<T1, T2>を自分で定義する
・Action<object>を使う
・Action<string> action = delegate(string x){};などとして引数にactionを渡す
自分の想像力の範囲で挙げてみた
156:デフォルトの名無しさん
07/08/31 17:59:05
>148
private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter stream = new StreamWriter(@"c:\hage.txt", false, Encoding.GetEncoding(932))) {
for (int i = 0; i < 100000000; i++) {
stream.WriteLine("12345678901234567890123456789012345678901234567890\n");
}
}
}
を実行したら2G書いたところでで落ちた
Encoder.Resetのヘルプ見たらなんとなく理由は分かった気がするけど解決法はシラネ
157:デフォルトの名無しさん
07/08/31 18:11:29
一気に書き込まずに、時々ストリームを閉じてappendで追記すればOK。
158:デフォルトの名無しさん
07/08/31 18:34:19
スーパーバイザーコールはCPU占有するから、処理を一気に行うのは良くない。
159:デフォルトの名無しさん
07/08/31 18:53:46
ご存知の方いたらよろしくおながいします。
【開発環境】
visual studio 2005 、言語はC#です
【やりたいこと】
・「クラス名」を変数として、newしたい
(newする対象となるクラスを可変にしたい、ということです)
【例:正しいコードではないけど、やりたいことのイメージ】
// newしたいクラス名を引数として、newしたクラスインスタンスを返す関数
object getCreatedClass(string iClassName) {
return new iClassName();
}
ClassExample1 ex = getCreatedClass("ClassExample1 "); // ClassExample1 を作る
ClassExample2 ex = getCreatedClass("ClassExample2 "); // ClassExample2 を作る
※ 「ClassExample1 ex = new ClassExample1()」でダメなの?と思われるかもしれませんが、
上の関数はあくまで簡潔にした例で、実際にはgetCreatedClass内で
new以外にも、クラス名を使った処理をしたいのです。
160:デフォルトの名無しさん
07/08/31 18:59:46
リフレクションでググれ
161:デフォルトの名無しさん
07/08/31 19:20:56
またそれか
Activator.CreateInstance
そんなことそんなに頻繁に行われることなの?
やるとしてもちゃんとわかってる人がやるものじゃないの?
162:デフォルトの名無しさん
07/08/31 19:59:49
いまの現場にいるオレよりキャリア長いけどよく分かってない人はリフレクション大好きだぜ
163:148
07/08/31 20:42:26
>>152
156さんの例もあるので、CP932絡みの問題ではないようです。
>>156
やはり落ちましたか。
根本的な解決ではないですが、とりあえずファイルを分割して
最後にDOSコマンドで連結する事で逃げることにしました。
>>157
なるほど。その発想はありませんでした。試してみます。
164:デフォルトの名無しさん
07/08/31 20:47:44
ネイティブのDLLから、バイナリ列を取得したいのですが、
バイト配列のマーシャリングは、どうすればよいのでしょうか?
BOOL native_func(LPBYTE pBuff, DWORD dwBuffSize, LPDWORD lpByteReturned);
文字列や構造体のサンプルはいくつか見つけたのですが。。
165:デフォルトの名無しさん
07/08/31 21:06:31
面倒なときはメモリ確保してIntPtrで渡して帰ってきたらMarshal.Copy
166:デフォルトの名無しさん
07/08/31 21:09:31
>>164
MSDNライブラリ読んで理解できないのなら(まあ、君は最初から読んでなさそうだけど)
やらない方がいいんじゃないの?
人に聞くような難解な話とも俺には思えないから言うんだけど。
でないと危険だと思うけどね。
それとも、分からないことや意図しない動作に遭遇する度にいちいち人に聞くつもり?
167:デフォルトの名無しさん
07/08/31 21:17:12
unsafeでもいいならfixedでできたっけ
168:164
07/08/31 21:24:24
>166
ありがとう。
System.Array で受けようとしてはまっていました。
Blittable型は、特別なコーディングいらないってことなので、
[DllImport("LargeBuffer.dll")]
private extern static bool native_func(
byte[] pBuff,
uint dwBuffSize,,
out uint lpByteReturned
);
で、
とりあえず、大きな 領域を new byte[] して取得してから、
Arrayにセットするようにしました。
169:デフォルトの名無しさん
07/08/31 21:24:33
bool native_func(byte[] pBuff, int dwBuffSize, [out] int lpByteReturned);
で良いんじゃなかったっけ?
170:デフォルトの名無しさん
07/08/31 21:25:23
おっと、失礼。
171:デフォルトの名無しさん
07/08/31 21:31:56
>>166
おまえはそんなことを言うためにこのスレにきてんの?
172:デフォルトの名無しさん
07/08/31 21:37:49
当然だろ。
173:デフォルトの名無しさん
07/08/31 21:40:11
マーシャリングは適当にググると各々やり方が微妙に違ってたりするんだよな
俺はよく迷う
まぁMSDNみろよって話に収束するんだけどさ
174:デフォルトの名無しさん
07/08/31 21:46:31
正解が一つじゃないからな
175:デフォルトの名無しさん
07/08/31 23:46:03
COMインターフェイスの定義もね。。
引数がCOMインターフェイスへのポインタの場合、
objectで汎用的にしてるとか
IntPtrにしてほっとかれてるときとか
特定のインターフェイスに決め打ちしてるときとか。。
176:デフォルトの名無しさん
07/09/01 00:48:21
ネット上の共有フォルダにおいてあるmdbファイルにJetでアクセスするツールをC#で作って、何ヶ月も放置
していたのだけど、久しぶりに使ったら、エラーになって使えなくなってました。
読み取りはできるのだけど、書き込みでエラーになります。
mdbファイルをローカルにおいてもだめでした。
他のPCからだと、同じexeとmdbで、正常に動いているので、Windowsの設定や環境のせいだと思うのだけど、
なにか心当たりのある人いませんか?
177:デフォルトの名無しさん
07/09/01 01:39:12
>>176
MDBを修復してみる
178:デフォルトの名無しさん
07/09/01 15:31:49
C#でアプリ作ってます。
今、NumericUpDownコントロールの値を増減すると、その値でフォントの大きさを増減するプログラムを
作りたいと考えています。
この場合、全コントロールのフォントサイズを一括で増減させるようなプログラムって
可能なのでしょうか?
一つ一つフォントサイズを指定しなおさないといけないのでしょうか?
179:デフォルトの名無しさん
07/09/01 15:34:49
君がc#やドトネトのライブラリの作者なら、そんな特殊な需要を満たすための
foolproofな方法をわざわざ用意するだろうか?
180:デフォルトの名無しさん
07/09/01 15:48:23
コントロールのFontプロパティはアンビエントプロパティだから
いっちゃん親のFontを変えれば
特別にフォントが指定されてないコントロールは同じになるよ
181:デフォルトの名無しさん
07/09/01 15:53:39
>>179
よう、fool
182:178
07/09/01 16:27:40
>>180
早速ぐぐってみます。
ありがとうございます。
183:デフォルトの名無しさん
07/09/01 19:22:51
>179
foolproofってなんて意味?
184:デフォルトの名無しさん
07/09/01 19:41:35
どなたか Gilma (=ILMerge のGUIツール) および ILMerge を使ってる方が
居たら教えてください。
スレリンク(tech板:853-854番)
で質問していたのですが、お答え得られず。こちらでどなたかわかる方いたら
お願いしたく。よろしく。
185:デフォルトの名無しさん
07/09/01 21:20:28
>>183
Google使えないのか?
186:デフォルトの名無しさん
07/09/01 22:56:47
>185
使える
>179に答えて欲しいだけ
187:デフォルトの名無しさん
07/09/02 00:16:53
C#などのIRCって今稼動してるのないのかな?
海外みたく、活発な交流をして色々な知識を吸収したいと思っているんだが
188:デフォルトの名無しさん
07/09/02 00:54:59
>>187
すいません、海外ってどんなところで活発に交流しているのですか?
よかったらおしえてください
189:デフォルトの名無しさん
07/09/02 00:56:03
特定のフォルダから、特定のフォルダにコピーしたいんだけど、
なんか手っ取り早くGUIで残り何秒とか表示する方法ないかな。
エクスプローラのコピーコマンドとかあるかなっておもったが、
explorer.extって特定のフォルダを表示するしか出来ないのね・・・
190:デフォルトの名無しさん
07/09/02 00:56:23
>>180
ところで、アンビエントプロパティで親から引き継がれてるか、
個別に設定されてるかを確認する方法ってないんかな?
191:デフォルトの名無しさん
07/09/02 00:59:53
>>189
Microsoft.VisualBasic.FileIO.FileSystem でも使ってればいいんじゃない
192:デフォルトの名無しさん
07/09/02 01:01:32
>>176
エラーの内容くらい書けバカ
193:デフォルトの名無しさん
07/09/02 01:03:58
>>189
SHFileOperation使う。
でもVBのライブラリ参照したらその機能あった気がするのでそっちのがいいかな?
194:デフォルトの名無しさん
07/09/02 01:04:31
>>192
そこまで書いてるんだから
エラーの内容くらい想像しろバカ
195:187
07/09/02 01:05:49
>>188
URLリンク(d.hatena.ne.jp)
こちらのブログを見ていただければわかるかと。
196:189
07/09/02 01:06:45
>>191 マジありがとう
調べてみるよ
197:デフォルトの名無しさん
07/09/02 01:10:38
.NETで書かれた商用アプリってありますか?
どうも、.NETでかかれたものを金出してまで使おうとは思えん
198:デフォルトの名無しさん
07/09/02 01:18:38
あるよ
199:189
07/09/02 01:31:54
ありがとう。 やりたいことは
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(
@"C:\test\", @"e:\", UIOption.AllDialogs
でいけそうだ。
でも、このメソッド、ダイアログを表示して、かつ自動的に上書きという
引数はないんですね・・・
上書きだけか、ダイアログを表示するだけか、しかない
出来れは自動的に上書きして、進行状況がわかればうれしいんですが…
200:デフォルトの名無しさん
07/09/02 01:39:16
>>197
コピペ?
201:デフォルトの名無しさん
07/09/02 01:47:38
>197
そう思う理由を教えてくれ
202:デフォルトの名無しさん
07/09/02 02:20:21
1.1のFormsで書かれた商品なら動かしたことがあるが、
リストに毎回描画するから糞重たくてむかついたことはある。
結局、最終的にアプリの出来はスキルで待ったく別物が出来上がるんだと
つくづく感じた。
203:デフォルトの名無しさん
07/09/02 02:22:49
PCがしょぼいんだろ
204:デフォルトの名無しさん
07/09/02 08:31:16
ユーザー固有のスタートメニューのフォルダは
Environment.GetFolderPath(Environment.SpecialFolder.StartMenu))
で取得できますが、
全ユーザー共通のスタートメニューのフォルダを
取得するメソッドは用意されていないのでしょうか?
ユーザー固有のスタートメニューのパスに含まれるユーザー名を
All Usersに置き換えればいいような気もしますが、
あらゆる環境で動くかどうか心配なので、
できれば、あらかじめ用意されている方法を使いたいと思っています。
205:デフォルトの名無しさん
07/09/02 11:07:38
SpecialFolder列挙体には含まれてないやつがあるし
実行時にenumの範囲チェックしやがるので
SHGetFolderPathを直に使うしかないと思う
206:デフォルトの名無しさん
07/09/02 16:25:56
インストーラ自作?
207:デフォルトの名無しさん
07/09/02 17:40:56
.NETで書かれたSDJEditorを使ってみたが、.NETの先が見えた気がした
EmEditorに比べるとほんと鼻くそ
やっぱ.NETで有名なネイティブアプリに勝つなんて無理でしょうか?
208:デフォルトの名無しさん
07/09/02 17:42:10
工作員必死だな
209:デフォルトの名無しさん
07/09/02 18:44:52
比較対象がEmEditorなんだ。
秀丸と比べるとほんと鼻くそだよね>Em
210:デフォルトの名無しさん
07/09/02 18:50:27
逆だな
211:デフォルトの名無しさん
07/09/02 20:07:14
サクラが一番
212:デフォルトの名無しさん
07/09/02 20:17:19
エディタなんてVisual Studioでいいじゃん
213:デフォルトの名無しさん
07/09/02 20:32:23
コーディングはVSでやってるけど
.txtなんかはEmEditorに関連付けてる
214:デフォルトの名無しさん
07/09/02 20:57:01
WebBrowserコントロールでMouseUpイベントを取ることは出来ないんですかね。
MouseDownは取れます。以下はVBですが。
URLリンク(homepage1.nifty.com)
Spy++で見てもLBUTTONUPとか表示されないので、そもそもムリなんですかねぇ。
215:デフォルトの名無しさん
07/09/02 21:42:12
>>207
アプリ&開発者が違うのに、開発ツールを比較するか?w
216:デフォルトの名無しさん
07/09/02 23:39:06
>>197
.net framework + 在庫管理や工程管理でぐぐったら出てくるよ。
217:デフォルトの名無しさん
07/09/02 23:46:12
>>197
これとか。
URLリンク(www.microsoft.com)
218:デフォルトの名無しさん
07/09/03 00:03:57
でも、おそいねw
正規表現をつかったらperlに負けた
スクリプトに負けますか・・・
219:デフォルトの名無しさん
07/09/03 00:05:51
Cの基本的な文法については勉強して次は実際にSourceForgeでオープンソースの
プログラムを読もうと思っていたのですが難しすぎて分かりません
みなさんはある程度文法の勉強をしてからどのようにして勉強していきましたか?
220:デフォルトの名無しさん
07/09/03 00:06:26
ここはC#スレです
221:デフォルトの名無しさん
07/09/03 00:15:02
>>218
正規表現エンジンの質やI/Oが主要なボトルネックになる類のプログラムでは
言語の差など微々たるもんだ
書き方にも拠るが、C++で書こうが普通にスクリプトのが速かったりする
222:デフォルトの名無しさん
07/09/03 00:33:11
>>218
毎回正規表現をコンパイルするコードなんて書いてないだろうな?
223:デフォルトの名無しさん
07/09/03 00:37:25
>>218
正規表現の処理がスクリプトで書かれてんじゃないだろw
224:デフォルトの名無しさん
07/09/03 00:39:59
.NETの正規表現エンジンは遅くて困るというほどでは無いにしろ、
そんなに速くないだろ
スクリプトの場合は、それがCで書かれているだろうしな
225:デフォルトの名無しさん
07/09/03 00:45:34
Regex のコンストラクタでオプションに RegexOptions.Compiled つけてる?
226:デフォルトの名無しさん
07/09/03 00:46:51
>>219
文法しかわからない奴が、SourceForge等で公開されているソースを読めるわけないだろ
227:デフォルトの名無しさん
07/09/03 00:48:28
俺も実験したことがあるが、正規表現をコンパイルしとくのは当然の話として、
C#で正規表現の性能を競ったらPerlやらPythonやらに普通に勝てんよ
そういう競争なら、相手はスクリプトではなくて、実質的にはCでカリカリに
チューンされたモジュールになる
勝てるわけが無いだろ
228:デフォルトの名無しさん
07/09/03 00:57:08
>>227
だったら、C#の存在意義ってなに?
229:デフォルトの名無しさん
07/09/03 01:01:45
>>228
さあ
無いと思えば無いんじゃね
性能はネイティブにゃ勝てんし
スクリプトみたいに手軽じゃないし
Javaみたいにwrite once, run anyware標榜してるわけでもねぇし
230:デフォルトの名無しさん
07/09/03 01:06:02
正規表現ならTcl最強説
231:デフォルトの名無しさん
07/09/03 01:16:10
>>228
一応言っとくが、自分で計算処理する分にはC#のがスクリプトよりは
格段に速いぞ
ネイティブのがさらに速いがw
自分の計算が主要なボトルネックになるタイプのプログラムかどうかが
一つのポイントだな
そうでないようなケースは案外多い
232:デフォルトの名無しさん
07/09/03 01:24:44
エミュレートされた仮想CPU上で動いてる訳でもなし、C#ではそもそも
記述できない低水準の処理以外の部分でネイティブコードと速度に差なんて出ようがないと思うが。
233:デフォルトの名無しさん
07/09/03 01:25:22
普通速度なんか気にする必要ないだろ
体感できるほど遅くなるアプリなら最初からネイティブしか選択肢ないし
そんなんめったに書くことない
234:デフォルトの名無しさん
07/09/03 01:25:22
そもそもさぁ
早いとか、遅いとかって言ってる奴は、証拠のソースを出せよ
だってさ
PerlもPythonも、コンパイル時に正規表現のコンパイルと最適化をしている
C#やJavaは実行時
どうやってコンパイルと最適化に消費する処理時間を考慮するの?
235:デフォルトの名無しさん
07/09/03 01:27:24
>>233
速いことより、遅い方がいいことってあるのかしらん?
236:デフォルトの名無しさん
07/09/03 01:27:52
実行時にネイティブにコンパイルされるといったって
C#は安全性を気にして余計な処理をしてるだろ
Cとかと比べたらどうしたって遅くなる
237:デフォルトの名無しさん
07/09/03 01:28:44
>>235
速度の違いが体感出来ないならC#使ってもデメリットはない
プログラミングが楽になるからC#使った方がいいというわけだな
238:デフォルトの名無しさん
07/09/03 01:29:28
>>232
そりゃJITだけどCにゃ負けるようだよ
URLリンク(shootout.alioth.debian.org)
これはMonoだが、Java Server VMの性能が参考になるだろう
239:デフォルトの名無しさん
07/09/03 01:32:20
そもそも.NETで不満になるようなアプリってどれぐらいあるんだ?
大体.NETは実行スピードと生産性のバランスの中のひとつの解に過ぎないだろ
240:デフォルトの名無しさん
07/09/03 01:34:25
.NETは計算速度はそんなに遅くねぇけど
起動がのろいのとGUIもっさりはどうしようもねぇな
241:デフォルトの名無しさん
07/09/03 01:36:40
ソース出ないね
やっぱり法螺吹きか
242:デフォルトの名無しさん
07/09/03 01:37:14
>>234
CLIランタイムをロードする時間に比べりゃ、正規表現のコンパイルにかかる時間など
微々たるもんだろw
243:デフォルトの名無しさん
07/09/03 01:38:13
Win32のBitbltとか呼んでももっさりするかね?GDI+よりは早い。
244:243
07/09/03 01:38:59
すまん。最後は疑問系です・・・(ノД`)
245:デフォルトの名無しさん
07/09/03 01:41:19
>>243
DDBのblitはGDI+の10倍は速いらしいな
その時点でWinFormsだめぽ
246:デフォルトの名無しさん
07/09/03 01:45:05
>>241
そんなに気になるんなら自分でためせばいいのに
以前俺が実験したソースをあげるよ
URLリンク(www.borujoa.org)
青空文庫のテキストを適当に置換するプログラム
inputというフォルダにサンプルの入力ファイルがあるが、300K程度の
サイズだから、気になるならデカくしてみるんだね
247:デフォルトの名無しさん
07/09/03 01:53:14
>>239
それはあくまで作る側の屁理屈
使う側からすれば、生産性なんてどうでもいい
あなたが、よく使うアプリケーションが次バージョンから.NETで書かれたらどう思う?
LightWaveが.NETなんかで書かれたら俺は間違いなくMAXへ移行する
248:デフォルトの名無しさん
07/09/03 01:57:26
>>247
えーとね、生産性悪くなるとコストがかかるんだよ。
それは製品価格に反映されたり、次バージョンで実装される機能が少なくなったりすることになるんだよ。
249:デフォルトの名無しさん
07/09/03 02:05:21
>>247
なんでアセンブラでつくらねーんだっていってみろ。
250:デフォルトの名無しさん
07/09/03 02:06:39
まあ、問題は、場合によっては普通にLL言語にさえ後れを取る
C#がバランス上最適解かどうかだろうなw
251:デフォルトの名無しさん
07/09/03 02:06:52
製品の値段に直結するぞ。
機能も少なくなるぞ。
品質が下がることもあるぞ。
252:デフォルトの名無しさん
07/09/03 02:07:02
けど、C#が使えないのは事実
C#しかつかないやつはVC++で開発してる部署に行ったらほぼ終わり
253:デフォルトの名無しさん
07/09/03 02:07:34
>場合によっては普通にLL言語にさえ後れを取る
絶対にLL言語に遅れをとらない言語ってなんだよw
254:デフォルトの名無しさん
07/09/03 02:09:30
VC++しかつかないやつは他の言語で開発してる部署に行ったらほぼ終わり
255:デフォルトの名無しさん
07/09/03 02:14:15
>>246
・300kのIO速度の計算をスルー
・300kのSJISから内部コードの変換(UTF-16やutf8)コストもスルー
・(C#)2000行の無駄なnew StringBuilderとToString、+演算子置き換えで高速化
正規表現のベンチになってないよ
256:デフォルトの名無しさん
07/09/03 02:17:16
>>255
うん、正確な正規表現のベンチのつもりで書いたのではないよ
それが求めるものなら自分でやってくれ
IO処理は「どの言語でも」やっている
ユニコードへの変換も「どの言語でも」やっている
オーバーヘッドの大きそうなフォーマット処理も、PerlやPythonでもやっている
概ね、カリカリに書かずに適当に同じレベルで「普通に」書きなぐったものだ
特に何かをひいきしたつもりは無い
そうやって書いたものが、スクリプトが案外速かった(C#より速い)ってのが
重要ね。
257:256
07/09/03 02:28:23
ちなみにC++も三種類書いてみたが大して速くなかったね。
ソースを見れば分かるが、LL言語で書くよりずっと複雑でトリッキーで
エラーを産みがちなコードになるというのに。
こんな仕事はLL言語向きだ。他の解は馬鹿げている。そう思ったよ。
そして、そういう仕事は案外多いのだと思う。
258:デフォルトの名無しさん
07/09/03 02:37:29
プロセスの生成負荷も考慮されてない…
C#、C++、Perl、Pythonではエンジンの起動時間は大きく違うし、
いくらなんでも、これで決めつけるのは早計だと思うが。
俺のPCでは、C#の方がPerlより速かったり遅かったりだった。
一瞬すぎて測れない。
Core 2 Duo E6600, 2GB, Win Vista
Super Fetchがどこまで効いているかはわからない。
明日kwsk調べようかな。
259:デフォルトの名無しさん
07/09/03 02:45:50
正規表現の処理の話をしてるときにこれはない
260:デフォルトの名無しさん
07/09/03 02:46:28
つうか試してないけどコンパイルしないほうが早かったりしてよw
261:256
07/09/03 02:54:56
>>258
入力ファイルデカくしてみそ
二回目以降はキャッシュが効くし、入力が十分デカければ起動時間は誤差の範疇に
持ち込めると思うが
ちなみに俺の環境はXP、Pentium M(1.7GHz), RAM 500Mだからずっとショボい
>>259
純粋に正規表現エンジンの性能を計りたいんなら、そうだね
俺がやったのは、正規表現を用いた典型的なPerlの使い捨てスクリプトレベルの
仕事を各種の言語で書いてみた、それだけのことで、やっている仕事自体は
どの言語でも同じだよ
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4329日前に更新/133 KB
担当:undef