如何从 C# 中的另一个私有类调用私有类变量
Posted
技术标签:
【中文标题】如何从 C# 中的另一个私有类调用私有类变量【英文标题】:how to call a private class variable form an other private class in C# 【发布时间】:2020-10-13 02:56:50 【问题描述】:有我的代码如何从私有类下面调用变量 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";
【问题讨论】:
嘿,我认为您将函数与类混合在一起。它们是函数而不是类。对吗? 【参考方案1】:panel1_MouseDown 不是一个类,它是一个私有方法,你不调用变量,你调用方法。如果你需要在 panel1_MouseUp 方法中使用 startX 的值,你可以给你的 panel1_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";
【讨论】:
太好了,它正在工作。谢谢你帮助我。我完成了。我很高兴【参考方案2】:简单的答案,你不能。
一些关于本地函数的文档:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions。
您将在类中创建一个变量,而不是在函数中。
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# 上的类我的东西函数和类在 C# 上是相同的,谢谢你的信息,我会尝试以上是关于如何从 C# 中的另一个私有类调用私有类变量的主要内容,如果未能解决你的问题,请参考以下文章