2016-11-05 8 views
-2

は、私は単にそれを返品はありませんか?

UPDATEを表示したくない、変数名を変更する:私の代わりに戻り方法の私は、変数に直接アクセスすることができ、それを考え出しました。

次の問題の解決に興味がある場合は、先に進んでください。

だから私はこの1つのクラス(のはにClassAを言わせて)持っている:私はEmployeeName、EmployeePositionを返すための方法を作ったときに、

private EmployeeInformation[] Employee; 
private int EmployeeAmount; 

public Top() 
{ 
    Employee = new EmployeeInformation[100]; 
    EmployeeAmount = 0; 
} 

public void HireEmployee(string name, string job, string promotion, int salary, int productivity) 
{ 
    Console.WriteLine("==HIRE PEOPLE=="); 
    Employee[EmployeeAmount] = new EmployeeInformation(name, job, promotion, salary, productivity); 
    EmployeeAmount++; 
} 

:別のクラス(ClassBの)上の

string EmployeeName; 
string EmployeePosition; 
string PokemonPromotion; 
int EmployeeSalary; 
int EmployeeProductivity; 

public EmployeeInformation(string name, string job, string promotion, int salary, int productivity) 
{ 
    EmployeeName = name; 
    EmployeePosition = job; 
    EmployeePromotion = promotion; 
    EmployeeSalary = salary; 
    EmployeeProductivity = productivity; 
} 

そして、これをEmployeePromotion、EmployeeSalary、およびEmployeeProductivityは何も返しません(空白のように)。前もって感謝します!

編集:ここでは

を返すためのメソッド(方法はにClassAの一部である) はそれが編集2誰も

public string ReturnEmployeeName() 
{ 
    return EmployeeName; 
} 

public string ReturnEmployeePosition() 
{ 
    return EmployeePosition; 
} 

public string ReturnEmployeePromotion() 
{ 
    return EmployeePromotion; 
} 

public int ReturnEmployeeSalary() 
{ 
    return EmployeeSalary; 
} 

public int ReturnEmployeeProductivity() 
{ 
    return Employee Productivity; 
} 

に明確になる願っている:これは私がリターンをテストしようとする方法です。ここでのアイデアはforループのすべてをリストすることです。私はそれが私がループに入れたものに "0"を交換するだけです。私はそれが何か、それを返すかどうかを確認する方法を作ったときのループは、しかし、給与と生産性を印刷しません。これは、forループで

public void ListEmployees() 
{ 
    Console.WriteLine("=LIST OF EMPLOYEES="); 
    Console.WriteLine("ID" + "\t" 
     + "NAME" + "\t" 
     + "POSITION" + "\t" 
     + "PROMOTION" + "\t"); 
    for (int i = 0; i < EmployeeAmount; i++) 
    { 
     Console.WriteLine("{0}", i + 1, "\t" 
      , Employee[i].ReturnEmployeeName(), "\t" 
      , Employee[i].ReturnEmployeePosition(), "\t" 
      , Employee[i].ReturnEmployeePromotion(), "\t"); 
    } 
} 

(ClassBの中で):

Employee[0].ReturnEmployeeName(); 

編集3残りのように空白に戻ります。

編集4:これを行うたびに、実際には何かがあります。唯一の問題は、私がメソッドを使うときです。

Console.WriteLine(Employee[0].EmployeeName); 
+1

この失敗したメソッドのコードを投稿しないとどうすればよろしいですか? – Steve

+0

HireEmployeeメソッドからEmployeeInformationを返したいと思いますか? –

+0

何が問題ですか?何が戻っていないのですか?待って、 –

答えて

0

投稿したコードを見るだけで、EmployeeAmount変数を使用してEmployeeInformation配列のインデックスを作成しようとしている可能性があります。

は、配列にデータを挿入した後に常に増加するため、常に空の値(挿入される次の値)をインデックスします。確かに、少なくとも1つのレコードを追加した後、あなたが持っている値を確認しようとしてくださいEmployee[0]

+0

も表示されるはずです。 " .EmployeeInformation"と表示されます。 – Rinne

+0

オブジェクトの単一のプロパティにアクセスする必要があります。試してみてくださいConsole.WriteLine(Employee [0] .EmployeeName)(何とか公開した後に) – Isaak

+0

ああ、ちょっと!それは実際に動作します。問題は、私が上で使用したメソッドを使って何も返さないことだけです。 – Rinne

0

私はあなたがそのためのプロパティを作成する必要があると思う:

public string EmployeeName{get;set;}; 
public string EmployeePosition {get;set;}; 
public string PokemonPromotion {get;set;}; 
public int EmployeeSalary {get;set;}; 
public int EmployeeProductivity {get;set;}; 

、あなたがプロパティ

0
public EmployeeInformation HireEmployee(string name, string job, string promotion, int salary, int productivity) 
    { 
    Console.WriteLine("==HIRE PEOPLE=="); 
    EmployeeInformation employeeInformation = new EmployeeInformation(name, job, promotion, salary, productivity); 
    Employee[EmployeeAmount] = employeeInformation; 
    EmployeeAmount++; 
    return employeeInformation; 
    } 

を設定し、取得することができますあなたはこのをお探しですか? Arrayの代わりにListを使うことができます。なぜなら、100を超える要素を追加したい場合、例外をスローするからです。

関連する問題