2016-04-13 9 views
-3

Ich versuche, ein int [] in die Methode zu übergeben, verkette es mit einem anderen Array und gebe es an main zurück, um in der Konsole zu drucken. Hier ist der Code:int [] existiert nicht im aktuellen Kontext

//where preTemp is another array derived in previous method 
public static int[] sesLayer(int[] preTemp) 
{ 
    //set two arrays for rtr and r1r0 
    int[] r1r0 = new int[2] { 0, 0 }; 
    int[] RTR = new int[1] { 0 }; 

    //add r1r0 to the preTemp int array 
    //set length of the new array to accomodate temp + r1r0 
    var length = new int[preTemp.Length + r1r0.Length]; 
    r1r0.CopyTo(length, 0); 
    preTemp.CopyTo(length, length.Length); 

    //add RTR to the packet 

    return preTemp; 
} 
public static int[] preLayer(int tempData) 
{ 
      string binaryTemp = Convert.ToString(tempData, 2); 
      int DLC = binaryTemp.Length; 
      binaryTemp = binaryTemp.PadLeft(64, '0'); 

      string binaryDLC = Convert.ToString(DLC, 2); 
      binaryDLC = binaryDLC.PadLeft(4, '0'); 

      string prePacket = binaryDLC + binaryTemp; 

      //convert string to int[] 
      int[] preTemp = prePacket.Select(c =>  int.Parse(c.ToString())).ToArray(); 
      return preTemp; 
} 
static void Main(string[] args) 
{ 
    int[] sesTemp = sesLayer(preTemp); //**error crops up here** 
    Console.Write(sesTemp); 
    Console.ReadLine(); 
} 

und die int TempData = 58; Jede Hilfe wird geschätzt.

+3

wo deklarieren und initialisieren Sie 'preTemp'? –

+2

Das ist das Problem, das OP ist nicht. –

+0

Können Sie etwas mehr erklären? –

Antwort

4

Der Fehler ist ziemlich klar. Sie rufen eine Variable auf, die nicht existiert.

int[] sesTemp = sesLayer(preTemp); 

Sie haben keine variable preTemp im Rahmen Ihrer Main() Methode genannt. Sie verwenden es nur als Argumente für Ihre Methoden. Sie müssen eine neue Variable erstellen.

int[] preTemp = new int[] { /* your values */ }; 
int[] sesTemp = sesLayer(preTemp); 
+0

Soweit ich betroffen bin, gibt die 'preLayer' ein int [] Array zurück, das 64 in der Länge ist. Daher existiert die Variable meiner Meinung nach. – tomek

+0

Alle Variablen, die Sie in einer Methode initialisieren, sind in dieser Methode enthalten. Erstellen Sie einen in der 'Main()' Methode und versuchen Sie ihn in 'preLayer' zu verwenden. Auf diese Weise können Sie Ihren Fehler reproduzieren. –

+0

Verstanden! Danke Drew :) – tomek