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


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

C#, C♯, C#相談室 Part60



1 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 03:17:20 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part59
pc12.2ch.net/test/read.cgi/tech/1274019232/

Visual C# 2010 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

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


535 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:49:14 ]
>>534
そなの?
前、MSの中の人にきいたらIList系は配列型で渡して、params可能ならつける方がいいと言われたよ。
.Netのクラスライブラリもそのポリシーで設計されてるみたい。

今はその人と連絡とれないからIDictionaryはどうなのかと思ったんだけど…。

536 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:50:24 ]
>>531
日付のカルチャ情報は国が違うだけでなく、日付表示を和暦にしたとかだけで影響を受ける場合があるので常に明示的に指定したほうがいいよ。
数値も小数点がカンマという国が結構あるので気をつけたほうがいいし。

537 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:54:05 ]
んなこたー知ってる。>>531の問題は、そういう話じゃない。

538 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:55:26 ]
class myClass{
int a;
public myClass(int num){
a = num;
}
}

class myClass2{
[System.Xml.Serialization.XmlArrayItem(typeof(myClass))]
ArrayList array;
public myClass2(){
array = new ArrayList();
array.add(new myClass(0));
array.add(new myClass(1));
array.add(new myClass2));
}
public void saveXML(){
//XMLファイルに保存する
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeofmyClass2);
System.IO.FileStream fs = new System.IO.FileStream(@"c:\abc.xml", System.IO.FileMode.Create);
//エラーが発生する
serializer.Serialize(fs, this);
//閉じる
fs.Close();
}
}
といった感じにプログラムを書いたのですが
これを逆シリアル化するさいにクラス内にpublic void loadXML()という関数を作って
arrayの中にデータを入れたいのですがどうやってやればいいんでしょうか・・・。
myClass2としてロードすればできるんですがそうするとクラス内に作れないしで・・・。

539 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:56:17 ]
>>534
IList は、メソッドの中で Add とか呼ばれちゃう可能性あるからなぁ。
それを意図しない場合は IEnumerable の方がいいかと。

>>535
今思えば、params は配列型じゃなくて IEnumerable<T> にしてた方がよかったと思うけどね。
まあ、1.0 の頃と今では IEnumerable の地位が大分変ってるんでしょうがないけど。

540 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 21:56:17 ]
>>535
クラス作成して配列で渡すのが慣わし。
例としてEventArgs等がある。

541 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:00:44 ]
>>539
なるへそ。
オライリーなんかの本だとそうしてるね。

>>540
ふむふむ、イミュータブルなクラスでやり取りする事になるのか。

542 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:02:38 ]
UDPでTCPを模倣してみたがやっぱこういう処理はC#じゃ遅すぎるな

543 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:05:37 ]
ネットワークの処理が遅いとか実装が糞なだけだろ。



544 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:06:15 ]
>>538
staticにする

545 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:12:53 ]
あ、普通にロードしたのをキャストした後にほしい部分だけとりだせばおkでしたね・・・。

546 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:14:49 ]
params付けた方がいいというのは全ての要素をその場で手渡しするような使い方を意図している場合の話だろ。
例えばXElementのコンストラクタはparamだけどそれはコードに階層構造をベタ書きするため。
元からあるリストを渡すためのメソッドならparams付ける意味ないでしょ。

547 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:23:00 ]
だからベタ書き出来るように出来る事ならparamsつけましょって事でしょ。
付けたところで困る事はないしさ。

548 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:39:51 ]
C#が遅すぎるんならSilverlight動画アドインなんて出来るわけないよな。

549 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:01:59 ]
string.Formatで「{0}以上{1}以下」みたいな文字を表示させるときに、
{0}や{1}を表示させない場合は「以上」「以下」も一緒に表示させなくしたい。

色々試してたら↓のコードが上手く行ったんだけど、
この方法ってアリ? たまたま上手く行ってるだけ?

