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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

从编码层面对比java和c#

發(fā)布時間:2023/12/4 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从编码层面对比java和c# 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java和c#都是面向?qū)ο缶幊谈呒壵Z言,總體上來講,它們還是很相似的,因為它們在發(fā)展過程中都很大程序上學(xué)習(xí)了對方不少優(yōu)秀的特性。所以,一般來說,從其中一門語言轉(zhuǎn)換到另外一門語言應(yīng)該都不會有很大問題。

雖然說這兩門語言很相似,但還是有一些不同點,如果我們能夠掌握這些不同點,則可以更加容易的實現(xiàn)兩門語言之間的切換,編寫出更加專業(yè)的代碼。

之前寫過一篇文章(從Java轉(zhuǎn)向.NET/C#,Are You OK?),從highlevel層面對比了java和.net/c#兩個技術(shù)棧,通過這篇想必大家對.net/c#技術(shù)棧會有一個比較全面直觀的認識。接下來從編碼角度對這兩門語言進行一個對比,這些也應(yīng)該是一個Java程序員轉(zhuǎn)為c#程序員剛開始最需要適應(yīng)和理解的點:

編碼風格

  • c#里面方法命名建議大寫打頭,follow pascal case;而java里面方法名是小寫打頭,follow camel case。

  • c#里面常量命名follow pascal case;而java里面常量命名單詞全大寫,單詞之間用下劃線連接。

  • c#里面左右大括號都獨立成一行;java里面左大括號不獨立成一行。

  • 語法層面

  • java里面有pacakge的概念;c#里面對應(yīng)的是namespace。

  • java里面引入某一個package下面的類,用import;c#里面對應(yīng)的是using。

  • java里面繼承父類和實現(xiàn)接口分別是extend和implement;c#里面都用冒號(:)。

  • java里面調(diào)用父類方法用super;c#里面對應(yīng)是base。

  • java里面定義一個immutable類用final;c#里面對應(yīng)是sealed。

  • java里面防止方法被重寫用final;c#里面對應(yīng)是sealed,在多重繼承復(fù)寫方法的場景可能會用到。

  • java里面public或protected方法默認都是可以被重寫;c#里面默認都是不可被重寫,如果要可被重寫,需要加virtual標明。

  • java里面子類復(fù)寫方法用@Override標注;c#里面則是用override關(guān)鍵字。

  • java里面定義常量用final static;c#里面對應(yīng)是const。更加準確的說,java里面的final對應(yīng)c#里面的readonly,java里面的final static對應(yīng)c#里面的const。

  • java里面有checked exception和non-checked exception(RuntimeException)之分;c#里面只有non-checked exception。

  • java里面的annotation概念;c#里面對應(yīng)的是attribute。

  • java里面可變參數(shù)是...;c#里面對應(yīng)是params。

  • java里面一個java文件只能包含一個public class,并且文件名要和類名相同;c#則沒有這個限制,可以包含多個public class。

  • c#里面有property(屬性)概念;java里面沒有,但可用getter/setter方法替代。

  • c#里面有delegate(委托)概念;java里面沒有。委托,代表一個方法的引用,是c#一開始就有的概念,和后來新增的lambda概念類似,都是對函數(shù)式編程(一個顯著特征就是:函數(shù)可以作為參數(shù)傳遞)的支持。java是到了java 8才支持lambda,在之前如果有傳遞函數(shù)的場景,都是通過匿名類來實現(xiàn)。

  • c#里面有extension method(擴展方法)概念;java里面沒有。擴展方法,正如其名,可以實現(xiàn)對標準方法的擴展。參考我的另外一篇文章(從Java轉(zhuǎn)向.NET/C#,Are You OK?)。

  • c#里面可以直接用@打頭實現(xiàn)一個string的轉(zhuǎn)義。

  • c#里面可以用int?表示一個可為null的int變量(here int is primitive type);java里面只能用Integer。

  • 相關(guān)閱讀

    • 從Java轉(zhuǎn)向.NET/C#,Are You OK?

    • 對比Java和.NET多線程編程

    • 那些年用過的開源項目(.net/c# stack)

    References

    • https://blogs.msdn.microsoft.com/mschray/2013/05/06/practical-naming-standards-for-c/

    • https://www.oracle.com/technetwork/articles/javaee/codeconventions-135099.html

    總結(jié)

    以上是生活随笔為你收集整理的从编码层面对比java和c#的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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