再次记录 Visual Studio 2015 CTP 5 的一个坑
升級(jí)到 VS2015 CTP 之后,今天要改項(xiàng)目中的一個(gè)東西,然后就不得不把 C# 6.0 改變的語(yǔ)法代碼中改了下(之前沒(méi)改,大約200多個(gè)),首先,比如下面示例代碼:
var fullName = "\{customer.FirstName} \{customer.LastName}";項(xiàng)目中有很多這樣的類(lèi)似代碼,這些都得改掉,怎么辦?手動(dòng)改???算了,還是批量修改吧,但是怎么批量替換呢,難道直接把“?{”替換成“{”,但是“$"該怎么加呢?這個(gè)問(wèn)題我思考了好久,之后還想用正則表達(dá)式替換,但是語(yǔ)法寫(xiě)不出來(lái),哎,最后的替換方式是:手動(dòng)+替換,替換“?{”,然后手動(dòng)在字符串前加“$”。
這里需要注意的是,千萬(wàn)不要批量替換“?{”,因?yàn)樘鎿Q之后,你不知道哪里用到了字符串變量,因?yàn)樗鼤?huì)把“{”作為字符串的一部分,而沒(méi)有了錯(cuò)誤提示和智能提示,這個(gè)千萬(wàn)要記住,如果你這樣替換,那你就死了。
再記錄一個(gè),之前在"{"中,寫(xiě)三目表達(dá)式是可以的,比如下面:
var fullName = "\{customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName} \{customer.LastName}";但是,替換成現(xiàn)在的語(yǔ)法特性,比如下面:
var fullName = $"{customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName} {customer.LastName}";上面這樣寫(xiě)是會(huì)報(bào)錯(cuò)的,這個(gè)問(wèn)題也困擾我很久,難道這也不支持?最后搞了好久,發(fā)現(xiàn)要在表達(dá)式上加“()”,如下:
var fullName = $"{(customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName)} {customer.LastName}";事情還沒(méi)完,話(huà)說(shuō)我改的差不多了,我自認(rèn)為是把所有的語(yǔ)法特性的代碼都改了,然后充滿(mǎn)信心的“Build”,然后就出現(xiàn)了下面這樣的情況:
錯(cuò)誤信息:“Metadata file 'xxxxxx.dll' could not be found” CSC,這個(gè)問(wèn)題看到都頭疼,然后我就搜遍了 Google,基本上的解決方式是:
無(wú)效,再搜,再?lài)L試,無(wú)效,再搜,再?lài)L試。。。
解決一個(gè)問(wèn)題,如果方向錯(cuò)了,那你就死慘了,我現(xiàn)在就是這樣。
最后猜怎么著?還是代碼問(wèn)題,有一個(gè)類(lèi)庫(kù)的語(yǔ)法特性代碼沒(méi)有改掉,我滴媽呀,為什么 VS2015 CTP 的錯(cuò)誤提示沒(méi)有顯示出來(lái)呢,而是顯示了一些亂七八糟的東西,最后發(fā)現(xiàn)的地方是 Output(輸出窗口):
error CS1009: Unrecognized escape sequence看到這樣的錯(cuò)誤,我就釋然了,要改代碼了。
本文轉(zhuǎn)自田園里的蟋蟀博客園博客,原文鏈接:http://www.cnblogs.com/xishuai/p/vs2015-ctp-c6-keng.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的再次记录 Visual Studio 2015 CTP 5 的一个坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 专用集成电路 -- 反相器
- 下一篇: haproxy代理设置及配置文件详解