精華區beta C_Sharp 關於我們 聯絡資訊
如題,麻煩跟我說一下,因為我對這個語言沒啥概念,謝喔^^ -- ※ 發信站: 批踢踢實業坊(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