続タイムラグについて

解決


岩田  2009-03-23 03:19:52  No: 141717

すみません。仮面弁士さんに教えていただいたコードが理解できかねていましたので新規に項をたてさせていただきました。
ElseIf Integer.TryParse(S, pn) = False OrElse (pn < 0) OrElse (pn > 10) Then
    MessageBox.Show("1〜10までの数しか入力できません

上記のソースですが、If文であることは理解してますが

=の部分が?です。

日本語で表記すると、TryParseスタティックメソッドで、文字列sの変換が成功するとpnに変換結果が代入され、TryParseメソッドはtrueを返す。
次のFalse OrElse (pn < 0) OrElse (pn >が=で結ばれているのは、
日本語で表記するとどのようになるのでしょうか?


魔界の仮面弁士  2009-03-23 03:24:10  No: 141718

If Integer.TryParse(S, pn) = False OrElse (pn < 0) OrElse (pn > 10) Then
    入力エラー処理
End If

というコードは、下記と同じ意味を持ちます。

If Integer.TryParse(S, pn) = False Then
    入力エラー処理
ElseIf pn < 0 Then
    入力エラー処理
ElseIf pn > 10 Then
    入力エラー処理
End If


岩田  2009-03-23 03:33:50  No: 141719

早速の回答有り難うございます
おっしゃる意味はわかりますが
本などをみても下記の構文が見あたらないものですから
脳内は??という状態でした
If Integer.TryParse(S, pn) = False OrElse (pn < 0) OrElse (pn > 10) Then
    入力エラー処理
End If
これは、2008の新しい機能の一部でしょうか?


魔界の仮面弁士  2009-03-23 03:59:11  No: 141720

> 仮面弁士さんに
省略禁止。

> 教えていただいたコードが理解できかねていましたので
話題が続く場合には、前回の URL を掲載してください。
これは、後から(検索等で)このページに直接やってきた方にも話が伝わるようにするためです。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200903/09030039.txt

> おっしゃる意味はわかりますが
今回の質問では、
  「Integer.TryParse(S, pn)」 = 「False OrElse (pn < 0) OrElse …」
で区切られると予想されていたようですが、実際には、
  「Integer.TryParse(S, pn) = False」 OrElse 「(pn < 0)」 OrElse …
であったという点は、御理解いただけたでしょうか?

これは、「比較演算子」すなわち [=] [<] [>] などが、
「論理演算子」である OrElse よりも先に評価されるためです。

演算子の評価順序について、下記を参照しておいてください。
http://msdn.microsoft.com/ja-jp/library/fw84t893.aspx

> これは、2008の新しい機能の一部でしょうか?

前回提示したコードには、2008 の新機能が含まれていますけれども
今回の質問範囲には、2008 固有の機能はありません。

「これ」というのが、どの部分を指しているのか分かりませんが、たとえば
TryParse メソッドの事だとすれば、『.NET Framework 2.0』からの機能ですし、
OrElse 演算子の事だとすれば、『Visual Basic.NET 2002』からの機能となります。

それとも、別の部分の事を指しておられるのでしょうか?


岩田  2009-03-23 04:08:28  No: 141721

>> 仮面弁士さんに
>省略禁止。
大変失礼しました。

> >教えていただいたコードが理解できかねていましたので
>話題が続く場合には、前回の URL を掲載してください。
>これは、後から(検索等で)このページに直接やってきた方にも話が伝わるよ>うにするためです。
了解しました

>> おっしゃる意味はわかりますが
>今回の質問では、
>  「Integer.TryParse(S, pn)」 = 「False OrElse (pn < 0) OrElse …」
>で区切られると予想されていたようですが、実際には、
  >「Integer.TryParse(S, pn) = False」 OrElse 「(pn < 0)」 OrElse …
>であったという点は、御理解いただけたでしょうか?

そうでしたか。よくわかりました。

>> これは、2008の新しい機能の一部でしょうか?

>「これ」というのが、どの部分を指しているのか分かりませんが、たとえば
>TryParse メソッドの事だとすれば、『.NET Framework 2.0』からの機能で
>すし、
>OrElse 演算子の事だとすれば、『Visual Basic.NET 2002』からの機能とな>ります。

Integer.TryParse(S, pn) = 「False OrElse (pn < 0) OrElse …の部分だったので、疑問が氷解しました。

有り難うございました。


岩田  2009-03-23 18:10:52  No: 141722

魔界の仮面弁士さん
MessageBox.Show( If(pn = X, "当たり", "残念") )
これが2008の新機能だったのですね。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加