public static void Main()
{
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, null));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", 100, 200));
  Console.WriteLine(string.Format("{0}{0:以上}{1}{1:以下}", null, 200));
}

>100以上
>100以上200以下
>200以下

550 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:10:04 ]
>>548
Silverlightプラグインはほとんどネイティブコードだ
.NETをスクリプティングに使ってるだけで下層のメディア処理はネイティブコードに丸投げ
>>549
そういう仕様じゃなかったっけ

551 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:18:06 ]
そうなの?マルチプラットフォームって聞いてたから。

552 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:21:51 ]
移植するときはネイティブコード部分を入れ替えるだけで済むから
その上で動くマネージコードはマルチプラットフォームだよという意味

553 名前:デフォルトの名無しさん mailto:sage [2010/07/11(日) 23:40:26 ]
>>550
ありがとう。見つけられた。

msdn.microsoft.com/ja-jp/library/0c899ak8.aspx
>その他
>上記以外のすべての文字
>文字が結果の文字列にそのままコピーされます。

色々鑑みて「 "{0:#,#'以上'}{1:#,#'以下'}" 」でイケそう。ありがとう!



554 名前:デフォルトの名無しさん [2010/07/12(月) 00:43:01 ]
すみません。自分で関数を作りました。もし、戻り値をint型とするとき
成功したら0を返すのか1を返すのかで迷っています。

if文の条件判定でその関数を使う場合1を返したほうがいいですし、
なんかC言語のmain関数なんかは、正常終了の場合、0を返します。

どっちがいいのでしょうか?bool型を使うと簡単なのはわかりますが、int型を戻り値とする場合は
どちらのほうが的確でしょうか?

555 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:49:42 ]
どっちでもいいよ。

556 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:50:59 ]
初期値に0を持たせるのが普通。
その関数で正常終了と判定した後にどうなるかで変わるんじゃないかな。
知らんけど。

557 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:52:54 ]
成功失敗にint型とか仕事なら首に出来る仕様だな。

558 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:54:37 ]
C# なら void にして、失敗なら、例外を投げる。

559 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:56:42 ]
列挙型を返すのは?

560 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:02:32 ]
さあ

561 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:06:42 ]
もう S_OK でいいよ

562 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:17:58 ]
成功か失敗理由かでいいよ

563 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:33:33 ]
うん



564 名前:554 mailto:sage [2010/07/12(月) 01:37:57 ]
みなさん、どうもありがとうございます。

C言語の文字列操作関係の関数は成功すると0を返すみたいなので、それにならいます(><;)

いろいろと私のせいで議論してくれたみたいで、ありがとうございました(><;)

565 名前:デフォルトの名無しさん [2010/07/12(月) 01:42:36 ]
うぜええええ(><;)

566 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:50:25 ]
なんでこんなレベル低いやつがこっちで質問してんだ


567 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 01:51:51 ]
>>554
C# で書くんなら絶対 bool にしろ。

C 言語とかとの相互運用目的なんだったら、非 0 が true。

main 関数とかの戻り値はあれ、エラーコードなのよ。
HasError == false だから 0。

568 名前:554 mailto:sage [2010/07/12(月) 02:10:52 ]
>>567
そうなんですね。非0がtrueの方がいいんですね。じゃあ、書き直します。

基本はbool でプログラムしてるんですが、ちょっとしゃれでC言語風に書いてみたいなあと思いまして・・

みなさん、スレ汚しすみません。初心者スレで聞けばよかったです。

569 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 06:51:13 ]
>>568
C言語は論理式で非0をtrueと扱う言語だから。
C#とかみたいにboolが用意されてる言語ならboolを使うべき。

570 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 07:12:22 ]
>>565
おはようございます(><;)

571 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 07:25:28 ]
おい馬鹿やめろ

572 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 07:28:10 ]
うわなにをする(><;)

573 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 07:33:15 ]
>if文の条件判定でその関数を使う場合1を返したほうがいいですし、
if(func()) return; /* エラー検出して強制終了とかの場合こうしねえか? */



