2013-02-13 19 views
0

我想將使用C#編寫的應用程序移植到Ruby,並且我無法理解幾個函數。C#的IncrementArray和Array.Copy函數

這是代碼。

for (int pos = 0; pos < EncryptedData.Length; pos += AesKey.Length) 
{ 
    Array.Copy(incPKGFileKey, 0, PKGFileKeyConsec, pos, PKGFileKey.Length); 

    IncrementArray(ref incPKGFileKey, PKGFileKey.Length - 1); 
} 

private Boolean IncrementArray(ref byte[] sourceArray, int position) 
{ 
    if (sourceArray[position] == 0xFF) 
    { 
     if (position != 0) 
     { 
      if (IncrementArray(ref sourceArray, position - 1)) 
      { 
       sourceArray[position] = 0x00; 
       return true; 
      } 
      else return false; 
     } 
     else return false; 
    } 
    else 
    { 
     sourceArray[position] += 0x01; 
     return true; 
    } 
} 

我知道陣列和密鑰的長度是16 我將不勝感激,如果有人可以解釋Array.Copy和IncrementArray功能是如何工作的。

+0

我已經從源代碼中添加了IncrementArray函數,我希望有一些幫助解釋它。 – user2053979 2013-02-14 00:24:30

回答

0

Array.Copy拷貝數據從一個陣列到另一:

  • incPKGFileKey是源陣列
  • 0在源陣列中的偏移,以從
  • PKGFileKeyConsec開始複製是destionation陣列
  • pos是目標數組中的偏移量開始複製到
  • PKGFileKey.Length是要複製的數組項的數量

IncrementArray,據我所知,不是.NET框架的一部分,應該在你的項目的某個地方定義。

+0

感謝您提供快速詳細的回覆。我擔心IncrementArray不是框架的一部分。 – user2053979 2013-02-13 22:37:31

0

Array.Copy描述,像任何其他.NET類型或方法,在MSDN庫:http://msdn.microsoft.com/en-us/library/y5s0whfd.aspx

IncrementArray顯然是在你的代碼(在同一類或基類這一塊的),所以你將有閱讀該代碼。

+0

謝謝你的答案。你是對的,我已經在源代碼中找到了IncrementArray函數。感謝你們。 :) – user2053979 2013-02-13 22:53:45

+0

如果您在Visual Studio中,請將該插入符號放在函數調用中,然後按F12導航到其定義。你不需要搜索。 MonoDevelop提供類似的功能。 – 2013-02-13 23:19:12