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

Ham*_*iab 3 vb.net asp.net-mvc

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

它为我创建了一堆代码,包括一个名为AccountController包含一个完全如下方法的控制器:

<AllowAnonymous>
Public Function Login(returnUrl As String) As ActionResult
    ViewData!ReturnUrl = returnUrl
    Return View()
End Function
Run Code Online (Sandbox Code Playgroud)

什么!符号呢呢?它是vb.net语法的一部分吗?

tra*_*r0x 6

这是惊叹号操作员.请参阅代码中的特殊字符(Visual Basic)中的 "感叹号(!)运算符"部分:

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

所以,而不是做:

ViewData("ReturnUrl") = returnUrl
Run Code Online (Sandbox Code Playgroud)

你可以做:

ViewData!ReturnUrl = returnUrl
Run Code Online (Sandbox Code Playgroud)