我在 C# 中的
int
中声明了一些 public partial class Form1 : Form
变量。但是,如果不是在函数内部完成(例如在 private void button1_click
内部),我就无法使用或更改它们,就好像变量从未存在一样。当尝试更改 r
的值时,它会出现“IDE1007:名称 'r' 在当前上下文中不存在”错误。也就是说,我无法使用 Pen dot = new Pen(Color.FromArgb(r, g, b));
创建笔,尝试执行以下操作因此给出了另一个错误,“CS0236:字段初始值设定项无法引用“Form1.r”中的非静态字段、方法或属性”(我正在尝试创建一种 MS Paint 克隆)。
这是我的代码片段:
int r = 0;
int g = 0;
int b = 0;
int size = 2;
Pen dot = new Pen(Color.FromArgb(r, g, b));
Pen rect = new Pen(Color.FromArgb(r, g, b));
Pen pencil = new Pen(Color.FromArgb(r, g, b));
string curpen = "";
以下是一些有错误的屏幕截图:
名称“r”在当前上下文中不存在:
字段初始值设定项无法引用 <..>
尝试更新VS。没有帮助。有什么想法吗?
看来这里有两个问题。首先,您只能在类中声明和初始化变量(在您的情况下, r 是声明的私有变量)。您不能在方法之外再次将其绑定到变量。您正尝试在方法外部将 0 分配给 r 。您只能在方法或属性内部执行此操作。第二个问题是您通过发送非静态值 (r,g,b) 来调用静态方法(Color.FromArgb),这是不允许的,您只能将非静态字段用于非静态方法。 (静态字段可以发送到非静态方法)。请参考一些有关 C# 的教程。希望这有帮助