首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解课程?

理解课程?
EN

Stack Overflow用户
提问于 2013-08-05 14:41:38
回答 3查看 108关注 0票数 0

为什么这部分代码不运行并显示消息“不能用实例引用访问它,而是用类型名称限定它”?请解释一下我。

代码语言:javascript
复制
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {         
       public Form1()
        {
        }

       public class Report //my public class
        {
            public static double[] KwotaZ = new double[10];
            public static double[] KwotaNa = new double[10];
            public static string[] WalutaNa = new string[10];
            public static string[] WalutaZ = new string[10];
            public static int IlOperacji = 0;
        }


        private void button1_Click(object sender, EventArgs e)
        {
            Report raport2 = new Report(); //create new object class Report
            raport2.KwotaZ[raport2.IlOperacji] = 213.3; //this wrong part code why???
            Konwerter();
        }
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-05 14:44:33

在实例中使用静态变量。只有一个静态变量。

所以你要么像这样静态地使用它

代码语言:javascript
复制
Report.KwotaZ[Report.IlOperacji] = 213.3;

或者将它们定义为像这样的实例变量(没有static关键字)

代码语言:javascript
复制
public double[] KwotaZ = new double[10];
public int IlOperacji = 0;
票数 5
EN

Stack Overflow用户

发布于 2013-08-05 14:44:48

KwotaZIlOperacjistatic字段,因此访问它们的语法不是instance.fieldName --它是TypeName.fieldName,如

代码语言:javascript
复制
Report.KwotaZ[Report.IlOperacji] = 213.3;

这将允许程序编译,但可能不是您想要的。更有可能的是,您应该将static字段设置为实例属性:

代码语言:javascript
复制
public class Report //my public class
{
    // Only showing two properties here; do the rest in the same manner
    public double[] KwotaZ { get; set; }
    public double[] KwotaNa = { get; set; }

    public Report()
    {
        this.KwotaZ = new double[10];
        this.KwotaNa = new double[10];
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-08-05 14:45:55

问题在于"Report“类中的”静态“关键字。“静态”意味着只有一个变量的副本。例如,即使您创建了5个"Report“类实例,它们对于"KwotaZ”也都具有相同的值。

您可能想要的是删除“静态”关键字。这样,"Report“的每个实例都会有自己的变量版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18060985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档