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


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

ふらっとC#,C♯,C#(初心者用) Part47



1 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:23:31 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part45 (実質46)
pc12.2ch.net/test/read.cgi/tech/1255658236/

258 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:39:13 ]
>>256
そういうことなら、(当たり前のこと言うなと思うかもしれないけど)

>public DateTime Date {get; set;}
このプロパティにはXmlIgnore属性をつけておいて、このプロパティの値を
「独自の日付方式」の文字列で設定/取得するデシリアライズ用のダミーの
プロパティーを用意するだけじゃないの?

259 名前:251 mailto:sage [2009/11/09(月) 01:04:58 ]
>>257
シリアライザの方はカルチャ設定の書式ではなくW3Cの仕様にしたがって変換してるみたいです。

>>258
そうするとパブリックな日付のプロパティが2つ出来てしまうわけですよね。
あんまり無駄なパブリックメンバは作りたくないというのが正直なところです・・・

とりあえず、IXmlSerializable を実装した DateTime の子クラスを作って使うことにしてみます。
W3C規定の形式以外はこれが正解になるんだろか?

260 名前:251 mailto:sage [2009/11/09(月) 01:07:02 ]
って、DateTime は継承出来ませんね・・・

261 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:09:13 ]
それは255で既に指摘されてるじゃん

262 名前:251 mailto:sage [2009/11/09(月) 01:30:57 ]
ググったところ、
DateTimeをラップして IXmlSerializable を実装するクラスを書くか
日付のプロパティ持ってるクラス自体で IXmlSerializable を実装して
他のプロパティでも属性使って楽するのを放棄するかの2パターンぐらいみたいですね。

うう、なんかすっきりしないなぁ。

263 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:07:39 ]
以下のようなクラスがあった場合

public class A {
public A(string id) {...}
public string Id {get; set;}
}

public class B {
public B(string id) {...}
public string Id {get; set;};
}

A.Id と B.Id がお互い代入出来なくするためにはそれぞれクラスや構造体(AidとかBidみたいな)を
作るしかないのでしょうか?


264 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:46:30 ]
>>263
イマイチ意図が読み取れないけど
GETだけのプロパティアクセスはだめなの?


265 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:37:34 ]
>>264
Cのtypedefみたいなことがしたかったんですが、C#のusingだと別名なだけで
相互に代入してもコンパイルエラーにはならないみたいですね。

やりたかったことは、以下でした
・A.IDとB.IDはお互いに採番体系が異るのでコード中で混ざらないようにしたい
(コンパイラにミスを見つけさせたい)
・ID自体にはメソッドもプロパティも不要なのでなるべくクラスは作りたくない
・プロパティはセッタもゲッタも必要

一番目か二番目を妥協するしかないのかしらん

266 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:50:14 ]
えっ



267 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:50:38 ]
ますますわからんw

268 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 12:59:22 ]
メリットがいまいちわからんな…

269 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 13:15:18 ]
>>210です
ロケーションの変更は
msdn.microsoft.com/ja-jp/library/cc825750.aspx
でわかったんですがキーロックの方法がわかりません
画面コピーしたモーダルウィンドウを全画面で出すとかですかね?
イベントをおおもとでキャッチしてしまえばいいんですが
作成しているのがコントロールオブジェクトなので親のイベントを
横取りするのも作法としてどうなのかと思いますし、方法もわかりません
ご意見をお願いします

270 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 13:41:33 ]
>>269
通常はAPIのSetWindowsHookExを呼んでキーボードフック(WH_KEYBOARD_LL)でやるんだけど
WMだとどうかな。一応、非公式でこのAPIそのものはあるみたいだが。

271 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 13:58:57 ]
>>268
たとえば、A.IDとB.IDを受けとってなにかするメソッドHogeがあったとして、
> public static void Hoge(string aId, string bId) {....}
コーディング中に第一引数と第二引数が逆になっちゃってもコンパイル時にはねて欲しいんですよ。
この場合はプロパティを直接渡すんじゃなくてクラスで渡せば問題ないですが。

272 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:16:40 ]
typedefってエラーになったんだっけ?


