2011-02-15 111 views
2

我只是碰到下面的代碼片段:函數返回一個不同的數據類型

Public Function Checked() As Boolean 
     Return applyChange 'This is a string! 
End Function 

這是怎麼回事?返回類型爲Boolean的函數如何返回string?我假設這裏有一些隱含的轉換,我寧願沒有。我錯過了一個編譯選項嗎?

這是.NET 1.0。

+2

您是否嘗試過使用`選擇嚴格'? – decyclone 2011-02-15 09:42:12

+0

看來我沒有。因爲.net 1沒有設置爲默認值。只要我這樣做了,我得到了一噸的編譯器錯誤:-) – 2011-02-15 09:43:18

回答

5

您錯過了Option Strict編譯選項。您可以在項目的「屬性」窗口的「編譯」選項卡下找到它。有了它打開,您會收到以下錯誤:

        Option Strict On disallows implicit conversions from 'String' to 'Boolean'.


我建議在立即打開這個選項和固定所有產生的編譯錯誤。從String轉換爲Boolean是一個冒險主張。在這種applyChange實際上是設置爲像「你好」(而不是「真」或「假」),你會得到以下運行時錯誤的字符串時:

Conversion from string "Hello" to type 'Boolean' is not valid.

相關問題