2016-05-17 11 views
-8

Ich baue ein Programm für meinen Kurs, in dem ich globale Objekte brauche, da ich beabsichtige, das Objekt aus vielen Formen zugänglich zu machen und auch zu bearbeiten. Bevor ich sage nur globale Variablen verwenden, kann ich den Spezifikationsstatus für die Verwendung von OOP nicht angeben.C# Globales Objekt

meinen letzten Versuch, dies zu beheben ist eine öffentliche Klasse verwenden, aber das gab einen Schutzfehler Problem

Code:

Form1.cs (vergessen zu benennen und nicht wieder tun, die gesamten Code und Design)

public class ObjectsGlobal 
{ 
    Bays bay1 = new Bays(); 
    Bays bay10 = new Bays(); 
} 

frmInput.cs

private void btnAdd_Click(object sender, EventArgs e) 
    { 
     if (1 == Convert.ToInt32(nudBayNum)) 
     { 
      ObjectsGlobal.bay1.CarMake = txtMake.Text; 
     } 
    } 

alle Ideen willkommen sind dieser Punkt

+5

Darf ich Ihnen vorschlagen zu lesen [fragen]. – dandan78

+6

Wenn Sie neugierig auf die downvotes von Mitgliedern A) sind, klingt dies wie Hausaufgabenhilfe, B) "Hilfe so schnell wie möglich" beginnt Sie nicht auf der richtigen Grundlage. –

+1

'bay1' und' bay10' Zugriffsmodifikatoren erlauben nicht setzen/erhalten von außerhalb der Klasse – Kritner

Antwort

1

Ändern Sie es an:

public static class ObjectsGlobal 
{ 
    public static Bays bay1 = new Bays(); 
    public static bay10 = new Bays(); 
} 

Auch, wie empfohlen ich in einem Kommentar haben jetzt lesen, werfen Sie einen Blick auf die Singleton Pattern.