错误 1 非静态字段、方法或属性“Program.Program.myint”要求对象引用

问题描述

usingSystem;namespaceProgram{classProgram{intmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",myint);}}}这段代码错在哪里了,提示如标题的错误。

解决方案

解决方案二:
staticintmyint=500;
解决方案三:
usingSystem;namespaceProgram{classProgram{staticintmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",myint);}}}

解决方案四:
static方法要求被调用的数据是staic的,或者你也可以改成这样classProgram{intmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",newProgram().myint);}}

解决方案五:
引用3楼starfd的回复:

static方法要求被调用的数据是staic的,或者你也可以改成这样classProgram{intmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",newProgram().myint);}}

你确定?。。。没有修饰符默认是受保护类型。。。
解决方案六:
谢谢,我买的教材上说如果没有初始化语句,字段的值会被编译器设为默认值,默认值由字段类型决定,但是我用visualstudio编译时却提示错误,无法编译,为什么?
解决方案七:
刚刚发现,如果在方法里声明字段是不会有错的,在类里声明会出错。
解决方案八:
静态方法不可以调非静态全局变量。从内存的角度看,就是当类被加载的时候静态方法和静态属性(全局静态变量)被加载到内存中,就是在内存中开辟一段内存地址用来保存静态方法和静态属性,这时候没有被实例化的类在内存中是不存在的,所以静态方法是不能访问非静态的全局变量。静态方法staticvoidMain()初始化较早,此时intmyint=500;还没有存在,此时使用当然会错。如果staticintmyint;
解决方案九:
如果staticintmyint;此时myint会更早的被加载,在staticvoidMain()中使用当然没有错。如果intmyint在staticvoidMain()里面,在当staticvoidMain()加载的时候会初始化myint,此时使用也没有错。
解决方案十:
引用4楼crystal_lz的回复:

Quote: 引用3楼starfd的回复:
static方法要求被调用的数据是staic的,或者你也可以改成这样classProgram{intmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",newProgram().myint);}}

你确定?。。。没有修饰符默认是受保护类型。。。

这是个很有意思的现象,没声明为public,却可以在自身内部通过new自己的一个实例,来访问那些没有public出来的东西

时间: 2024-09-21 18:37:37

错误 1 非静态字段、方法或属性“Program.Program.myint”要求对象引用的相关文章

字段初始值设定项无法引用非静态字段 方法或属性

问题描述 请问,定义这个sum变量时候,为什么不能访问english与math变量但是在下面的方法中却可以访问english与math变量,请问这个是为什么.谢谢 解决方案 解决方案二:http://www.cnblogs.com/bluestorm/p/3432190.html解决方案三:上面是类成员定义,下面是变量定义,含义完全不同解决方案四:定义在类下面的全局变量,实际上是在类的构造函数里面初始化的因为math和english还没有初始化值,所以就无法在别的地方使用(C#规定的)你写的相当

C# 静态属性能否读写非静态字段?非静态属性能否读写静态字段?

问题描述 ①静态属性只能读写静态字段吗?能否读写非静态字段?②非静态属性能否读写静态字段?③静态字段可以通过静态属性赋值吗? 解决方案 本帖最后由 syncsdn9 于 2016-03-23 13:44:12 编辑解决方案二:①静态属性能读写非静态字段,前提是能获取到对象②非静态属性当然能读写静态字段③静态字段当然可以通过静态属性赋值解决方案三:都可以的,静态属性调用非静态时需要对像的引用.

java语法-java中如何在其他方法的方法体里面初始化一个非静态public方法

问题描述 java中如何在其他方法的方法体里面初始化一个非静态public方法 java中如何在其他方法的方法体里面初始化一个非静态public方法 如何判断一个方法是不是静态方法, 解决方案 方法里面弄方法,,那是匿名类用的,,除此之外一般没这么用

C#静态和非静态的方法

C#的类定义中可以包含两种方法:静态和非静态的.使用了static修饰符的方法为静态方法,反之则是非静态的. 静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例.非静态方法可以访问类中的任何成员,而静态只能访问类中的静态成员.看这个例子: class A { int x; static int y; static int F(){ x=1; //错误,不允许访问 y=2; //正确,允许访问 } 在这个类定义中,静态方法F()可以访问类中静态成员y,但不能访问非静态成员x.这是因为,x作

非静态的字段、方法或属性“System.Configuration.Install.Installer.Installers????

问题描述 usingSystem;usingSystem.Diagnostics;usingSystem.ComponentModel;usingSystem.Configuration.Install;usingSystem.Configuration;namespaceEventLogSourceInstaller{[RunInstaller(true)]publicclassMyEventLogInstaller:Installer{publicstaticEventLogInstalle

非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.DocumentFilename.get”要求对象引用

问题描述 请出现这种错误是为什么呢该如何改正呢usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingESRI.ArcGIS.ADF;usingESRI.ArcGIS.SystemUI;usingESRI.ArcGIS.Geometry;usi

非静态的字段、方法或属性“System.Drawing.Printing.PrintDocument.Print()”要求对象引用

问题描述 我在看<c#入门经典2005>这本书,看到16章16.4打印部分,按照书上的方法,作了一个例子,但运行时出现错误信息"错误1非静态的字段.方法或属性"System.Drawing.Printing.PrintDocument.Print()"要求对象引用D:VisualStudio2005c#入门经典例子源码578472_Chapter16578472_Chapter16SimpleEditorSimpleEditorSimpleEditorForm.c

关于c#中字段赋值和属性的问题

问题描述 关于c#中字段赋值和属性的问题 在一个类的最前端设置一个线程:public Thread newThread=什么什么,此处为何不能为他赋值一个函数?错误提示说静态字段不能使用非静态函数,这里我并没有设置他的属性为static,为什么?默认属性为static? 解决方案 只能用new 或者常量.如果调函数,需要放在构造函数中. 解决方案二: C#中字段和属性的区别 解决方案三: 能不能贴出你的代码看下.不知道说的具体是什么 解决方案四: 默认是静态的吧,那你把方法也列为static

hashmap-java初学中,遭遇无法从静态上下文中引用非静态 变量 this

问题描述 java初学中,遭遇无法从静态上下文中引用非静态 变量 this import java.util.*; public class ComicBooks { public ComicBooks(){ } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here HashMap quality =