2016-11-20 15 views
0

私はC#とオブジェクト指向のプログラミングには新しくなっています。だからこそnoobyの質問があればよろしくお願いします。 私は最初のクラスのメソッドで入力を求め、2番目のクラスのメソッドにこの値を戻して、最終コストを計算します。私はコンストラクタを介して設定値を渡す方法を理解していますが、私が知る限り、これはうまくいくでしょうが、設定値ではなく、渡すべき入力値が必要です。 (このコードは私のメインプログラムから少しだけです)ユーザー入力値を別のクラスに戻す方法は? c#

class TableOrder 
{  
    string inputtablenumber; 
    int tablenumber; 

    public int TableNumber() 
    { 
     Console.Write("please enter the table number:"); 
     inputtablenumber = Console.ReadLine(); 
     tablenumber = int.Parse(inputtablenumber); 
     return tablenumber;    
    } 
} 

class TableBill 
{ 

public void CalculateBill() 
    { 
     TableOrder TO = new TableOrder(); 
     TO.AddDrink();    

     if (tablenumber >= 6 & tablenumber < 10) 
     { 
      Console.Write("You are due a 10% discount"); 

     } 
     if (tablenumber > 10) 
     { 
      Console.Write("you are due a 15% discount"); 
     } 

    }   
} 

class Program 
{ 
    static void Main(string[] args) 
    { 

     TableBill TB = new TableBill(); 
     TB.CalculateBill(); 

    } 
} 

ので、私が代わりに、既に設定された値の上を通過するの私のCalculateBillクラスでTableNumberメソッドから来ている番号を、使用したいです。私はTO.AddDrink()で試した。しかし私はどこにも行きませんでした。これは私の全体的なコードの小さなスニペットなので、何が起こってもあまり意味がないかもしれませんが、別のクラスのこのtablenumber値にアクセスしたいだけです。 ありがとうございます!

+2

なぜあなたは 'TableNumber'メソッドを呼び出していませんか?それがあなたのために作ったものですよね? – UnholySheep

答えて

0
その後、 public int tablenumber;から

変更int tablenumber;CalculateBillコールTO.TableNumber中とTO.tablenumbertablenumberを交換してください。

代わり:

public void CalculateBill() 
    { 
     TableOrder TO = new TableOrder(); 
     var tablenumber = TO.TableNumber(); 
     TO.AddDrink();    

     if (tablenumber >= 6 & tablenumber < 10) 
     { 
      Console.Write("You are due a 10% discount"); 

     } 
     if (tablenumber > 10) 
     { 
      Console.Write("you are due a 15% discount"); 
     } 

    }   
} 
+0

なぜ 'int tablenumber'を公開したいのですか? – UnholySheep

+0

'public int tablenumber;' –

+0

これは私の質問に対する有効な回答ではありません。私はなぜ知りたいのですか*あなたがそれをしたいと思っている(あるいはそれが必要だと思う) – UnholySheep

関連する問題