2016-06-13 4 views
-5

Ich versuche, auf eine globale Variable zuzugreifen, die in der Klasse definiert ist. Ich kann auf die Variable in meiner Überschreibungsfunktion nicht zugreifen. Was soll ich tun ??? unten ist der Code:Wie öffne ich öffentliche Variable in meiner Klasse

public partial class VR: System.Web.UI.Page 
    { 
     public SqlConnection SQLCONN; 
     public string headervalue = ""; 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     }    

    // code............... 



    public class ITextEvents : PdfPageEventHelper 
    { 

     // code.... 



     public override void OnEndPage(iTextSharp.text.pdf.PdfWriter writer, iTextSharp.text.Document document) 
     { 

      string value = ""; 
      // code..................................... 
      headervalue  //error unable to access it here 

     } 

      protected void btnExport_Click(object sender, EventArgs e) 
    { 
     headervalue = "abcc"; 
     CreatePDF(); 
    } 

I header innen öffentliche override void zuzugreifen versuchen OnEndPage method.I die Lage ist, in header btnExport Klick-Methode für den Zugriff auf

+4

Können Sie bitte nur den entsprechenden Code einfügen? –

+2

'headervalue' wird deklariert ** wo **? Sie können es nicht außerhalb einer Klasse deklarieren, da der eingefügte Code –

+0

anzeigt. Es scheint, dass Sie versuchen, * "Eine globale Variable" * zu definieren, indem Sie sie außerhalb der Klasse platzieren. Sie können dies nicht in C# tun, es ist eine ungültige Syntax. Die Lösung hierfür hängt davon ab, was immer Sie für eine "globale Variable" halten. – Liam

Antwort

1

Eine Variable kann nur innerhalb einer Klasse deklariert werden.

Also, um es zu benutzen, müssen Sie es tun:

public class ITextEvents : PdfPageEventHelper 
{ 
    public static string headervalue = ""; 

    public override void OnEndPage(PdfWriter writer, Document document) 
    { 
     [..your implementation..] 
    } 
} 

Wenn Sie es zwischen mehr als einer Klasse gemeinsam nutzen möchten, müssen Sie Container wie SimpleIOC verwenden.

Ich weiß nicht, ob es Ihnen helfen wird.

+0

Ich versuche, auf headervalue in zwei Methoden zuzugreifen, ist OnEndPage und auf btnExport klicken. Ich werde einen Wert in btnExport zuweisen, klicken Sie auf einen wird Zugriff auf diesen Wert in öffentliche override-Methode(). Ich kann headervalue in btnExport klicken Methode – ROY

+0

Also setzen Sie 'headervalue' wie ich in meiner Antwort. Einfache Lösung, nicht die beste. –

+0

Aber wie werde ich Header-Wert von btnExport-Methode spezifischen Wert zuweisen – ROY