第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【C#】小知識(shí)#7:使用nameof方便維護(hù)項(xiàng)目

標(biāo)簽:
C#

nameof是C# 6才引进的功能,改善之前一些字串弱维护方式,改成编译前强检查,在重构/重命名的名称时非常有用。


举例(zflwx):


常看到ASP.NET MVC工程师在新项目使用HTML Helper,还是延续弱维护字串方式来串接Link,Url…以下一个跳转Link例子


public class HomeController:Controller


{


public ActionResult Index()=> this.View();


}



public class ITHelpController:Controller


{


public ActionResult SayHello()=> this.Content(“Hello ITHelp”);


}


@Html.ActionLink(“SayHello”,“SayHello”,“Home”)


项目小还好,当项目随着时间变大变复杂,这时候有人修改、停用Controller、Action名称,就需要使用人工判断方式找寻、修改。


这时候可以改成nameof,以下gif内容展示方便更改方法等名称,不用担心改A坏B


@Html.ActionLink(linkText:“SayHello”,


actionName: nameof(ITHelpController.SayHello),


controllerName: nameof(ITHelpController).GetControllerName()



2019-01-15.13.34.45-20190107.gif


至于GetControllerName()是另外封装的工具方法,为何额外做一个Extension,有经验的前辈、读者一定会想到,HTML Helper对Controller Name定义是不需要包含Controller,直接使用nameof(HomeController)会找不到资源404错误,举例:


2019-01-15.13.13.04-image.png



所以写一个MVCStringExtension


public static class MVCStringExtension


{


public static string GetControllerName(this string controllerName)


{


if(!controllerName.EndsWith(“Controller”))


throw new Exception(“请使用Controller类别”);


return controllerName.Replace(“Controller”,“”);


}


}


当然nameof不只能应用在HTML Helper,像是Dapper一样可以藉由nameof维护字串字段,避免忘记更新名称情况


void Main(ldmzl


{


using(var cn = SqlHelper.GetConnection())


{


cn.Query<Test>($“select {nameof(Test.Name)} from {nameof(Test)};”);


}


}



public class Test{


public string Name { get;set;}


}


最后nameof更好的一点是不会影响性能,藉由反编译查看,可以发现系统自动转成对应字串.

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消