※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.103.43
> -------------------------------------------------------------------------- <
作者: Action (雪...) 看板: C_Sharp
標題: Re: [問題] 這個新語言跟Java的差異在哪阿???
時間: Fri Nov 8 23:50:27 2002
※ 引述《capacity (~*阿潛的潛伏期*~)》之銘言:
: 如題,麻煩跟我說一下,因為我對這個語言沒啥概念,謝喔^^
差別是不少啦, array, class/struct, delegate, foreach, property,
indexer, operator overload, attribute...
舉個 array 當例子,
C# 有 multi-dimensional array,
可以直接這樣:
int[,] b = new int[5, 2];
而 java 要用兩層 single-dimensional array 來達成:
int[][] b = new int[5][];
for (int i = 0; i < 5; i++)
b[i] = new int[2];
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.23.228.106
> -------------------------------------------------------------------------- <
作者: popcorny (..) 看板: C_Sharp
標題: Re: [問題] 這個新語言跟Java的差異在哪阿???
時間: Tue Nov 19 19:39:17 2002
※ 引述《Action (雪...)》之銘言:
: ※ 引述《capacity (~*阿潛的潛伏期*~)》之銘言:
: : 如題,麻煩跟我說一下,因為我對這個語言沒啥概念,謝喔^^
: 差別是不少啦, array, class/struct, delegate, foreach, property,
: indexer, operator overload, attribute...
: 舉個 array 當例子,
: C# 有 multi-dimensional array,
: 可以直接這樣:
: int[,] b = new int[5, 2];
: 而 java 要用兩層 single-dimensional array 來達成:
: int[][] b = new int[5][];
: for (int i = 0; i < 5; i++)
: b[i] = new int[2];
不對唷 java也可以
int[][] b = new int[5][2];
差別在於c#有struct
C#
Point[] b = new Point[5];
java
Point[] b = new Point[5];
for(int i=0; i<b.length; i++)
b[i] = new Point();
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 140.113.88.227
> -------------------------------------------------------------------------- <
作者: Action (雪...) 看板: C_Sharp
標題: Re: [問題] 這個新語言跟Java的差異在哪阿???
時間: Tue Nov 19 20:26:25 2002
※ 引述《popcorny (..)》之銘言:
: 不對唷 java也可以
: int[][] b = new int[5][2];
我指的是 [][] 和 [,] 在根本結構上的差異,
即使是用 multianewarray 所產生出來的 b,
b 仍然是一個指向 int[][] 的指標,
而裡面的元素是指向 int[] 的指標,
其中的內容才是 int 的值. 如下:
b:int[][] -> b[0]:int[] -> { b[0][0]:int, b[0][1]:int }
b[1]:int[] -> { b[1][0]:int, b[1][1]:int }
b[2]:int[] -> { b[2][0]:int, b[2][1]:int }
b[3]:int[] -> { b[3][0]:int, b[3][1]:int }
b[4]:int[] -> { b[4][0]:int, b[4][1]:int }
用上面你所說的那種方法產生的 b,
一樣可以刪除其中一個元素:
b[2] = null;
或任意改便某一元素之長度:
b[2] = new int[3];
而在 C# 中的 int[,] b = new int[5, 2];
並沒有中間那層的指標...
b:int[,] -> { b[0, 0]:int, b[0, 1]:int,
b[1, 0]:int, b[1, 1]:int,
b[2, 0]:int, b[2, 1]:int,
b[3, 0]:int, b[3, 1]:int,
b[4, 0]:int, b[4, 1]:int }
: 差別在於c#有struct
: C#
: Point[] b = new Point[5];
: java
: Point[] b = new Point[5];
: for(int i=0; i<b.length; i++)
: b[i] = new Point();
reference type 和 value type 則是另外一個和 java 的差異,
跟 array 這個例子並沒有任何的關係.
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 218.184.81.80
如題,麻煩跟我說一下,因為我對這個語言沒啥概念,謝喔^^
--