【问题标题】:im getting error of program does not contain a static 'main' method suitable for an entry point我得到程序错误不包含适合入口点的静态“主”方法
【发布时间】:2018-05-02 21:27:51
【问题描述】:

我收到一条错误消息,“程序不包含适合入口点的静态‘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();
        }
    }
}

【问题讨论】:

  • @Crowcoder 我收到一个错误,“程序不包含适合入口点的静态'main'方法。”
  • 尝试使用不同的类但没有用
  • 为什么程序是通用的?我想它可能会遇到麻烦。
  • 对不起,我无法抗拒基于预编辑问题。查看那里的相关问题>在右侧。这是一个你只会犯一次的简单错误。

标签: c# generics arraylist


【解决方案1】:

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

【讨论】:

  • 我尝试使用另一个类,但我无法从这个 Program 类调用方法。请给我一些建议
  • 除非我知道您从 Program 类调用另一个类中的方法时遇到什么问题,否则我无能为力。
【解决方案2】:
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# 教程。

【讨论】:

  • 我正在学习 c# 泛型,所以我需要知道错误是什么以及如何克服
  • 首先,您试图在入口点内创建程序类的新实例,这不是一个好主意,因为它已经实现了入口点。然后,您在程序类中定义了方法和参数来实现绝对没有必要的列表函数(无需重新发明轮子)。在您的 Insert 方法中,您将索引转换为字符串,并尝试将其与具有直接相等性的整数进行比较。
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 2013-04-14
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多