這真的讓我感到震驚,VS 2010 IDE並沒有吼我試圖通過一個方法參數傳遞Nothing來取得用戶定義的枚舉。相反,它將0傳遞給該方法。 C#永遠不會允許這個。是否有一些模塊級修飾符可以像option strict
那樣添加,這將迫使IDE不允許這些類型的隱式轉換?VB.NET:有沒有辦法讓數字類型的默認值爲0?
5
A
回答
6
不幸的是,沒有。
但是你可以同時跳過0
值分配給您枚舉成員(或使用名爲None
或類似的東西佔位符),並且至少處理這種情況在運行時。
Sub Main
MyMethod(Nothing) ' throws Exception
End Sub
Sub MyMethod(e as MyEnum)
If e = 0 Then
Throw New Exception
End If
End Sub
Enum MyEnum
a=1
b=2
c=3
End Enum
3
沒有什麼默認在C#語言中的等價物。所以不行。
重新考慮你的編程風格,沒有應該使用非常節制。基本上只在通用代碼中,你可以在C#中使用默認。你不需要它,VB.NET不會像C#那樣堅持變量初始化。任何引用類型的變量都會自動初始化爲Nothing。可能對C#程序員有價值,但在VB.NET代碼中完全慣用。
+0
我不認爲很容易避免將'Nothing'作爲方法參數(這是OP正在討論的情況)。 – Heinzi 2012-08-01 11:51:01
+0
這也是可能的,可選參數一直得到很好的支持。 – 2012-08-01 11:52:20
相關問題
- 1. Ansible:有沒有辦法讓變量沒有默認值?
- 2. 有沒有辦法改變xsd:element的默認類型?
- 3. 有沒有辦法讓動態默認參數?
- 4. 有沒有辦法爲ggsave設置新的默認值?
- 5. 有沒有辦法讓Visual Studio的默認
- 6. 有沒有辦法將默認值設置爲「00:00」?
- 7. Python - 有沒有辦法讓所有的字符串unicode默認在項目中?
- 8. 有沒有辦法讓一個值只能訪問嵌套類VB.NET的父類?
- 9. 有沒有辦法使用VB.NET中函數調用結果的默認參數?
- 10. 有沒有辦法讓checkstyle成爲所有Java項目的默認Checkstyle?
- 11. e.preventDefault - 有沒有辦法做到默認?
- 12. 有沒有辦法讓頁面標籤默認展開?
- 13. 有沒有辦法在Mysql phpMyAdmin中將字段默認值設置爲Max + 1?
- 14. 有沒有辦法設置sfWidgetFormFilterDate小部件的默認值?
- 15. 有沒有辦法指定python枚舉的默認值?
- 16. 有沒有辦法在Spring XML中指定默認屬性值?
- 17. 參數沒有默認值
- 18. 有沒有辦法讓lift-json將數字字符串字段自動轉換爲數字類型?
- 19. 沒有默認值Vs NULL Vs 0在MySQL中作爲文本和整數字段的默認值
- 20. (Rails)有沒有辦法檢查字段的數據類型?
- 21. 有沒有辦法讓班級評估爲數字?
- 22. 在XAML中有沒有辦法將UpdateSourceTrigger默認爲PropertyChanged?
- 23. 有沒有辦法只使用類的對象名稱作爲「默認」成員?
- 24. 有沒有辦法使用PHPmailer作爲sendmail_from php.ini指令的默認值?
- 25. 有沒有辦法讓Rust推斷相關類型的正確類型?
- 26. 有沒有辦法讓頂層GTK窗口小於默認的最小尺寸?
- 27. 爲什麼沒有數字數據類型爲0 - 4,294,967,294
- 28. 有沒有辦法將0賦值爲std :: chrono :: nanoseconds
- 29. 有沒有辦法將一個類型參數約束爲SqlDbType?
- 30. 有沒有辦法讓視覺代碼默認創建HTML文件?
很好的答案,但它讓我難過。 – oscilatingcretin 2012-08-03 18:14:17