C# 如何从C中的其他私有类调用私有类变量#

C# 如何从C中的其他私有类调用私有类变量#,c#,class,variables,call,private,C#,Class,Variables,Call,Private,下面是我如何从私有类下面调用变量startX的代码 如果C#上有任何可能的方法,可以从其他私有类调用私有类变量 这可能是一个简单的问题,但我是一个初学者 你能帮我吗 private void panel1_MouseDown(object sender, MouseEventArgs e) { moving = true; x = e.X; y = e.Y; panel1.Cursor = Cursors.Cros

下面是我如何从私有类下面调用变量startX的代码

如果C#上有任何可能的方法,可以从其他私有类调用私有类变量

这可能是一个简单的问题,但我是一个初学者

你能帮我吗

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        moving = true;
        x = e.X;
        y = e.Y;

        panel1.Cursor = Cursors.Cross;
        label1.Text = "" + e.X + "";
        label2.Text = "" + e.Y + "";
        int startX = e.X;
        int startY = e.Y;

    }

    private void panel1_MouseUp(object sender, MouseEventArgs e)
    {
        moving = false;
        x = -1;
        y = -1;
        panel1.Cursor = Cursors.Default;
        int downy = e.X;
        label3.Text = "" + downy + "";
        string one = "1";

        //how to call int startX on this class




        if (label1.Text == label3.Text || label2.Text == label4.Text)
        {
            button1.Text = "The number is : " + one + "";
        }
        else
        { button1.Text = "The number can't calculat"; }
    }

panel1_MouseDown不是一个类,它是一个私有方法,您不调用变量,而是调用方法。如果需要在panel1\u MouseUp方法中使用startX的值,可以给panel1\u MouseDown方法一个返回值,或者创建一个全局变量来存储该值。因为您的方法是由鼠标事件调用的,所以我建议使用全局变量

private int lastStartX = 0;

private void panel1_MouseDown(object sender, MouseEventArgs e)
{
    moving = true;
    x = e.X;
    y = e.Y;

    panel1.Cursor = Cursors.Cross;
    label1.Text = "" + e.X + "";
    label2.Text = "" + e.Y + "";
    int startX = lastStartX = e.X;
    int startY = e.Y;

}

private void panel1_MouseUp(object sender, MouseEventArgs e)
{
    moving = false;
    x = -1;
    y = -1;
    panel1.Cursor = Cursors.Default;
    int downy = e.X;
    label3.Text = "" + downy + "";
    string one = "1";

    //how to call int startX on this class
    //do whatever you want with lastStartX


    if (label1.Text == label3.Text || label2.Text == label4.Text)
    {
        button1.Text = "The number is : " + one + "";
    }
    else
    { button1.Text = "The number can't calculat"; }
}

答案很简单,你不能

有关本地函数的一些文档:

您将在类中而不是在函数中创建变量

public class Class
{
    private int startX;
    private int startY;

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        this.startX = e.X;
        this.startY = e.Y;
    }
    
    private void panel1_MouseUp(object sender, MouseEventArgs e)
    {
        // call this.startX or this.startY
    }
}

嘿,我觉得你把函数和类混在一起了。它们是函数而不是类。对吗?谢谢,我会为我尝试它的新功能,我不知道c#i上的类函数和c#i上的类是一样的,谢谢你提供的信息,我会尝试的,很高兴它能工作。谢谢你帮助我。我完成了。这对我来说很难