2014-07-11 63 views
0

美好的一天, 這是我的第一篇文章。我是一個新的VB.Net和學習了很多來自Stackoverflow.com在If語句中使用函數值(表格加載期間)

我想使用一個函數(真/假)返回到一個表單載入事件的If語句的值。如果函數值爲False,那麼會顯示一個消息框,指示「Not Running」,否則。

下面是示例代碼。我正在使用應用程序供應商提供的API庫來構建一個小應用程序。 我也在結束函數之前嘗試使用「Return CreateX」和「CreateX()= True」。由於某些原因,即使我的進程正在運行,它總是隻返回一個類型的pf消息。

Public GlobalX As appLib.Api 

Public Function CreateX() As Boolean 

    GlobalX = CreateObject("ABCD") 

    If GlobalX Is Nothing Then 
     CreateX = False 
    Else 
     CreateX = True 
    End If 

End Function 

Private Sub APP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
If CreateX() = False Then 

     MsgBox(" NOT Running!!") 
    Else 

     MsgBox("Running!!") 

    End If 
    End Sub 

請問你們能幫我解決這個問題嗎?提前致謝。

+0

你需要檢查你的'CreateX'函數實際上在做什麼。在'如果GlobalX是Nothing Then'上放置斷點並查看GlobalX是什麼。我有一種感覺,既然你創造了這個物體,它總是「某物」而不是「無」。 – Grim

+0

很難猜測「一種類型的信息」可能意味着什麼。不要像這樣寫代碼,如果CreateObject()失敗,那麼它會拋出一個異常而不是返回Nothing。 –

回答

0

嘗試用這個替換你的函數;

Public Function CreateX() As Boolean 

    GlobalX = CreateObject("ABCD") 

    If GlobalX Is Nothing Then 
     return False 
    Else 
     return True 
    End If 

End Function 

該方法,它應該沒問題,或者更好的方法來驗證布爾值;

Private Sub APP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
If NOT CreateX() Then 

    MsgBox(" NOT Running!!") 
Else 

    MsgBox("Running!!") 

End If 
End Sub 
+0

這相當於原始代碼。它不會解決問題。 – Alireza