2017-11-19 20 views
0

"プログラムにはエントリポイントに適した静的な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(); 
     } 
    } 
} 
+0

@Crowcoder 「プログラムには、エントリポイントに適した静的な「main」メソッドが含まれていません」というエラーが表示されます。 –

+0

別のクラスを使ってみましたが、うまくいきませんでした –

+0

なぜ地球上にあるのですか?私はそれが問題を抱えているかもしれないと思います。 – john

答えて

1

マイクロソフトの文書(https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0402)によると、汎用クラスにメイン関数を入れることはできません。これが警告として報告されたことは奇妙なことです。エラーはそれほど役に立ちませんでしたが、それがあなたの問題です。

+0

別のクラスを使用しようとしましたが、このProgramクラスからメソッドを呼び出すことができませんでした。私にいくつかのヒントを教えてください。 –

+0

Programクラスの別のクラスのメソッドを呼び出す問題を知っていない限り、私は助けることができません。 – BlueMonkMN

1
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#チュートリアルをいくつか見てみることをお勧めします。

+0

私はC#ジェネリックスを学んでいるので、エラーと克服方法を知る必要があります。 –

+0

まず、エントリポイント内にプログラムクラスの新しいインスタンスを作成しようとしていましたが、これは良い考えではありません既にエントリポイントを実装していることを示します。次に、プログラムクラス内でメソッドとパラメーターを定義して、絶対に不要なリスト関数を実装しました(ホイールを再作成する必要はありません)。挿入メソッドでは、インデックスを文字列に変換して、それを整数と真っ直ぐに比較しようとします。 –

関連する問題