日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【.NET深呼吸】基础:自定义类型转换

發(fā)布時間:2023/12/18 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【.NET深呼吸】基础:自定义类型转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

照例,老周在開始吹牛之前,先講講小故事,這是朋友提出的建議,老TMD寫技術有什么了不起的,人人都會寫。后來老周想想,也確實,代碼誰不會寫,能寫到有品位有感悟,就不容易做到。于是,老周接受了該朋友的建議。

有初入職場的弟弟妹妹們經(jīng)常訴苦,為啥,因為常常被人罵,被老員工罵,被老板罵。好像自己做的事永遠都是錯的,于是感覺很受打擊,很傷心。

這里老周必須提醒各位,小伙子應該堅強一點,小妹妹們也不要過于絕望,千萬不要因為這些事情去做傻事。西湖景觀很美,“欲把西湖比西了,淡妝濃抹總相宜”,但是,如果有人跳西湖自殺的話,真是大煞風景,破壞自然天道。你可不要當這種千古罪人,而且要多想想父母,把你養(yǎng)這么大,你如果覺這種輕生的行為也是孝道的話,那你去死吧,老周不攔你。

初入職場,誰不是天天被人罵的,遙想老周當年,經(jīng)常早上一到辦公室,打開電腦,然后抬頭一看,墻上的紙板上列出了老周上個月的十大罪狀,媽的,寫得像法院判決書似的,那架勢,簡直要吃人的姿態(tài)。

至于那老員工,平時受老板的氣,現(xiàn)在你進來了,不拿你來發(fā)泄找誰去。人最可怕的就是情緒的奴役,尤其是職場上的壓力。而比這更可怕的是,現(xiàn)代人真的在很多地方比不上古人,現(xiàn)在的人遇到不順心的事,不懂得如何去化解和調(diào)整,要么亂來,要么自我毀滅;要么沉迷于酒色,要么沉迷于網(wǎng)絡游戲。究其根本,就是精神世界太空白,平時又不多讀書,人家孔老頭都說了,修身齊家治國平天下,你呢,連修身都沒做好,還吹什么牛逼呢?一屋不掃,何以掃天下?

老周被人罵的時候,就站在那里聽著,聽完后,心里沒有任何感覺,晚上回家讀幾首詩就把白天的事忘得一干二凈了。職場嘛,你應該練就這種本領。

記得老周做得最猛,也最為光榮的一件事,大約在2011年初吧,某天一到辦公室,習慣地抬頭看看紙板,發(fā)現(xiàn)多了幾個寫得很難看的大字——“粗枝大葉”。我就知道經(jīng)理又在說我了。中午下班后,我就到對面馬路找我的朋友,她在那里開了個少兒書畫培訓班。我去她那里找了宣紙和毛筆,然后寫上四個大字——“臥薪嘗膽”,隨后請她吃了飯作為答謝。

下午上班后回到辦公室,我就把剛寫好的幾個大楷直接貼在經(jīng)理寫的幾個丑字上面,然后繼續(xù)工作。

第二天早上,經(jīng)理進來看到了我寫的那幾個大字,就在我耳邊說了句:“你小子,真有你的。” 正好那個時候,老周也想換個環(huán)境,所以老周向經(jīng)理承諾,把近期的項目完成后,寫后各種文檔,以供后面來的人接手,就很灑脫地離開了公司。

老周一直以為,那天經(jīng)理應該生氣了。誰曾想,相隔幾年后,2015年5月,我在親戚的婚宴上偶遇經(jīng)理,以及幾位舊同事。我就很坦白地問經(jīng)理:“那件事,你當時是不是很生氣?”? 經(jīng)理放下筷子,說:“倒不是,是很驚訝。你那幾個字現(xiàn)在還在那里,你有空可以來辦公室看看。”? 然后咱們就聊了些有的沒的一堆閑話,比如搞IT教育如何如何,怎么培訓新員工之類的。我感覺經(jīng)理現(xiàn)在對我的態(tài)度很友善,和幾年前完全相反。