273 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:21:42 ]
>>272
俺も疑問に思ったんで今試したが普通に通るな。警告すらでなかったぞ。
#cygwinのgccで警告最大でコンパイルした結果。彼は何か勘違いしてる気がする。

274 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:23:56 ]
クラス(とかstruct)で渡せばいい話じゃない

275 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:28:08 ]
IDだけのクラス作ってもいいと思うよ
IDクラスからAIDとBID継承させるとか

276 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:40:14 ]
>>273
VC++のclで警告レベル最大でコンパイルしても警告出ないね



277 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:44:43 ]
C#やJavaは基本型もオブジェクトとして扱っていることが優れた言語仕様だと思うし
intという抽象度で表現出来る範囲を逸脱したオブジェクトなら専用のクラスにすべきだと思う

278 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 14:59:05 ]
> 基本型もオブジェクトとして扱っている

思いっ切り間違ってるんだが

279 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:06:32 ]
Javaとは違うのだよ、Javaとは

280 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:07:57 ]
構造体なんか廃止すればいいのに

281 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:08:37 ]
>>270
ありがとうございます
一度キーワードがわかると情報がざくざくあつまってきますね
SetWindowsHookExを読んでフックする方法の弱点として
フックを登録できるのが1つだけのようです
なので他のアプリが使ってたら不具合が出たりするようです

サブクラス化というキーワードも出て来ましたが、これは
フックするというより盗み見するだけですか?

情報が集まったので方針を決めたいと思います
ありがとうございました

282 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 15:22:43 ]
そんなことないです
グローバルフックもローカルフックもCallNextHookExってのを使ってチェーン状に管理しています

サブクラス化はイベントの起動に利用するだけでメッセージ潰したりはできません

283 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:18:57 ]
まあキーロックが目的なら握りつぶすわけで、どんな方法でも
他のキー入力当てにしてるプロシージャに影響出ないわけないなw

284 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:41:18 ]
private ContextMenuStrip cms_tasktry = new ContextMenuStrip();
と自分で書いて関連付けた時に最初のクリックではメニューが表示されず
二回目以降にしか表示されるのですがこれを最初のクリックで表示する
方法はないでしょうか?。

また以下のように書いた場合にexitをクリックしてもタスクトレイのアイコンが
消えないのですが、これを消えるようにできないでしょうか?。

private NotifyIcon tasktry = new NotifyIcon();
cms_tasktry.Items.Add("Exit").Click += delegate(Object obj, EventArgs ea)
{
tasktry.Visible = false;
Close();
};

285 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:55:53 ]
tasktry.Dispose() 呼んだらどうかな。

286 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:00:44 ]
って>>284のだけで1回のクリックでメニュー出るし終了時に消えたけど。
環境は?



287 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:13:22 ]
Openingで書いているせいでしょうか?

private void Form1_Load(object sender, EventArgs e)
{
cms_tasktry.Opening += new System.ComponentModel.CancelEventHandler(cms_Opening);
}
private void cms_Opening(object sender, EventArgs e)
{
cms_tasktry.Items.Add("Exit").Click += delegate(Object obj, EventArgs ea)
{
tasktry.Visible = false;
Close();
};
}

>>285
だめでした

>>286
XP Ver2010 SP3
VC2010
です。

288 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:50:25 ]
Openingでやってる理由は?
Load時に一緒にやればいいじゃない。
アイコン消えない理由はそれとは違うようだが。

289 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:57:06 ]
>>288
ログイン処理した時にメニューを書き換えているからですがnameでTextを
書き換えたり非表示にしたりする手もありますね。

290 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:05:13 ]
まあ何回かやってみたけど、Openingイベント時にメニューが1つもないと出ないね。
その時に追加しても遅いみたい。

291 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:07:18 ]
>>290
!するとLoad時にゴミを1つつけておけばいいのかな
試してきます

292 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:07:30 ]
de?

293 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:50:07 ]
System.Threading.Thread.Sleep(3000);
this.Storyboard1.Begin();

このコードは3秒待つまで2行目は実行されないですよね?

294 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:56:29 ]
試せば?

