公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#一句很簡單而又很經典的代碼

admin
2024年1月22日 12:25 本文熱度 1017
轉自:不三周助
cnblogs.com/u3ddjw/p/11109679.html


一、知識點



二、問題


如果以上四個問題,你很自信,那么以下,您就不要看了,因為我想說的東西真的很簡單。


如果你開始懷疑自己,可以繼續向下看。你自己到底真的理解嗎???


再看下面這段代碼有沒有問題?

class Program{    static void Main(string[] args)    {        Transform t = new Transform();        t.v.x = 1;        t.ShowV();        Console.Read();    }}
struct Vector{    public float x;    public float y;    public float z;}
class Transform{    public Vector v { get; set; }    public void ShowV()    {        Console.WriteLine(v.x+"..."+v.y+"..."+v.z);    }}


如果你覺得沒有問題,那么你需要看看。這時候會編譯報錯,為啥,怎么回事。


第6行編譯報錯:



三、分析


如果你非常清楚屬性的本質的話,那么上述代碼可以進行轉換,將屬性轉換為普通方法。(屬性的本質就是方法嘛)

class Program{    static void Main(string[] args){        Transform t = new Transform();        t.GetVector().x = 1;        t.ShowV();        Console.Read();    }}
struct Vector{    public float x;    public float y;    public float z;}class Transform{    public Vector v;    //set    public void SetVector(Vector v){        this.v = v;    }    //get    public Vector GetVector(){        return v;    }    public void ShowV(){        Console.WriteLine(v.x + "..." + v.y + "..." + v.z);    }}

果然上述的改寫只是將屬性的寫法轉為本質寫法-寫成兩個普通的方法。結果還是報一樣的編譯錯誤。



編譯報錯提示還是一樣的CS1612


再修改一下 

Transform t = new Transform();
//t.GetVector().x = 10; 這邊編譯報錯
Vector v2 = t.GetVector();
v2.x = 10;t.ShowV();
Console.Read();

編譯打印結構是 0..0..0。


壓根就沒變,當然沒有變啊,因為v2是副本,你更改的只是副本,并沒有改變t中的v,同理,通過t.GetVector()也是一個副本,沒有意義。


所以C#語法在對于這種情況,幫我們做了一個處理,如果寫了這樣的代碼,直接給出編譯報錯。C#還是很智能的。就是如果我們錯誤的進行一個無意義的操作,會直接給出提示。這里給C#語法贊一個。


四、雜談


這一段代碼雖然好像很簡單,但是真的藏的很深,樓主工作三年。記得曾經有一次去網易二面,被一個大佬問到這個問題,懵逼了,就亂猜吧,一開始說,那個枚舉值中的x只是get,沒有set。然后大佬提示我不是的,然后我才誤打誤撞,恍然大悟,是因為枚舉值傳遞是副本傳遞,再進行賦值操作沒有意義。現在想想,能出這個問題的大佬,真的很強,一道很簡單的問題,但是考察的東西真的很多很多。


該文章在 2024/1/22 12:25:22 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 潮喷失禁大喷水 | 国产一区二区二区 | 国产交换配乱婬视频偷 | 国产午夜影| 国产精品吹潮在线观看中文 | 91无码久久国产线看观看 | 国产一线视频在线看 | 国产成人精品免费视频下载 | av中文字幕网站 | 国产激情视频一区二区三区 | 福利视频一区二区三区四区五区 | 精品国产福利在线观看一区 | 国产人妖视频一区二区 | 国产精品无码aⅴ在线观看播放 | 911精品国产亚洲日本美国韩国 | 黑人巨大人精品欧美三区 | 国产欧美成人不卡视频 | 18禁黄网站禁片免费观看不卡 | 国产成人综合久久精品亚洲 | 国产三级在线观看播放 | 国产高清一区二区三 | 成熟人妻av无码专区 | 国产成人精品无码片三区四区 | 国产不卡视频在线播放 | 国产超碰人人模人人爽人人添 | 精品久久久久久无码一区二区 | 国产午夜福利久久网 | 成人无码区免费视频网站蜜臀 | 国产成人午夜福利在线观看者 | 国产性爱精品亚洲色影视 | 国产91极品福利手机观看 | 国产精品视频观看裸模 | 高潮添下面视频免费看 | 国产色系视频在线观看免费 | 91日亚欧国产内射成人网 | 国产一区欧美二区影视播放 | 丰满人妻熟妇乱又伦精品软件 | 91传媒在线观看 | 国产喷水在线观看 | 国产成人a视频高清视频在线 | 成人亚洲欧美日韩高清 |