IM获取程序错误不包含适用于入口点的静态'main'方法



我收到一个错误,"程序不包含适合入口点的静态'main'方法。

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
namespace ConsoleApplication1
{
    class Program<T>
    {
        List<T> a1 = new List<T>();
        public void AddData(T data1)
        {
            a1.Add(data1);
        }
        public void Insert(T arrayValue, int arrayPosition)
        {
            // var key = arrayPosition.ToInt();
            var key1 = arrayValue.ToString();
            for (int i = 0; i < a1.Count; i++)
            {
                if (i == arrayPosition)
                {
                    a1.Add(arrayValue);
                    break;
                }
            }
        }
        public void Delete(int arrayPosition)
        {
            for (int i = 0; i < a1.Count; i++)
            {
                if (i == arrayPosition)
                {
                    a1.Remove(a1[i]);
                    break;
                }
            }
        }
        public void DisplayData()
        {
            foreach (T x in a1)
            {
                Console.WriteLine(x);
            }
        }
         static void Main(string[] args)
        {
            Program<int> obj = new Program<int>();
            obj.AddData(123);
            obj.AddData(56);
            obj.AddData(34);
            obj.AddData(87);
            obj.DisplayData();
            obj.Insert(125, 3);
            obj.DisplayData();
            obj.Delete(2);
            obj.DisplayData();
        }
    }
}

根据Microsoft文档 (https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0402(,您不能将 main 函数放在泛型类中。奇怪的是,这被报告为警告,并且错误帮助不大,但那是您的问题。

using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
    public static class Program
    {
        [STAThread]
        public static void Main(string[] args)
        {
            List<Int32> obj = new List<Int32>();
            obj.Add(123);
            obj.Add(56);
            obj.Add(34);
            obj.Add(87);
            foreach (Int32 value in obj)
                Console.WriteLine(value.ToString());
            obj.Insert(3, 125);
            foreach (Int32 value in obj)
                Console.WriteLine(value.ToString());
            obj.RemoveAt(2);
            foreach (Int32 value in obj)
                Console.WriteLine(value.ToString());
        }
    }
}

定义一个自定义类来处理这些任务在我看来有点矫枉过正。此代码应重现您尝试执行的操作,而不会出错。无论如何,我建议您看一些基本的C#教程。

尝试将静态空白放在程序类的顶部。

最新更新