574 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 08:45:46 ]
フォームアプリケーションで、ボタンを配置して
そこにフォーカスをあてた状態でリターンキーを押すのですが、
ボタンをおせません。マウスでクリックしたときのような
アニメーションも発生しません。
ボタンを押せるようにするにはどうすればいいでしょうか?

575 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 09:30:34 ]
そういう風に作ればいい

576 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 11:30:25 ]
C#2010のコード自動調整(自動でタブを追加したり
switch文を改行したりする機能)って有効にしたまま使ってる?



577 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 16:48:58 ]
オートフォーマット切るとか考えたこともないわ
コードのフォーマットにこだわって手修正したりする奴は迷惑なだけ

578 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:38:16 ]
デフォの括弧の位置だけは気に入らないけど。。。デフォのままで使ってる。

579 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:48:22 ]
そういや全てのソースを整形するにはどーすんの?

580 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:48:06 ]
返り値をboolで返すのも、IsXXXみたいな十分に明示的なネーミングのメソッドの場合は除くとして、
一般にはうんこだとされてる手法だと思うけど....
そんな程度の人が偉そうに命令口調で講釈垂れてるんだから嫌になるな

581 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:50:15 ]
> 一般にはうんこだとされてる手法だと思うけど....

思わない

582 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:53:10 ]
まあ、馬鹿な君ならそうでしょうとも

583 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:54:38 ]
一般に続く名詞はなんだろうな



584 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:56:00 ]
たとえばTryParseは成功したらTrue、失敗したらFalseだけど
>>580の命名規則にしたがってないからうんこメソッドだな

585 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 20:07:19 ]
Tell, Don't Ask原理主義者か?何事もほどほどに。

586 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 21:27:17 ]
最近だとHashSet<T>.Addは要素が重複してても例外を投げずにfalseを返す

587 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:00:20 ]
既にあるVC#プロジェクトでlinq-to-xmlを使いたく、まず最初に
  using System.Xml.Linq;
と宣言を追加しただけの状態でコンパイルしてみたのですが、
  型または名前空間名 'Linq' は名前空間 'System.Xml' に存在しません。アセンブリ参照が不足しています。
というエラーがでるのですが、どうすれば解決できるのですか?

588 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:04:43 ]
System.Linq.Xml.Linq.dllを参照設定に追加する
ターゲットフレームワークは.NET3.5か.NET4に設定する必要がある

589 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:07:14 ]
あきらめろ

590 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:13:00 ]
>>588
ありがとうございます。
対象のフレームワークは、.NerFramework3.5でした。
System.Linq.Xml.Linq.dllの参照設定とはどのようにやるのですか?

591 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:15:29 ]
ねーねー。なんで初心者スレ行かないの?

592 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:21:04 ]
ソリューションエクスプローラで参照設定を右クリックして参照の追加を選ぶ
.NETタブのSystem.Linq.Xml.dllを選んでOK
LINQ to XMLってちょっと癖があって結構難しいよ?
ちゃんとわかってる人のための便利なオモチャって感じ

593 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:33:16 ]
ちゃんとわかってる人のための便利なオモチャって感じだね



594 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:40:03 ]
>>592
おお!できました!
ありがとうございました!

595 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:44:49 ]
>>594
お役に立ててなによりです

596 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 22:51:40 ]
いえいえどういたしまして

597 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:39:00 ]
File.Replaceってsoruceとdestinationが同じドライブでないとダメなようだけど、
こんな使いにくい制限をわざわざ設けてる理由って何なんだろう。

ファイルを上書き保存する時なんかに、作業ディレクトリに一旦一時ファイルを
作ってから元のファイルを置き換える用途を当然想定してるんだと思ってたが、
こんな制限があったらこういう使い方できないよね。

598 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:47:07 ]
その用途ならMoveでもCopyでもいいだろ

599 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:54:39 ]
馬鹿っぽい(たぶん「ぽい」ではないんだろうが)物言い....