295 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:09:24 ]
普通、次の行の処理はしないと思うんですが、2行目の処理が3秒飛ぶんです。
あり得ますか?

296 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:15:24 ]
飛ぶなんて俺様用語で言われても
飛びます飛びますってかw




297 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:26:18 ]
GUIのスレッドでSleepしちゃダメだよ
Storyboard使ってるんだったら3秒後にアニメーションをスタートするアニメーションを作れるだろ

298 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:30:18 ]
記事クラスと、記事のコレクションである掲示板クラスがあるとして、
記事の削除メソッドを実装するとしたら記事クラスと掲示板クラスの何方が適当でしょうか?


299 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:32:12 ]
クラスってなんですか?

300 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:36:00 ]
掲示板クラスの方に実装するのが適当

301 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:36:00 ]
>>297
GUIのスレッドではSleepは機能しないと覚えておけばいいんですか?
この3秒にSleepではなく処理を入れたいんですが、
まさかGUIスレッドの中では同時に処理できる行はガンガン並行処理して次の行、次の行が実行されていくんでしょうか?
めちゃくちゃなんですけど

302 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:41:43 ]
GUIだとGUI自体の機能もSleepした後でその後の文が実行される

303 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:42:09 ]
>>301
お前の頭がむちゃくちゃだよ

304 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:42:17 ]
違う。スリープさせるとGUIがフリーズするからやってはいけない。
this.Storyboard1.Begin();は絶対に3秒経過するまで実行されない。その間GUIはフリーズする。
基本的にSilverlightは(Silverlightのスレに書き込んでるだろ)GUIスレッドでのSleep禁止ということになってるから
何が起こっても文句は言えない。WPFやSilverlightのアニメーションは時間に依存するからややこしい。

305 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:47:00 ]
WMPコンポーネントを使ってmp3プレイヤーを作っているのですが、
WMP9からWMP11にアップデートすると、
そのソフト自体の起動や処理が重くなったように感じます。
これは仕方無い事なんでしょうかね?

306 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:58:28 ]
自分でデコードしてDirectSoundで鳴らしたら



307 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:10:12 ]
お前のプログラムがめちゃくちゃなんだろうよ


308 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:10:16 ]
DirectSoundはプレイステータス変更時のようなイベントハンドラは提供されてますか?
それが無いと不便で不便で・・・

309 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:16:33 ]
>>304
silverlight限定の仕様だったんですね
FormGUIの基本なのかと思っちゃいました。
silverlightと書き込まなかったので一生解決できないところでした
ありがとうございます!

310 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:19:55 ]
>>308
いやDirectSoundって自分でバッファに波形データを直接書き込んでいくんだぞ
何でもできるが何もできない

>>309
Silverlightに限らずGUIで時間のかかる処理をしてはいけない。
一応WPFやWinFormsではそれによってGUIがフリーズするのを回避する方法が用意されてるけど
やらないに越したことはない。
Silverlightに限ってはそういう回避方法が無いので絶対ダメ。

311 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:19:55 ]
めちゃくちゃとむちゃくちゃってなにか違うの?

312 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:27:16 ]
>>310
ありがとうございます。
DirectSoundで調べてみたいと思いますが、なんだか難しそうですね。。


313 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:43:18 ]
滅茶苦茶
無茶苦茶
滅無


314 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:09:25 ]
C#でメッセンジャーみたいな物を制作しようと思い、
サーバーの部分だけ作ってみてビルドして、実行するとフリーズしてしまうんですが、
原因が分かりません。教えていただけないでしょうか?初心者ですいません。
  public void ServerStart()
  {
System.Text.Encoding enc = System.Text.Encoding.UTF8;
int port = 9991;
TcpListener listener =new TcpListener(IPAddress.Parse("127.0.01"), port);
listener.Start();
TcpClient tcp = listener.AcceptTcpClient();
NetworkStream nss = tcp.GetStream();
MemoryStream mss = new MemoryStream();
byte[] resBytes = new byte[256];
int resSize;
do
{
resSize = nss.Read(resBytes, 0, resBytes.Length);
if (resSize == 0)
{
textBox2.Text = ("クライアントが切断しました");
//Console.ReadLine();
return;
}
mss.Write(resBytes, 0, resSize);
} while (nss.DataAvailable);
string resMsg = enc.GetString(mss.ToArray());
textBox2.Text = resMsg;
      mss.Close();
   }

