为什么要用@using?
- C# code
@using (Html.BeginForm()){ <div style="width: 380px; margin: 0px auto"> <fieldset> <legend>帐号信息</legend> <p> <label for="username"> 帐号:</label> @Html.TextBox("username") @Html.ValidationMessage("username") </p> <p> <label for="password"> 密码:</label> @Html.Password("password") @Html.ValidationMessage("password") </p> <p> @Html.CheckBox("rememberMe") <label class="inline" for="rememberMe"> 下次自动登录(公共电脑上谨慎使用)</label> </p> <div class="center"> <input type="submit" value="登录(L)" accesskey="L" /> </div> <p>@Html.ActionLink("还没有账号?立即注册", "Register")</p> </fieldset> </div>}
------解决方案--------------------------------------------------------
System.Web.Mvc.Html.MvcForm返回一个 System.Web.Mvc.Html.MvcForm类型的对象,而 System.Web.Mvc.Html.MvcForm实现了IDisposable接口,因此需要using 或者限时调用Dispose函数。
你的代码里既没有调用Dispose函数,也没有EndForm函数。就是因为用了using .
------解决方案--------------------------------------------------------
使用Using的目的是要调用 IDisable接口功能。
要注意,不是见到 IDisposable 接口就使用 Using。
不需要使用Using的时候使用它,只会让你的程序变得更慢。因为GC会自动在合适的时机去延迟调用IDisposeable,用不着你写Using去调用这个接口的功能。
判断何时使用Using,何时不写,要具体地知道 Dispose 方法里到底做了什么你必须当下就做的事情。如果没有,或者你不知道,就不要写 Using。因为没有必要现在就调用DIisposable接口功能。