600 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:59:40 ]
>>597
物理的にファイル動かさなくて済むからでしょ。

601 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:05:49 ]
>>600
それは事実としては正しいけど、
それって>>597みたいな制限を正当化する理由になるかね?

602 名前:598 mailto:sage [2010/07/13(火) 21:16:23 ]
ファイルシステム上のエントリの参照先を変更するだけなんだから
当然ファイルの実体は全部同じボリューム上にある必要があるだろ

603 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:18:39 ]
>>602
言ってる意味分かってる?
だから、そういうシステムの都合があるにせよ、
そのシステムの都合をFile.Replaceに「押し付ける」理由をお聞きしてるわけですが。



604 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:29:48 ]
>>603
MSに聞けとしか。

想像だけどアトミックな操作に使ってくれ(そしてそれは物理ボリュームが別だと無理)ってことなんじゃないの?
同じディレクトリ内の作業でバックアップファイル作るために使うとかさ。

それ以外は Move とか Copy とか使えってことなんじゃないのかね。



605 名前:598 mailto:sage [2010/07/13(火) 21:31:06 ]
WIN32のReplaceFileをラップしただけだろっつうか
ファイルシステムに依存した機能だからこそアトミック性が保証できるんだろっつうか
逆にファイルシステムの都合に依らないファイル操作なんてありえんのかって話だが

606 名前:デフォルトの名無しさん [2010/07/13(火) 21:35:25 ]
なぁ、formの無いプログラムってどうやるん?

タスクトレイだけですませたいんだけど。
フォームがないとデザイン画面でnotifyiconとか作れないし。

607 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:42:00 ]
態度がでかいな

608 名前:デフォルトの名無しさん [2010/07/13(火) 21:44:36 ]
あの、すみません。

Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?

タスクトレイだけですまたいんです。

フォームがないとVisualStudioのデザイン画面を使い
NotifyIconコントロールなどを貼り付けたりすることができません。

よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。


609 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:48:53 ]
改行が多いな

610 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:51:48 ]
あの、すみません。Formの無いプログラムっていうのは、どうやってつくればよろしいんでしょうか?タスクトレイだけですまたいんです。
フォームがないとVisualStudioのデザイン画面を使いNotifyIconコントロールなどを貼り付けたりすることができません。よろしければ、教えてもらいたいのですが。すみません。どうぞ、宜しくお願いします。

611 名前:598 mailto:sage [2010/07/13(火) 21:53:03 ]
ノリがいいな

612 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:53:40 ]
>>604
ただの愚痴だけど、>>597みたいな処理を安全に書くのって意外と手間だからさ。

安全っていうのは、例えば仮に何らかの理由でオリジナルのファイルを
作業ディレクトリに作った一時フォルダで置き換えられないとしても、
最低限オリジナルのファイルが失われないことを保証しようと思うと結構面倒。

こういうのこそライブラリで用意されるべきだと思うんだけどな。

613 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:54:42 ]
すまたin!



614 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:57:20 ]
今必要だけどないものをウダウダ言ってもムダ
その間にソース書いたほうがよっぽど生産的

615 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 21:59:14 ]
>>608
notifyIcon.Visible = true;
しといて
Application.Run();
呼ぶだけ。
これでメッセージループが動く。
終わるときは、
Application.Exit();
を呼ぶ。

616 名前:608 mailto:sage [2010/07/13(火) 22:03:32 ]
>>615
どうも、ありがとうございます。それだけでできるんですか?
とても助かりました。今からやってみます!
他の人もどうもありがとうございました!

617 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 22:29:35 ]
C#の初心者向けで良い本何かありますか?
あと、C#のソースをJAVAに移植するとしたら、どんな事に気をつければよいですか?

618 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 22:35:52 ]
@ITで十分
本なんていらん
どうしてもというなら@ITの本があるからそれ買え