315 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:27:45 ]
TcpListener.AcceptTcpClientメソッド
AcceptTcpClient は、データの送受信に使用できる TcpClient を返すブロッキング メソッドです。ブロックしないようにする場合は、Pending メソッドを使用して、接続要求が受信接続キュー内で使用可能かどうかを確認します。
ではないのか?

316 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:47:28 ]
>>315
解決できるかどうか分かりませんが、Pending メソッドについて調べてきます。




317 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 02:15:12 ]
たとえPendingで確認しても、GUIスレッドで処理してたらクライアントが切断するまで止まるじゃん

318 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 09:40:49 ]
非同期処理にしろよ・・・・

319 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 09:43:53 ]
クライアントからの切断は取れたり取れなかったりするからね

320 名前:315 mailto:sage [2009/11/10(火) 15:30:23 ]
>>317
>>318
>>319
コメントありがとうございます。
非同期通信についても調べてみます

321 名前:314 mailto:sage [2009/11/10(火) 15:31:37 ]
↑314でした。すいません><

322 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 15:48:23 ]
非同期通信と通信での非同期処理は別の話だからなw

323 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:05:30 ]
流石に一緒にする奴はいないと思うぞwwww

324 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:08:54 ]
>>284 は kb135788 かな

325 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 18:09:09 ]
ここにいるぞ

326 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:32:36 ]
BackgroundWorker_DoWorkでList<>.Sortを実行中にキャンセルボタンをおされたらを処理を中止したいんですが
何かいい方法ないですか?
自分でループしてる処理ならBackgroundWorker.CancellationPendingをチェックして終了すれば
いいけど、List<>.Sort の実行中は何もできないんで。

次の様な処理書いてます。

private void backgroundWorker1_DoWork( object sender, DoWorkEventArgs e ) {
  BackgroundWorker worker = sender as BackgroundWorker;
  List<string> list = new List<string>();
  Random random = new Random();
  for( int i = 0; i < 1000000; i++ ) {
    if( worker.CancellationPending ) {
      e.Cancel = true;
      return;
    }
    list.Add( string.Format( "{0}";, random.Next( 1, 1000000 ) ) );
  }
  list.Sort( delegate( string s1, string s2 ) {
    return int.Parse( s1 ).CompareTo( int.Parse( s2 ) );
  } );
  e.Result = list;
}



327 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:46:48 ]
デリゲートとか何の役にたつんだよぽ

328 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:57:43 ]
なきゃないで問題ない

329 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:21:54 ]
デリゲートなかったらメソッド持ってるクラス渡すか継承して実装するかの二択になるからなぁ。


330 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:35:48 ]
>>346
yield

331 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:38:01 ]
おっ、書けた。
>>326
yield を使って止められるようにすればいい。
貼ったソースはWorker操作のためのサンプルだと理解しているが、
もし本気コードならいちいちintに変換しながら比較するなんて馬鹿なことはやめたほうがいいぞ。
一括でソート済みsetに放り込んで再び取り出したほうがよほど速い。

332 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:42:18 ]
yieldでどうやってlist.Sortを止めるんだよ
無理矢理止めるならlist.Sortに渡すコールバック内で例外投げるくらいしかないと思う

333 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:54:47 ]
現在アクティブなコントロールが、どの型か調べて
型に応じて動作を行うというものを作っております

たとえば、WebBrowserならMessageBox.Show("WebBrowser","種類");
みたいな感じで


アクティブなコントロールをthis.ActiveControlで取得まではできるのですが
その取得したコントロールの型同士を比較するにはどうすればいいでしょうか

334 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:00:45 ]
あるオブジェクトが特定の型かどうかを調べるにはisを使う
あるオブジェクトの型名などを取得するにはGetType

335 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:03:50 ]
>>334
if(this.ActiveControl is WebBrowser)
で比較できましたありがとうございました

