2016-04-04 15 views
0

Ich muss den String "final" in der Funktion emp2 aufrufen. wenn ich es versuche, heißt es "final does not exist". Beide Funktionen befinden sich in verschiedenen Klassendateien.Aufruf einer Variablen von einer Funktion zu einer anderen Funktion in C#

internal class emp 
{ 
    internal void empl(int id, string name, string sal) 
    { 
     empdet test = new empdet(id, name, sal); 
     string final = test.ToString(); 
    } 
} 

public class empdetls 
{ 
    public static void emp2(XElement element) 
    { 
     XElement element = XElement.Parse(final); 

     // ... 
    } 
} 

jede Hilfe wäre willkommen.

+0

Notwendigkeit, xml zu sehen. und Empdet-Methode. – jdweng

+0

Sie stoßen auf ein [scope] (https://msdn.microsoft.com/en-us/library/ms973875.aspx) Problem. – Icemanind

+0

Es ist unmöglich, Ihnen zu sagen, wie Sie das überwinden können, ohne zwei Dinge zu wissen. Zuerst wer (d. H. Welche Klasse) ruft die 'emp2' Methode auf? Zweitens, kannst du die Methodensignatur von 'emp2' ändern? –

Antwort

0

Sie sollten private Feld verwenden.

public class emp 
{ 
     private String final; 
     internal void empl(int id, string name, string sal) 
     { 

      empdet test = new empdet(id, name, sal); 
      final = test.ToString(); 
     } 

     public static void emp2(XElement element) 
     { 

      XElement element = XElement.Parse(final); 
      ..... 
      ..... 
     } 
} 
+0

Dies ist aus zwei Gründen falsch. Zunächst erscheint es aus dem ursprünglichen Code, dass die empl- und emp2-Methoden in verschiedenen Klassen sind. Zweitens wird Ihr Code nicht kompiliert, selbst wenn sie innerhalb der gleichen Klasse waren, weil Sie versuchen, auf die nicht statische Variable 'final' von der statischen Methode' emp2' zuzugreifen. –

+0

Wie soll ich das überwinden? – stackdoubt

0

Übergeben Sie einfach einen Parameter an Ihre static Methode. static Methoden sollten sowieso frei von bestimmten Instanzen sein.

public static void emp2(XElement element, string final) 
{ 
    // ... 
} 
Verwandte Themen