2016-04-07 9 views
-3

Schedule.csグローバル配列がウィンドウC#

public static class SchArray 
{ 

    public static string[] clientName = new string[20]; 
    public static DateTime[] startDate = new DateTime[20]; 
    public static DateTime[] endDate = new DateTime[20]; 
    public static string[] allocatedDriver = new string[20]; 
    public static string[] depot = new string[20]; 
    public static int count = 3; 
} 

public void schedule() 
{ 

    SchArray.clientName[0] = "eric cartman"; 
    SchArray.clientName[1] = "peter griffin"; 
    SchArray.clientName[2] = "homer simpson"; 
    SchArray.startDate[0] = Convert.ToDateTime("2016,3,2"); 
    SchArray.startDate[1] = Convert.ToDateTime("2016,3,4"); 
    SchArray.startDate[2] = Convert.ToDateTime("2016,3,5"); 
    SchArray.endDate[0] = Convert.ToDateTime("2016,3,3"); 
    SchArray.endDate[1] = Convert.ToDateTime("2016,3,5"); 
    SchArray.endDate[2] = Convert.ToDateTime("2016,3,6"); 
    SchArray.allocatedDriver[0] = "owen"; 
    SchArray.allocatedDriver[1] = "daniel"; 
    SchArray.allocatedDriver[2] = "owen"; 
    SchArray.depot[0] = "depot1"; 
    SchArray.depot[1] = "depot2"; 
    SchArray.depot[2] = "depot3"; 
} 

Work_Schedule.csをコンソールに読みません

public void schedule() 
{ 

    Console.Clear(); 
    Console.WriteLine(" Create Work Schedule "); 

    Console.WriteLine(Schedule.SchArray.clientName[0]); 
    Console.ReadKey(); 
} 

Console.WriteLine(Schedule.SchArray.clientName[0]); 

^^^^^名にエリックカートマンが表示されるはずです。この線、iそれをデバッグして、配列にオブジェクトがないと言うと、それらはすべてnullです。

+1

なぜclientName/startDate/endDateなどのプロパティを持つクラスの配列 –

+1

1. OO! 2.あなたは 'Schedule.schedule()'を呼び出しましたか? – Bas

+1

関連するコードが表示されていません。どこで 'schedule()'を呼びますか? –

答えて

0

あなたはScheduleのオブジェクトを作成する必要があります。

Schedule scheduleObject = new Schedule(); 
    Console.WriteLine(SchArray.clientName[0]); 

この特定のシナリオのために、私はの静的リスト/配列を作成する別のアプローチを提案したいと思いますオブジェクト。次のようなとして私は、クラスを変更してみましょう:

public class SchArray 
    { 
     public string clientName; 
     public DateTime startDate; 
     public DateTime endDate; 
     public string allocatedDriver; 
     public string depot; 
     public int count = 3; 
    } 

と私はstaticとして定義されList<SchArray>を持っています。

public static List<SchArray> StaticSchArray = new List<SchArray>(); 

そしてiは、以下などのリストを作成することができる:

StaticSchArray.Add(new SchArray() {clientName="eric cartman", 
           startDate=Convert.ToDateTime("2016,3,2"), 
           endDate= Convert.ToDateTime("2016,3,2"), 
           depot="depot1",allocatedDriver ="owen" }); 

同様に、他の要素は、アレイに添加することができます。このシナリオではこれがより良い選択肢になります。

0

プロパティからデータを取得しようとする前に、関数schedule()を呼び出す必要があります。配列要素がコンストラクタ内で初期化さWARE以来

+0

また、この関数はクラスに追加する必要があります。 –

+0

'schedule'はメソッドではなくコンストラクタです –

+1

開始するとpublic voidになりますのでメソッドになります –