故事講完了,老周只是實話實說,至于說老周做得對不對,你自己參考吧。

=======================================================

?

今天說一個基礎知識,我記得,我的爛書《精通C#》里面介紹過自定義類型轉(zhuǎn)換的內(nèi)容,書名有點夸張,老周不喜歡這名字,但出版社喜歡,我也沒辦法。

實現(xiàn)自定義類型轉(zhuǎn)換可以通過重載運算符來解決。有兩種轉(zhuǎn)換方式:

1、隱式轉(zhuǎn)換:就像子類實例可以直接賦給基類變量一樣,不需要寫任何強制轉(zhuǎn)換的東東,通過賦值就能夠自動轉(zhuǎn)換類型。

2、顯式轉(zhuǎn)換:必須手動寫上強制轉(zhuǎn)換,才能完成類型的轉(zhuǎn)換。比如 int x = (int)dv;

?

好,咱們用實例說話,先來個隱式轉(zhuǎn)換的。

假設我定義了一個Product類,表示一種產(chǎn)品的信息。

public class Product{public int ProID { get; set; }public string ProName { get; set; }public float ProSize { get; set; }}

?

我希望實現(xiàn):可以將一個Product類隱式轉(zhuǎn)換為string類型。可在類型中重載轉(zhuǎn)換運算符。

public static implicit operator string(Product p){return $"產(chǎn)品ID = {p.ProID},產(chǎn)品名稱 = {p.ProName},產(chǎn)品尺寸 = {p.ProSize}";}

?

和普通運算符重載差不多,都是聲明為公共的,靜態(tài)的,因為運算符是操作類型的,不是針對某個實例而設定的。要實現(xiàn)隱式轉(zhuǎn)換,需要加上implicit關鍵字,轉(zhuǎn)換運算符實際上是要轉(zhuǎn)換的目標類型,此處是string,然后參與運算的操作數(shù)是Product實例。

?

下面,一起來見證一下奇跡。

static void Main(string[] args){Product prd = new Product();prd.ProID = 1001;prd.ProName = "山貨自行車";prd.ProSize = 1.35f;// 隱式轉(zhuǎn)換為字符串string str = prd;// 輸出 Console.WriteLine(str);Console.Read();}

?

得到結(jié)果如下。

?

正常情況下,Product實例是不能轉(zhuǎn)換為string的,但由于我上面定義隱式轉(zhuǎn)換的運算符重載,使得這一賦值成為可能。

? string str = prd;

?

如果使用顯式轉(zhuǎn)換,則在使用時必須明確注明強制轉(zhuǎn)換。

假設一個Work類,代碼如下:

public class Work{public int Num1 { get; set; }public int Num2 { get; set; }public static explicit operator int(Work w){return w.Num1 * w.Num2;}}

?

顯式轉(zhuǎn)換重載和前面隱式轉(zhuǎn)換差不多,只是要把implicit關鍵字換成explicit關鍵字。下面可以測試一下。

Work wk = new Work();wk.Num1 = 5;wk.Num2 = 7;// 賦值時要強制轉(zhuǎn)換int n = (int)wk;Console.WriteLine($"計算結(jié)果:{n}");

?

同樣的,在正常情況下,Work類是復合類型,也不可能強制轉(zhuǎn)換為int值,但由于在類中有自定義轉(zhuǎn)換,所以使用強制轉(zhuǎn)換是可以完成轉(zhuǎn)換的。

?

其實,.net庫中有許多類型也定義了這兩種轉(zhuǎn)換,比如WPF中,動畫時間線對象的Duration屬性就可以TimeSpan進行隱式轉(zhuǎn)換。

別小看這個基本知識點,經(jīng)驗表明,這東東在實際應用中很有用。

?

示例代碼下載

轉(zhuǎn)載于:https://www.cnblogs.com/tcjiaan/p/5042525.html

總結(jié)

以上是生活随笔為你收集整理的【.NET深呼吸】基础:自定义类型转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。