C# 與 Java 的不同點總結
關於:C# 與 Java 的不同點總結(C#的特點):
1.@
在字元竄前面加上@可使字元竄中的轉義符失效。可嘗試實行如下程式碼:
- string aaa = @"C:\\tmp\\aaa.txt";
- Console.WriteLine(aaa);
- aaa = "C:\\tmp\\aaa.txt";
- Console.WriteLine(aaa);
2.?可空型別和運算子
定義資料型別時可使用?以表示該資料庫性允許為null。例如:
- int? a = null;
- Console.WriteLine(a);
3.is運算子
判斷型別是否相容,相當於java的instanceof關鍵字。
4.sealed關鍵字
相當於java的final,表示類或方法不可繼承(密封)。
5.virtual關鍵字
表示該方法或該屬效能夠被重寫。在java中預設情況下所有方法和屬性都能被重寫。
6.部分類關鍵字partial
允許類,結構或介面放入多個檔案中。
- //TheBigClass1.cs
- partial class TheBigClass
- {
- public void MethodOne()
- {
- }
- }
- //TheBigClass2.cs
- partial class TheBigClass
- {
- public void MethodTwo()
- {
- }
- }
7.結構:struct
- struct Dimensions
- {
- public double Length;
- public double Width;
- }
8.只讀欄位readonly。
和定義常量欄位的coust的區別是,readonly欄位允許在類的建構函式中進行初始化(靜態建構函式中也可以初始化)。
9.靜態建構函式
- class MyClass
- {
- public static string value;
- //靜態建構函式
- static MyClass()
- {
- //首次載入類時執行,只執行一次
- value = "A";
- }
- //例項建構函式
- private MyClass()
- {
- //每次建立類的例項時執行
- value = "B";
- }
- static void Main(string[] args)
- {
- Console.WriteLine(value);//A
- MyClass clz = new MyClass();
- Console.WriteLine(value);//B
- }
- }
10.out關鍵字
允許函式從一個例程中輸出多個值。
請注意,使用out關鍵字時,變數是通過引用傳值的。所以在從被呼叫的方法返回時,方法對該變數的任何修改都會被保留下來。
- static void Main(string[] args)
- {
- int i;
- initInt(out i);
- Console.WriteLine(i);
- }
- static void initInt(out int i) {
- i = 100;
- }
11.ref引數實現
給方法傳遞引數時的引用傳值。(通過值傳遞變數是預設的)
- static void initInts(int[] ints, ref int i)
- {
- ints[0] = 200;
- i = 300;
- }
在呼叫方法時對應的欄位也要加上ref關鍵字
initInts(ints, ref i)
注意:使用引用傳值,該方法對變數的任何改變都會影響原來物件的值。
12.as運算子
判斷型別是否相容,不相容返回null.
- class MyClass
- {
- static void Main(string[] args)
- {
- object o1 = "Some String";
- object o2 = 5;
- string s1 = o1 as string;
- string s2 = o2 as string;
- Console.WriteLine(s1);//"Some String"
- Console.WriteLine(s2);//null
- }
- }
13.sizeof運算子
確定棧中值型別需要的長度(單位:位元組)
- class MyClass
- {
- static void Main(string[] args)
- {
- Console.WriteLine(sizeof(int));
- }
- }
14.typeof運算子
返回一個特定型別的System.Type物件。
15.空接合運算子??
- class MyClass
- {
- static void Main(string[] args)
- {
- int? a = null;
- int b;
- b = a ?? 10;
- Console.WriteLine(b);//10
- a = 3;
- b = a ?? 10;
- Console.WriteLine(b);//3
- }
- }
如果第一個運算元不是null,則整個表示式等於第一個運算元的值。如果第一個運算元等於null,則這個表示式等於第二個運算元。
如果第二個運算元不能隱含的轉換為第一個運算元的的型別,就生成一個編譯錯誤。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-464492/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 不同Java除錯方法總結 - VardhanJava除錯
- Core Java 的知識點總結Java
- 總結的Java知識點集合Java
- Java 知識點總結Java
- Java知識點總結Java
- java面試知識點總結Java面試
- Java 面試知識點總結Java面試
- java集合面試重點總結Java面試
- Java知識點總結(Java泛型)Java泛型
- Java知識點總結(Java容器-List)Java
- Java知識點總結(Java容器-Vector)Java
- Java知識點總結(Java容器-Set)Java
- 【java學習】java知識點總結Java
- in、exists操作與null的一點總結Null
- C++ 和java的不同點C++Java
- Java中IO流的知識點總結Java
- java運算子易錯點總結Java
- Java基礎知識點總結Java
- Java總結-抽象類與介面Java抽象
- Java常量池理解與總結Java
- MVP 與 MVVM 優缺點總結MVPMVVM
- APP測試點分析與總結APP
- JAVA基礎容易疏忽的知識點總結Java
- Java基礎面試知識點總結Java面試
- java之Hibernate面試要點總結Java面試
- Java類和物件知識點總結Java物件
- Java知識點總結——IO流框架Java框架
- Java集合 - 集合知識點總結概述Java
- 常見Java面試知識點總結Java面試
- C# 多執行緒和非同步的相同點和不同點C#執行緒非同步
- Java與C/C++不同的一些基礎知識點JavaC++
- Java知識點總結(反射-獲取類的資訊)Java反射
- 程式通訊方式總結與盤點
- C# 6.0 的新特性總結C#
- Python和Java之間有什麼不同之處?總結!PythonJava
- 《Java加密與解密的藝術》讀後總結Java加密解密
- Java知識點總結(註解-介紹)Java
- Java個人知識點總結(基礎篇)Java