2011-07-14 4 views
1

ここで間違っていることを誰でも見ることができますか?vb.net 4.0パラメータが設定されている場合のiifの問題

Public ReadOnly Property Istest As Boolean 
    Get 
     Return IIf(test.Contains("yes"), True, False) 
    End Get 
End Property 

あなたのコードは約2つのヒント:ページが

Partial Public Class testForm1 
    Inherits System.Web.UI.Page 
    Private Property test() As String 
     Get 
      'if is in session, return it, otherwise look it up 
      If (IsNothing(Session("test"))) Then 
       Session("test") = "" 
      End If 

      Return Session("test") 

     End Get 
     Set(ByVal Value As String) 
      Session("test") = Value 
     End Set 
    End Property 

    Public ReadOnly Property Istest As Boolean 
     Get 
      IIf(test.Contains("yes"), True, False) 

     End Get 
    End Property 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     test = "yes" 
     Response.Write(IIf(Istest, "YES This is a test", "NO testing here")) 

    End Sub 



End Class 

答えて

1

「YESこれはテストです」あなたはただIstestのリターンを逃している必要があります。

  1. Iifの代わりにIf() operatorを使用してください。これは同じ方法で動作しますが、短絡評価を使用します。 If()をIif()よりも優先させる理由はありません。より良い、ちょうど

Public ReadOnly Property Istest As Boolean 
    Get 
     Return test.Contains("yes") 
    End Get 
End Property 
+0

+1、しかし: 'リターンtest.Contains( "はい" あなたが実際に使用する必要がある場合や、IIFのすべてのIsTestプロパティではありません

  • ) 'いいえIIf()は必要ありません。 –

  • +0

    良い点!ありがとうございました:) – kiev

    関連する問題