2012-06-06 23 views
0

我是C#的新手,我試圖將這段代碼從java轉換爲C#。C#中數組的Java的.length長度是多少?

static public double euclidean_2(double[] x, double[] y) 
    { 
     if (x.length != y.length) throw new RuntimeException("Arguments must have same number of dimensions."); 

     double cumssq = 0.0; 
     for (int i = 0; i < x.length; i++) 
      cumssq += (x[i] - y[i]) * (x[i] - y[i]); 

     return cumssq; 
    } 

我知道Java使用。長度,但因爲我一直收到錯誤

感謝

+0

什麼了你試試?你得到了什麼錯誤? –

+0

C#版本幾乎完全相同,只不過它是* .Length *(大寫L) – Icarus

+0

在C#中沒有等效的「RuntimeException(string)」構造函數 – Subs

回答

3

在C#public成員應該大寫的是在C#中的等價物:

for (int i = 0; i < x.Length; i++) 
    cumssq += (x[i] - y[i]) * (x[i] - y[i]); 
+1

您還應該補充說明其餘代碼是相同的。 – 3aw5TZetdf

+3

除了'RuntimeException'外,應該改爲'ArgumentException'。 –

0

對於陣列,您需要Length屬性。

此外,應該更改異常類型。

我認爲這涵蓋了它。

0

length應該是Length,因爲成員都是公開的,予以資本化,以便您在C#代碼應該是這樣的:

public static double euclidean_2(double[] x, double[] y){ 
    if (x.Length != y.Length){ 
     throw new Exception("Arguments must have same number of dimensions."); 
    } 
    double cumssq = 0.0; 
    for (int i = 0; i < x.Length; i++){ 
     cumssq += (x[i] - y[i]) * (x[i] - y[i]); 
    } 
    return cumssq; 
} 

也採取關鍵字Exception的音符,而不是Runtime Exception

+0

他們不需要*。 –

+0

好點,我會修復/ reword那。 – Annabelle