336 名前:デフォルトの名無しさん [2009/11/10(火) 22:05:32 ]
ボタンをショートカットに対応させたいんだけど
ボタンをクリックしたことにするにはどうすればいいでしょーか



337 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:05:49 ]
あらま
さげわすれごめんなさい

338 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:18:56 ]
そんなことしなくてもボタンのTextの最後に&Xを付けるだけ(Xは任意のショートカットキー)

339 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:23:24 ]
フォームかコントロールでキーイベント拾ったら?

340 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:24:53 ]
あーあー、あったな、そんな機能。

341 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:45:23 ]
WebBrowserで送信する内容を取得したりすることってできますか?
主にヘッダーのことですが

342 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 23:53:45 ]
WinPcap

343 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:00:42 ]
>>342
すいません、WebBrowserコントロールの話ですorz

マイクロソフトのWebBrowserは便利ではあるのですがなかなか使いづらい・・・
使用制限の無い便利なブラウザコントロールないかなあ・・・・

344 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:17:34 ]
関係ないが >>343 ってVIPのスレにも来てなかったか?

345 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:19:43 ]
IEだろうとWebBrowserだろうと普通にネットワーク経由するなら取得できるじゃん

346 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:21:35 ]
>>344
ここで答えもらえなかったから行ったんじゃないの?
ほんと関係ないな



347 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:45:59 ]
System.Xml.Linq.XElement.Load メソッドで発生する全例外について知る方法はありますか?
MSDNに例外情報は記載されていなかったのですが、System.IO.FileNotFoundExceptionが発生しました。
System.IO.IOExceptionを継承した例外やArgumentNullException等が起きると予想できますが、
他にも発生しますか?

348 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:58:59 ]
XLINQでは,読み込みは基本的にXmlReaderに準じる
ArgumentExceptionやInvalidOperationの派生型が発生する場合は
使い方に問題があるということだから原則キャッチ禁止

349 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:05:31 ]
>>347
目的でアドバイスが変わる
現段階のという条件をつければ解析して
可能かもしれないという話は別にして

350 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:16:01 ]
ドキュメントに書いてないということは仕様として決まってないということなので
解析してキャッチしたりするのはあんまり良くないな
XElement.Load(string)はファクトリーメソッドということになってるXmlReader.Createに依存してるので
実際何やるかわからないんだよね
不安なら他のオーバーロード使ったほうが確実

351 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:52:22 ]
>>348-350
ありがとうございます

例外のStackTraceを見ると、
場所 System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings)
場所 System.Xml.Linq.XElement.Load(String uri, LoadOptions options)
場所 System.Xml.Linq.XElement.Load(String uri)
となっていましたが、Createメソッドの説明に無い DirectoryNotFoundException が発生しました

XmlReader.Create を直接呼び出しても DirectoryNotFoundException が発生しました
説明にあるFileNotFoundException と DirectoryNotFoundException には直接の継承関係は無いはずなのに

該当箇所は、何らかのエラーが発生したら、メッセージボックスを表示して強制終了する積りです。

352 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 01:19:56 ]
Windowsのアプリケーションを作るのは
Windows APIと.NETの二種類があるの?
Windows APIって.NETより難しいんでしょ?

353 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 01:28:43 ]
やる気が無い奴は消えろ

354 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 02:08:30 ]
C#で設計を学びたいのですが、何から手を付けたらいいんでしょう?
自分で考えたモデリングが正しい(あるいは悪くない)ことを客観的に測る指標などは存在するのでしょうか?

クラスを書くたびに間違ったことしてるんじゃないかと不安になります。

355 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 02:13:21 ]
間違ってるということは間違ったときに気付けば良いじゃないか

356 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 02:23:02 ]
こればかりは経験も必要だしな



357 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 02:24:09 ]
>>355
それだと動けばいいじゃん、になっちゃいません?
動くけど設計上よろしくない(拡張性/保守性がないとか)ってのをどうやって自分で認識したらいいんでしょう?


358 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 02:28:06 ]
C#でコンデンサー作った。電気がたまります






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

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

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