Force parentheses even when calling parameterless

2019-01-27 14:18发布

in VB.NET it is possible to omit parentheses when you call a parameterless function. However this can be very confusing because developers could think that a statement is accessing a property instead of a method. this could result in a performance drop if you are calling the method again and again instead of storing the result in a temp variable.

is there an option in VS2008 or a compiler option to force parentheses on statements that are calling a method?

and if so, would it be also possible that VS will insert missing parentheses automatically if you "format document" (Menu: Edit - Advanced)?

thanks, toebens

1条回答
Evening l夕情丶
2楼-- · 2019-01-27 14:54

No there is no such option in the VB.Net compiler. Parens are optional and there is no warning or error that exist for using a lack of them.

The other reason is that VB.Net is a language which tries to be flexible and get the syntax out of the way of the user. This type of restriction goes against this general philosophy.

Another issue to consider is that it's not a universally enforceable restriction. VB.Net allows for late binding scenarios whenever option strict is set to off. In these scenarios it is impossible for the VB.Net compiler to determine ahead of time if a particular call is a property, statement or not a valid call at all.

查看更多
登录 后发表回答