无法在 C# (WinForms .NET) 中更改或使用全局变量

问题描述 投票:0回答:1

我在 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”在当前上下文中不存在:

name 'r' doesn't exist in current context

字段初始值设定项无法引用 <..>

A field initializer cannot reference <..>

尝试更新VS。没有帮助。有什么想法吗?

c# .net winforms
1个回答
0
投票

看来这里有两个问题。首先,您只能在类中声明和初始化变量(在您的情况下, r 是声明的私有变量)。您不能在方法之外再次将其绑定到变量。您正尝试在方法外部将 0 分配给 r 。您只能在方法或属性内部执行此操作。第二个问题是您通过发送非静态值 (r,g,b) 来调用静态方法(Color.FromArgb),这是不允许的,您只能将非静态字段用于非静态方法。 (静态字段可以发送到非静态方法)。请参考一些有关 C# 的教程。希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.