C#一句很簡單而又很經(jīng)典的代碼
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
一、知識點 二、問題 如果以上四個問題,你很自信,那么以下,您就不要看了,因為我想說的東西真的很簡單。 如果你開始懷疑自己,可以繼續(xù)向下看。你自己到底真的理解嗎??? 再看下面這段代碼有沒有問題?
如果你覺得沒有問題,那么你需要看看。這時候會編譯報錯,為啥,怎么回事。 第6行編譯報錯:
三、分析 如果你非常清楚屬性的本質的話,那么上述代碼可以進行轉換,將屬性轉換為普通方法。(屬性的本質就是方法嘛)
果然上述的改寫只是將屬性的寫法轉為本質寫法-寫成兩個普通的方法。結果還是報一樣的編譯錯誤。
編譯報錯提示還是一樣的CS1612 再修改一下
編譯打印結構是 0..0..0。 壓根就沒變,當然沒有變啊,因為v2是副本,你更改的只是副本,并沒有改變t中的v,同理,通過t.GetVector()也是一個副本,沒有意義。 所以C#語法在對于這種情況,幫我們做了一個處理,如果寫了這樣的代碼,直接給出編譯報錯。C#還是很智能的。就是如果我們錯誤的進行一個無意義的操作,會直接給出提示。這里給C#語法贊一個。 四、雜談 這一段代碼雖然好像很簡單,但是真的藏的很深,樓主工作三年。記得曾經(jīng)有一次去網(wǎng)易二面,被一個大佬問到這個問題,懵逼了,就亂猜吧,一開始說,那個枚舉值中的x只是get,沒有set。然后大佬提示我不是的,然后我才誤打誤撞,恍然大悟,是因為枚舉值傳遞是副本傳遞,再進行賦值操作沒有意義?,F(xiàn)在想想,能出這個問題的大佬,真的很強,一道很簡單的問題,但是考察的東西真的很多很多。 該文章在 2024/1/22 12:25:22 編輯過 |
關鍵字查詢
相關文章
正在查詢... |