.net - Oprettelse af et klasseobjekt i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at skabe et objekt af en klasse, men det ser ud til at virke, jeg kan ikke hjælpe, men tror jeg ser på dette fra et JAVA-perspektiv:


 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            PortChecks PortCheckObject = new PortChecks();

        }

private void testCheck\_Click(object sender, EventArgs e)
        {
            PortCheckObject.MyMethod();
        }


Jeg kan fejl, når du bruger PortCheckObject til at kalde min metode MyMethod


(Portkontrol er klassenavnet)

Bedste reference


Det er fordi det er uden for rammerne af testCheck\_Click


public partial class Form1 : Form
{
    PortChecks PortCheckObject = new PortChecks();

    public Form1()
    {
        InitializeComponent();
    }

    private void testCheck\_Click(object sender, EventArgs e)
    {
        PortCheckObject.MyMethod();
    }
}

Andre referencer 1


PortChecks PortCheckObject i Form1 constructor er en lokal variabel.

Angiv sin erklæring som et privat felt i Form1 klasse.


public partial class Form1 : Form
{
    private PortChecks PortCheckObject = new PortChecks();

    public Form1()
    {
        InitializeComponent();
    }

    private void testCheck\_Click(object sender, EventArgs e)
    {
        PortCheckObject.MyMethod();
    }
}

Andre referencer 2


@James,


Du har brug for en klasseejendom med navnet 'PortCheckObject' og kan være tilgængeligt i andre dele af klassen.


public partial class Form1 : Form
{
    private PortChecks PortCheckObject;

    public Form1()
    {
        InitializeComponent();

        PortCheckObject = new PortChecks();
    }

    private void testCheck\_Click(object sender, EventArgs e)
    {
        PortCheckObject.MyMethod();
    }
}

Andre referencer 3


Dette er et generelt anvendelsesområde, ikke en Java vs.s. C # problem (som din kode ville heller ikke fungere i Java). PortCheckObject er i Form1 () s anvendelsesområde, ikke testCheck\_Click s s. Prøv følgende:


public partial class Form1 : Form
{
    private PortChecks PortCheckObject;

    public Form1()
    {
        InitializeComponent();

        PortCheckObject = new PortChecks();

    }

private void testCheck\_Click(object sender, EventArgs e)
    {
        PortCheckObject.MyMethod();
    }

Andre referencer 4


Dette er en forekomst af et anvendelsesområde problem. Du har ikke plads i din testCheck\_Click-metode. Gør følgende ændring, og det skal fungere:


public partial class Form1 : Form
{
    private PortChecks MyPortCheck {get; set;}

    public Form1()
    {
        InitializeComponent();
        MyPortCheck = new PortChecks();
    }

    private void testCheck\_Click(object sender, EventArgs e)
    {
        MyPortCheck .MyMethod();
    }

...
}