VS2017错误- 对象引用对于非静态的字段、方法或属性“Program.Method(int)”是必需的 test1

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 CS0120 对象引用对于非静态的字段、方法或属性“Program.Method(int)”是必需的 test1 G:\SoftwareLearning\C#resource\chapter05\test1\test1\Program.cs 19 活动的
原程序

using System;
using System.Collections.Generic;
using System.Linq;
using System;
namespace Project4
{
    class Program
    {
        public void Method(int x)   //形参x是通过值传递的
        {
            x *= x; //	对x的更改不会影响x的原始值
            Console.WriteLine("Method方法内的值: {0}", x);
        }
        static void Main()
        {
           // Program n = new Program();
            int y = 9;
            Console.WriteLine("调用Method方法之前的值: {0}", y);
            Method(y);  // 实参y是通过值传递变量
            Console.WriteLine("调用Method方法后的值: {0}", y);
            Console.ReadKey();
        }
    }
}

解决方法1:

将Program类实例化后,在调用Method方法

Program n = new Program();

主函数部分程序

            Program n = new Program();
            int y = 9;
            Console.WriteLine("调用Method方法之前的值: {0}", y);
            n.Method(y);  // 实参y是通过值传递变量
            Console.WriteLine("调用Method方法后的值: {0}", y);
            Console.ReadKey();

解决方法2:

类库中的Method方法设置static

public static void Method(int x) 

修改后程序为:

using System;
using System.Collections.Generic;
using System.Linq;
using System;
namespace Project4
{
    class Program
    {
        public static void Method(int x)   //形参x是通过值传递的
        {
            x *= x; //	对x的更改不会影响x的原始值
            Console.WriteLine("Method方法内的值: {0}", x);
        }
        static void Main()
        {
            //Program n = new Program();
            int y = 9;
            Console.WriteLine("调用Method方法之前的值: {0}", y);
            Method(y);  // 实参y是通过值传递变量
            Console.WriteLine("调用Method方法后的值: {0}", y);
            Console.ReadKey();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值