C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C#のnullチェック


(過去ログ 117 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■69057 / inTopicNo.1)  C#のnullチェック
  
□投稿者/ まさお (6回)-(2013/12/01(Sun) 03:54:40)

分類:[C#] 

C#のnullチェック

nullチェック用のソースを書いたのですが↓の部分でかならずエラーが出てしまいます。
データ型HtmlDocumentにヌルを入れることはできないのでしょうか?

HtmlDocument doc = null;

while (doc.Body == null)//ここでエラー
{

}
引用返信 編集キー/
■69058 / inTopicNo.2)  Re[1]: C#のnullチェック
□投稿者/ επιστημη (91回)-(2013/12/01(Sun) 06:57:07)
> nullチェック用のソースを書いたのですが↓の部分でかならずエラーが出てしまいます。
> データ型HtmlDocumentにヌルを入れることはできないのでしょうか?
> 
> HtmlDocument doc = null;
> 
> while (doc.Body == null)//ここでエラー
> {
> 
> }

while ( doc == null ) ならおっけぃ。
あるいは
while ( doc != null && doc.Body == null ) ならおっけぃ。

引用返信 編集キー/
■69059 / inTopicNo.3)  Re[1]: C#のnullチェック
□投稿者/ Azulean (247回)-(2013/12/01(Sun) 09:53:41)
No69057 (まさお さん) に返信
> HtmlDocument doc = null;
>
> while (doc.Body == null)//ここでエラー
> {
>
> }

NullReferenceException(null 参照の例外)は、null となっている変数を使った(参照した)ときに発生します。
(対象の変数のプロパティを見る、メソッドを呼び出す際はその変数が null でないことが必要です)

今回、doc が null となっているのにその中の Body プロパティを見ようとしているの例外が発生します。
このため、doc に対して null かどうかをチェックすることが必要です。
引用返信 編集キー/
■69060 / inTopicNo.4)  Re[2]: C#のnullチェック
□投稿者/ まさお (7回)-(2013/12/01(Sun) 10:27:30)
お二人ともありがとうございます。
>> επιστημηさん
while ( doc != null && doc.Body == null )

これ使っていきます!!!


>>Azulean
今回、doc が null となっているのにその中の Body プロパティを見ようとしているの例外が発生します。


ハイパーわかりやすい。がってんいった☆
引用返信 編集キー/
■69078 / inTopicNo.5)  Re[3]: C#のnullチェック
□投稿者/ shu (441回)-(2013/12/02(Mon) 14:33:58)
2013/12/06(Fri) 08:51:30 編集(投稿者)
No69060 (まさお さん) に返信

docがnullの時点で
whileループを回す意味がないので

if (doc != null)
    while (doc.Body == null)
    {

    }

とした方がよいです。


というか
HtmlDocument doc = null;
の後に処理がないこと自体意味がないです。


#条件式修正

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -