在公共静态中将字符串转换为int
本文关键字:字符串 转换 int 静态 | 更新日期: 2023-09-27 18:03:14
private class global
{
public static string str = label4.Text;
int a = Convert.ToInt32(str);
}
private void button8_Click(object sender, EventArgs e)
{
string myString = label4.Text;
int Val = Int32.Parse(myString);
dataGridView1.Rows.Add(label2.Text, Val * global.a );
}
你好,伙计们,我有一些问题在这里,然后我将字符串转换为int在私人void它工作得很好,但后来我试图转换它在公共全局它显示错误,任何想法如何修复它?
DB2.Form2.global。A '由于其保护级别
而无法访问非静态字段、方法或属性需要对象引用'DB2.Form2.global.a
非静态字段、方法或属性需要对象引用'DB2.Form2.label4
a
在global
类之外不可见,您应该将其设置为public:
public int a = Convert.ToInt32(str);
由于global
类没有标记为static
,您可以将其设置为静态或创建global
的实例。
private static class global
{
public static int a = ...
}
或者当它不是静态的(但a
必须是公共的):
var myGlobal = new global();
int x = myGlobal.a;
此外:
类必须大写
public class Global { ... }
同样适用于公共属性/字段:
public int A = 1; public string Str = "";
a
没有被定义为全局静态变量。
重新定义为public static int a;
如果不首先实例化对象,则不能从类中访问字段,除非该字段是静态的并且该字段是可访问的。
你的int是私有的int是你的全局类。
将其改为public和static。
a不是静态的和公共的。因此,要么将其设置为公共静态,要么将类实例化并使用实例访问a。
私有字段不能在类外访问
变量a
是私有的,因此不能在类外访问,而且它被声明为实例成员而不是静态成员。
您需要根据您发布的代码使用将其声明为public static int a
private class global
{
public static string str = label4.Text;
public static int a;
a = Convert.ToInt32(str);
}
第一个错误是is inaccessible due to its protection level
,因为您将a
声明为私有。
第二个错误An object reference is required for the non-static field, method, or property
,因为您试图访问一个实例成员作为静态成员。