1、出错代码及现场
-
class Program
-
{
-
int i = 123;
-
static string s = "Some string";
-
static object o = s;
-
static void Main(string[] args)
-
{
- Test_Exception_Function();
-
Console.WriteLine("in Main,After Excute Test_Exception_Function........!");
-
Console.ReadLine();
-
}
-
static void Test_Exception_Function()
-
{
- s = “in Test_Exception_Function Function”;
- i = 1000;
- }
- }
在一个函数中,调用不是static的字段时,就会爆出“非静态的字段、方法或属性“Finally_test.Program.i”要求对象引用”这样的错误。
什么原因?
2、出现上面错误原因分析
类中静态的方法、成员函数只能访问静态的数据成员或者静态的方法。
static void Main(string[] args) //这使用了关键字static代表是静态方法,如果Main方法里面要调用外面的方法或者函数必须是静态的方法或者是函数。
C#中就连static void Main(string[] args)要访问这个方法外面的变量都得是静态的。
故
int i = 123;必须改为
static int i = 123;