You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用C#方法时出现CS7036错误,请求解决汽车列表展示问题

C#汽车列表显示问题修复方案

你在作业里遇到的CS7036错误,主要是因为调用方法时参数传递有误,再加上几个小的语法/规范问题,我帮你逐一梳理并修复:

代码里的核心问题

  • 静态方法无法直接调用实例方法:Main是静态方法,而你定义的display是普通实例方法,静态上下文里不能直接调用非静态方法。
  • 调用display时未传递必需参数:display方法要求传入一个List<auto>类型的参数,但你调用时写的是display(),完全没传参数,这就是CS7036错误的直接原因。
  • 参数命名与类名冲突:display的参数名用了auto,和你的汽车类名重名了,编译时会产生歧义,得换个名字。
  • 循环内的ReadKey导致交互异常:把Console.ReadKey()放在foreach循环里,会显示一辆车就暂停一次,体验不好,应该移到循环外面。

修复后的完整代码

Program类代码

using System;
using System.Collections.Generic;
using System.Text;

namespace auto
{
    class Program
    {
        static void Main(string[] args)
        {
            List<auto> autos = new List<auto>();
            auto auto1 = new auto("Lamborgini", "Aventador", "2004");
            // 别忘了把创建的汽车对象添加到列表里!你之前漏了这一步
            autos.Add(auto1);
            // 调用display时传入autos列表,并且因为display改成了静态方法,直接调用即可
            display(autos);
        }

        // 改成静态方法,参数名改为autosList避免和类名冲突
        static void display(List<auto> autosList)
        {
            foreach (auto item in autosList)
            {
                Console.WriteLine("Merk :" + item.merk);
                Console.WriteLine("Model :" + item.model);
                Console.WriteLine("Jaar :" + item.jaar);
                // 加个分隔线让输出更清晰
                Console.WriteLine("------------------------");
            }
            // 把ReadKey移到循环外,所有内容显示完再暂停
            Console.ReadKey();
        }
    }
}

汽车类代码(顺便优化下命名规范,C#类名建议用PascalCase)

using System;
using System.Collections.Generic;
using System.Text;

namespace auto
{
    // 类名首字母大写,符合C#命名规范
    class Auto
    {
        public string merk { get; set; }
        public string model { get; set; }
        public string jaar { get; set; }

        public Auto(string merk, string model, string jaar)
        {
            this.merk = merk;
            this.model = model;
            this.jaar = jaar;
        }
    }
}

注:如果保留原来的类名auto,Program代码里的List<auto>和实例化部分不用改,只是首字母大写更符合C#的编码习惯。

额外提醒

你之前创建了auto1对象,但没有把它添加到autos列表里,就算修复了方法调用,也会因为列表为空而没有输出内容,所以一定要加上autos.Add(auto1)这一步哦!

内容的提问来源于stack exchange,提问作者Nick Glas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:17:55