最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在C#中新手易犯的典型缺陷

 更新時間:2015年07月28日 17:12:21   投稿:lijiao  
這篇文章的主要內(nèi)容是關(guān)于C#那些新手易犯的典型缺陷,只有對有可能犯的錯誤進(jìn)行總結(jié)才能做得更好,需要的朋友可以參考下

這段時間花了點時間整理了幾個新手易犯的典型缺陷(專門針對C#的),但是個人的力量畢竟有限缺陷的覆蓋面比較窄,有些缺陷的描述也不夠準(zhǔn)確,這里先貼出來看看能不能集思廣益,收集整理出更多的典型缺陷。目標(biāo)就是希望剛?cè)腴T.NET的新手看了之后能少走些彎路。

1 及時釋放資源

CLR托管環(huán)境扮演了垃圾回收的角色,所以你不需要顯式釋放已創(chuàng)建對象所占用的內(nèi)存。但這不意味著你可以忽略所有的使用過的對象。許多對象封裝了其 他類型的系統(tǒng)資源(例如,磁盤文件,數(shù)據(jù)連接,網(wǎng)絡(luò)端口)。保持這些資源的使用狀態(tài)會急劇的耗盡系統(tǒng)的資源,削弱性能并且最終導(dǎo)致程序出錯。當(dāng)你打開一個 文件、網(wǎng)絡(luò)端口或者數(shù)據(jù)連接時,當(dāng)你不再使用這些資源時,應(yīng)該盡快顯式釋放這些資源。
另外針對資源的操作,一般需要增加異常捕獲處理(Try..Catch),這時別忘記在finally中進(jìn)行資源釋放,以確保在捕獲異常時也可以正常釋放資源。

2 正確停止多線程

FileStream fs = File.Open(…);
Try{…} Finally{ fs.Close;}

假設(shè)如上代碼在工作線程中,已經(jīng)進(jìn)行到finally里面,這個時候UI線程調(diào)用了該線程的Abort()方法,則很有可能fs.Close還沒有執(zhí)行的時候,工作線程跳出finally代碼塊了。這樣你的fs就永遠(yuǎn)不會被Close了。
大多數(shù)情況下,finally會永遠(yuǎn)被被執(zhí)行,但不包括調(diào)用Thread.Abort所引發(fā)的ThreadAbortException異常,鑒于此理由,不建議使用Abort。
要正確停止線程,不在于調(diào)用者采用了什么行為(不要直接使用Thread.Abort()),而更多依賴于工作線程是否能主動響應(yīng)調(diào)用者的停止請求。
大體機(jī)制是,如果線程需要被停止,那么線程自身就應(yīng)該負(fù)責(zé)給調(diào)用者開放Cancel的接口。

3 類型轉(zhuǎn)換相關(guān)

如果從數(shù)據(jù)庫中讀取某個值,有數(shù)據(jù)時是int類型,沒有數(shù)據(jù)的話獲取到的是null,類型強(qiáng)轉(zhuǎn)則會異常。所以一般很少用強(qiáng)轉(zhuǎn),用的話也必須做一個異常捕獲,避免程序異常。

在強(qiáng)轉(zhuǎn)不好的情況下,我們建議使用TryParse方法,該方法已經(jīng)對Parse方法進(jìn)行了異常處理。

也可以用Convert,同樣需要進(jìn)行異常捕獲;其實,凡是涉及到類型轉(zhuǎn)換,序列化等操作的地方,都需要捕獲異常;

4 字符串操作問題

在對字符串操作中,若涉及大量拼接操作建議使用StringBuilder。若使用String會帶來明顯的性能損耗。原因在于string對象是 個很特殊的對象,它一旦被賦值就不可改變。在運行時調(diào)用String類中任何拼接操作(如賦值、”+”等),都會在內(nèi)存中創(chuàng)建一個新的字符串對象,也意味 著要為該新對象分配新的內(nèi)存空間。

5 const常量修改導(dǎo)致的問題

當(dāng)程序引用其他dll中的const常量時要特別引起注意。
若修改了此dll中的const常量后,要重新編譯引用了此dll中這個const常量的所有程序,否則程序中使用的這個常量值將和dl中的不一致。
另外如果使用readonly代替const可以解決這個問題,不需要重新編譯,因為const是編譯型常量,而readonly是運行時常量。

6 C#編譯目標(biāo)平臺問題

當(dāng)程序依賴的dll的編譯的目標(biāo)平臺是X86,則程序本身的編譯目標(biāo)平臺也必須是X86(而不是默認(rèn)選項Any CPU),否則64位電腦將無法運行。

7 跨線程訪問控件

在開發(fā)界面程序時,會遇到比較耗時的操作,為了程序的友好性,我們一般會在任務(wù)線程中執(zhí)行耗時操作,并將執(zhí)行信息顯示在主UI線程。
假如直接在任務(wù)線程中操作主UI線程中的控件,這樣極易出現(xiàn)異常,報“不能在其他線程中修改創(chuàng)建控件線程的值”,如果設(shè)置了禁止編譯器對跨線程訪問做檢查,就不會報錯,但是會出現(xiàn)無法預(yù)知的問題。此時建議采用委托或匿名委托的方式實現(xiàn)。

以上就是總結(jié)了7種新手易犯的典型缺陷,希望對大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:

相關(guān)文章

  • Unity查找游戲物體的六種方式詳解

    Unity查找游戲物體的六種方式詳解

    最近學(xué)習(xí)unity3d做游戲,總結(jié)了一些實用的內(nèi)容,所以下面這篇文章主要給大家介紹了關(guān)于Unity查找游戲物體的六種方式,需要的朋友可以參考下
    2021-06-06
  • C#通過KD樹進(jìn)行距離最近點的查找

    C#通過KD樹進(jìn)行距離最近點的查找

    這篇文章主要為大家詳細(xì)介紹了C#通過KD樹進(jìn)行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • C#實現(xiàn)給圖片添加日期信息的示例詳解

    C#實現(xiàn)給圖片添加日期信息的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)給圖片添加日期信息,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • Unity實現(xiàn)跑馬燈抽獎效果

    Unity實現(xiàn)跑馬燈抽獎效果

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)跑馬燈抽獎效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換

    C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換

    這篇文章介紹了C#預(yù)定義的基礎(chǔ)類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#打印類PrintDocument、PrintDialog、PrintPreviewDialog使用示例

    C#打印類PrintDocument、PrintDialog、PrintPreviewDialog使用示例

    這篇文章主要介紹了C#打印類PrintDocument、PrintDialog、PrintPreviewDialog使用示例,本文分別給出了示例代碼,需要的朋友可以參考下
    2015-06-06
  • C#不改變圖像長寬比例調(diào)整圖像大小方式

    C#不改變圖像長寬比例調(diào)整圖像大小方式

    文章介紹了在UI顯示圖片時,當(dāng)容器大小固定而圖片尺寸大于容器時,可以通過編碼計算長寬來重繪圖像,以確保圖像的長寬比例不變,C#代碼示例展示了如何在Winform前端實現(xiàn)這一功能
    2025-01-01
  • C#隊列Queue用法實例分析

    C#隊列Queue用法實例分析

    這篇文章主要介紹了C#隊列Queue用法,實例分析了隊列的功能、定義及相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • C#實現(xiàn)模擬ATM自動取款機(jī)功能

    C#實現(xiàn)模擬ATM自動取款機(jī)功能

    這篇文章介紹了C#實現(xiàn)模擬ATM自動取款機(jī)功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • WPF中MVVM模式的理解與實現(xiàn)

    WPF中MVVM模式的理解與實現(xiàn)

    MVVM是一種設(shè)計模式,特別適用于WPF(Windows Presentation Foundation)等XAML-based的應(yīng)用程序開發(fā),MVVM模式主要包含三個部分:Model(模型)、View(視圖)和ViewModel(視圖模型),本文給大家介紹了WPF中MVVM模式的理解與實現(xiàn),需要的朋友可以參考下
    2024-05-05

最新評論

宽甸| 静海县| 唐河县| 五指山市| 阜宁县| 高台县| 利川市| 台前县| 崇信县| 天水市| 武穴市| 工布江达县| 延庆县| 泸州市| 毕节市| 抚宁县| 闵行区| 萝北县| 澄城县| 丽江市| 琼中| 绥芬河市| 康马县| 五大连池市| 邯郸县| 临夏市| 泽普县| 北安市| 太保市| 招远市| 大田县| 石嘴山市| 上思县| 徐闻县| 抚宁县| 兴安县| 修水县| 邵阳县| 微博| 衡水市| 万载县|