這真的讓我感到震驚,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. Python:有沒有辦法讓Entry字段具有默認值?
- 2. Ansible:有沒有辦法讓變量沒有默認值?
- 3. 在YUI3模型中,有沒有辦法重置爲默認值?
- 4. 有沒有辦法將類型的屬性設置爲默認值?
- 5. 有沒有辦法改變xsd:element的默認類型?
- 6. 有沒有辦法讓選定的選項成爲刷新時的默認值?
- 7. 有沒有辦法讓動態默認參數?
- 8. 有沒有辦法爲ggsave設置新的默認值?
- 9. 有沒有辦法讓Visual Studio的默認
- 10. 有沒有辦法將默認值設置爲「00:00」?
- 11. 有沒有辦法將send_key定義爲默認設置的text_field元素類型
- 12. Python - 有沒有辦法讓所有的字符串unicode默認在項目中?
- 13. 有沒有辦法讓一個值只能訪問嵌套類VB.NET的父類?
- 14. 有沒有辦法使用VB.NET中函數調用結果的默認參數?
- 15. 有沒有辦法讓checkstyle成爲所有Java項目的默認Checkstyle?
- 16. e.preventDefault - 有沒有辦法做到默認?
- 17. 有沒有辦法讓頁面標籤默認展開?
- 18. 字段'類'沒有默認值
- 19. 有沒有辦法在Laravel 4中爲Route類設置默認的url參數?
- 20. 有沒有辦法爲Jinja2/Ansible設置一個整數的默認最小值?
- 21. 有沒有辦法在Mysql phpMyAdmin中將字段默認值設置爲Max + 1?
- 22. 有沒有辦法指定python枚舉的默認值?
- 23. 有沒有辦法設置sfWidgetFormFilterDate小部件的默認值?
- 24. 有沒有辦法讓這個jQuery網格選擇對象默認爲多選?
- 25. 有沒有辦法在Spring XML中指定默認屬性值?
- 26. 參數沒有默認值
- 27. 有沒有辦法讓lift-json將數字字符串字段自動轉換爲數字類型?
- 28. 有沒有辦法讓兩個類使用相同的泛型?
- 29. (Rails)有沒有辦法檢查字段的數據類型?
- 30. 有沒有辦法讓班級評估爲數字?
很好的答案,但它讓我難過。 – oscilatingcretin 2012-08-03 18:14:17