1

C#:他のユーザー定義クラスのリストを使用してコレクションクラスを作成しようとしていますが、メインオブジェクトにオブジェクトを追加しようとすると、オブジェクトがオブジェクトのインスタンスに設定されていないことが示されます。これが私のC#コードです:

namespace ConsoleApplication2
{

   public class Monthlst
    {
        public List<Monday> Monday { get; set; }
        public List<Tuesday> Tuesday { get; set; }
        public List<Wednesday> Wednesday { get; set; }
        public List<Thursday> Thursday { get; set; }
        public List<Friday> Friday { get; set; }
        public List<Saturday> Saturday { get; set; }
        public List<Sunday> Sunday { get; set; }

    }
   public class Monday
    {
        public int days { get; set; }
    }
   public class Tuesday
    {
        public int days { get; set; }
    }
   public class Wednesday
    {
        public int days { get; set; }
    }
   public class Thursday
    {
        public int days { get; set; }
    }
   public class Friday
    {
        public int days { get; set; }
    }
   public class Saturday
    {
        public int days { get; set; }
    }
   public class Sunday
    {
        public int days { get; set; }
    }
    class Program
    {


        static void Main(string[] args)
        {

          Monthlst objmonth = new Monthlst();
          Wednesday wednes = new Wednesday();
          wednes.days = 5;
          objmonth.Wednesday.Add(wednes); // here i am getting error object not set to.... 
        }
  }
}

ここでは、mainメソッドでMonthlstクラスのインスタンスを作成し、Monthlstオブジェクトのlistプロパティでwednesdayクラスのオブジェクトを作成していますが、なぜエラーが表示されるのかわかりません。間違ったことがあるかどうか説明してください。

ありがとう、ラジ

4

2 に答える 2

2

はい、プロパティを初期化していません。建設後、すべてのMonthlstプロパティはになりますnull。リストに追加する前に、リストを作成する必要があります。例えば:

Monthlst objmonth = new Monthlst();
objmonth.Wednesday = new List<Wednesday>();
Wednesday wednes = new Wednesday();
wednes.days = 5;
objmonth.Wednesday.Add(wednes);

Monthlstまたは、すべてのプロパティを初期化するためのコンストラクターを作成します。

それを除けば、デザインはいろいろな意味でややロピカルだと思いますが、それは別の問題です。

于 2012-07-24T09:49:00.620 に答える
0

Wednesdayリスト項目を初期化します。コードは次のようになります。

public class Monthlst
{
    public Monthlst()
    {
        Monday = new List<Monday>();
        Tuesday = new List<Tuesday>();
        Wednesday = new List<Wednesday>();
        Thursday = new List<Thursday>();
        Friday = new List<Friday>();
        Saturday = new List<Saturday>();
        Sunday = new List<Sunday>();
    }
    public List<Monday> Monday { get; set; }
    public List<Tuesday> Tuesday { get; set; }
    public List<Wednesday> Wednesday { get; set; }
    public List<Thursday> Thursday { get; set; }
    public List<Friday> Friday { get; set; }
    public List<Saturday> Saturday { get; set; }
    public List<Sunday> Sunday { get; set; }

}
public class Monday
{
    public int days { get; set; }
}
public class Tuesday
{
    public int days { get; set; }
}
public class Wednesday
{
    public int days { get; set; }
}
public class Thursday
{
    public int days { get; set; }
}
public class Friday
{
    public int days { get; set; }
}
public class Saturday
{
    public int days { get; set; }
}
public class Sunday
{
    public int days { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        var objmonth = new Monthlst();
        var wednes = new Wednesday {days = 5};
        objmonth.Wednesday.Add(wednes);
    }
}
于 2012-07-24T09:57:50.173 に答える