619 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 22:42:28 ]
>>616
最小構成サンプル
using System;
using System.Windows.Forms;
namespace nicon {
public class nicon {
System.Windows.Forms.NotifyIcon icon
= new System.Windows.Forms.NotifyIcon();
System.ComponentModel.ComponentResourceManager res
= new System.ComponentModel.ComponentResourceManager(typeof(nicon));
nicon() {
icon.Icon = (System.Drawing.Icon)res.GetObject("nicon");
icon.ContextMenu = new ContextMenu( new MenuItem[] {
new MenuItem("Exit", delegate { Application.Exit(); } )
});
}
[STAThread]
public static void Main(string[] args) {
nicon inst = new nicon();
inst.icon.Visible = true;
Application.Run();
inst.icon.Dispose();
}
}
}

620 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:42:52 ]
StreamReaderってファイルが無かったりアクセス権がなかったりしたら
例外をスローもせずに完全に固まらないか?

621 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:48:01 ]
んなこたーない。

622 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:56:27 ]
おまえアク禁な

623 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:56:44 ]
>>621
いやなる
Windows7 64bit C:\ルートに存在しないファイル名でStreamReaderやってみそ



624 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 23:58:00 ]
StreamWriterの方もだわw

625 名前:608 mailto:sage [2010/07/14(水) 00:00:19 ]
>>619さん。

ぬぁー!どうもありがとうございます。すごい参考になりました!
もう、あとは私の個人的な機能を付加するだけですね(;^_^

個人的な機能もたいしたことがないので、ちょっと追加するだけでよさそうです。
こんなものをパッと書けるなんてすごいですね。

ネットを今、あさってる最中でした。ありがとうございました。ComponentResourceManagerとかすごい参考になります。


626 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:03:04 ]
>>623
いやだよ。

627 名前:621 mailto:sage [2010/07/14(水) 00:09:35 ]
>>623
Windows7 Ultimate x64 + Visual Studio 2010 Professional

.NET2.0/4.0, x86/x64/AnyCPU, Debug/Release の12通りの組み合わせで試してみたけど、
どの組み合わせでもFileNotFoundExceptionが発生するな。とりあえずソース晒せ。
ちなみに俺はこう書いた。

using (var sr = new StreamReader(@"C:\a.txt"))
{
}


628 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:29:37 ]
using (StreamReader sr = new StreamReader(@"c:\a.txt"))
{
   String data = sr.ReadToEnd();
}
MessageBox.Show("aaa");

複雑なんでFormLoadにこれを書いて試したがやっぱりメッセージが出てこない

629 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:31:21 ]
ちなみにVisualStudio2008の.Net2.0 Windows7 64bit
Windows7はクリーンインストール後、特にフォルダの権限とかいじってない状態です

630 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:35:46 ]
>>625
あのさあ・・・初心者スレに行ってくれないかな?

631 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:43:34 ]
>>628
そりゃc:\a.txtが存在してないならMessageBox.Showが呼び出されることは決して無いだろうが

632 名前:621 mailto:sage [2010/07/14(水) 00:47:07 ]
>>628
確かにVS2008でデバッグ実行すると、例外が捕捉されないな。

出力ウィンドウを見る限り例外自体は発生しているし、デバッグなしで実行(Ctrl+F5)すれば
ちゃんと例外ハンドラが働くから、VS2008のデバッガの問題っぽい。

メッセージボックスが表示されないこと自体は>>631の言うとおり正常な動作。

とりあえず StreamReader は避けて File.ReadAllLines とか File.ReadAllText を使ったら?

633 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 00:59:40 ]
>>532
ああほんとだ、デバッグモードのしとけば何か原因が拾えるという思い込みが逆に命取りだった
普通に実行したら例外が出てるね
なんじゃこりゃ



634 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 01:05:41 ]
100ずれてますよ

635 名前:デフォルトの名無しさん mailto:sage [2010/07/14(水) 01:53:49 ]
VS2008のデバッグ実行でも、出力窓には例外が出ているハズ
例外出ても止まったり止まらなかったりするのは割とよくある






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

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

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