2012-12-29 42 views
0

在C我能做到這一點的:VB等效的測試一些返回值

if(e=my_func()){ 
... 
} 

有一些相當於在VB?

+2

如果'e'與'my_func'的返回值是相同類型(或可轉換爲),那麼VB.NET也可以工作,您有什麼問題? –

+0

嗯...(e = my_func())是一項任務。所以,不,你不能在VB中用if語句來做到這一點。 – U1199880

+0

@TimSchmelter在C中,示例代碼導致賦予'e',而在VB 6中,它不會。我最近還沒有使用VB.NET來記住,但我想它在這方面像VB 6一樣工作。 – phoog

回答

1

相信相當於是這樣的:

e = my_func() 
If e Then 
    '... 

你還必須記住,VB具有隱含值轉換爲布爾類型不同的規則。

0

你需要一個函數返回一些東西。假設它是一個布爾值。

Function x() As Boolean 
    Return True 
End Function 

現在你可以檢查它像這樣:

If x() = True Then 
     'do something 
    End If 

或者更簡單地說:

If x() Then 
      'do something 
    End If 

下面是其他的可能性,只是要清楚。

Function x() As Integer 
    Return 5 
End Function 

If x() = 5 Then 
    'do something 
End If 

If Not (x() = 5) Then 
    'do something 
End If 

Dim y as Integer 
y = x() 

If y = 5 Then 
    'do something 
End If 
+0

好吧,更確切地說,在CI中可以做一整件事情,測試!= false(意味着除0之外的任何東西都將被評估爲真),並且將返回代碼分配給變量e,所以我在內部使用該值if { }塊。我想VB想要嚴格的布爾值。 – user1797147

+0

更新我的答案,使其更清晰:) – theGD

+0

@ user1797147「VB想要嚴格的布爾值」 - 它的確如此,但這不相關。 VB根本不允許在表達式中進行賦值。即使使用布爾類型,該聲明也不起作用。也就是說,如果b = SomeFunction()那麼......即使聲明瞭'b'也不會做你想要的東西'作爲布爾值'和'SomeFunction'返回'布爾值'。 –