using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AutomobileClass
{
public class Automobile
{
private string type;
private string color;
private double price;
private bool isstart;
public Automobile(string type, string color, double price, bool isstart)
{
this.type = type;
this.color = color;
this.price = price;
this.isstart = isstart;
}
public void Automobileinfo()
{
if (Automobile.isstart == false) //这里出错
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:停止", type, color, price);
}
if (Automobile.isstart == true) //这里出错
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:行驶", type, color, price);
}
}
public void Start()
{
isstart = true;
}
public void Stop()
{
isstart = false;
}
}
class Program
{
static void Main(string[] args)
{
Automobile car1 = new Automobile("奥迪", "black", 50000, false);
Automobile car2 = new Automobile("桑塔纳", "red", 100000, true);
Console.WriteLine("车辆信息如下:\n");
car1.Automobileinfo();
car2.Automobileinfo();
Console.WriteLine();
Console.ReadKey();
}
}
}
c# 出现An object reference is required 怎么回事啊,跟教学书上一模一样
答案:2 悬赏:0 手机版
解决时间 2021-03-09 09:41
- 提问者网友:心牵心
- 2021-03-08 23:43
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-03-09 00:33
isstart是类里的非静态字段,因此只需在方法中直接使用即可,如
public void Automobileinfo()
{
if (!isstart )
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:停止", type, color, price);
}
if (isstart)
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:行驶", type, color, price);
}
}
public void Automobileinfo()
{
if (!isstart )
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:停止", type, color, price);
}
if (isstart)
{
Console.WriteLine("品牌:{0},颜色:{1},价格:{2},状态:行驶", type, color, price);
}
}
全部回答
- 1楼网友:西风乍起
- 2021-03-09 00:45
因为static void main(...)为静态方法。如果要在该方法内容访问change(...)方法,需要用static 关键字来修饰change(...)方法才可被访问,不然就会报lz帖出的异常。
public static myclass change(myclass m)
{
//......
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