什么是“!” VB.NET中ViewDataDictionary实例后的符号?

时间:2015-09-03 19:14:40

标签: asp.net-mvc vb.net

我使用Visual Studio 2015 RTM创建了一个新的Web应用程序,并为其选择了MVC模板。

它为我创建了一堆代码,其中包含一个名为AccountController的控制器,其中包含一个完全相同的方法:

<AllowAnonymous>
Public Function Login(returnUrl As String) As ActionResult
    ViewData!ReturnUrl = returnUrl
    Return View()
End Function

那里有 ! 符号?它是vb.net语法的一部分吗?

1 个答案:

答案 0 :(得分:5)

这是惊叹号操作员。请参阅Special Characters in Code (Visual Basic)中的“感叹号(!)运算符”部分:

  

仅在类或接口上使用!运算符作为字典访问运算符。类或接口必须具有接受单个String参数的默认属性。紧跟在!运算符之后的标识符将成为以字符串形式传递给默认属性的参数值。

所以,而不是做:

ViewData("ReturnUrl") = returnUrl

你可以这样做:

ViewData!ReturnUrl = returnUrl