2016-04-28 9 views
-3

私はmyCar.FormatMe()に電話しようとしましたが、表示されません。どうしてか分かりません。助言がありますか?別のクラスのメソッドを呼び出せません

using System; 
namespace SimpleClasses 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Car myCar = new Car(); 
      myCar.Make = "BMW";  
      myCar.FormatMe(); 
      Console.ReadLine(); 
     } 
    } 

    class Car 
    { 
     public string Make { get; set; } 
     public string FormatMe() 
     { 
      return string.Format("Make: {0}", this.Make); 
     } 

    } 
} 

ありがとうございます。

答えて

11

あなたのコードには出力

class Program 
{ 
    static void Main(string[] args) 
    { 
     Car myCar = new Car(); 
     myCar.Make = "BMW";  
     Console.WriteLine(myCar.FormatMe()); 
    } 
} 

class Car 
{ 
    public string Make { get; set; } 
    public string FormatMe() 
    { 
     return string.Format("Make: {0}", this.Make); 
    } 

} 
+1

ああ、シンプル。私はとても馬鹿だと感じます。 – Hanaka

+0

@ハナカここに投稿された回答のうち1つを受け入れることをお勧めします。 :0 – techspider

1

Console.WriteLine()への呼び出しであなたの関数呼び出しをラップかFormatMe()が同じことを行う必要がありどちらかはありません。

関数呼び出しで何をしているのかは、文字列を返すだけですが、変数に代入したり、別の関数にパラメータとして渡したりするなど、何もしません。したがって、何もしていないので、何もしません。

4

孤立文字列とあなたのFormatMe()関数から文字列を返すされているが、実際にそれを何もしていない読み取る代わりに

を書く:

myCar.FormatMe(); // This will return your value, but it isn't being stored 

また、あなたがConsole.ReadLine()を呼び出しています実際にはがユーザに出力されるのではなく、から入力を期待しています。

// This will store the results from your FormatMe() method in output 
var output = myCar.FormatMe(); 
// This will write the returned string to the Console 
Console.WriteLine(output); 
// You can now read it here 
Console.ReadLine(); 

か::

ストアあなたの変数と変数に格納したり、直接Console.WriteLine()メソッドにパラメータとして渡す考えてみましょうアウト

それを書くには、出力として送信する

// Write the output from your FormatMe() method to the Console 
Console.WriteLine(myCar.FormatMe()); 
// Now you should be able to read it 
Console.ReadLine(); 

あなたはsee an interactive example of this in action here、その出力は以下に示すことができます。

enter image description here

1

はあなたがFormatMe()から値を取得したり、単にそれを印刷する必要があります

static void Main(string[] args) 
{ 
    Car myCar = new Car(); 
    myCar.Make = "BMW";   
    Console.ReadLine(myCar.FormatMe()); 
} 
0

少し遅れて申し訳ありません。私はこの種の答えの受け入れについてはわかりません。もしそれが正しい方法でないなら、私を許してください。

例の助けを借りて問題を見てみましょう。それで、あなたは名前付きの人(ここではcar)に何か(here it is a formatted string)を求めています。質問は私にフォーマットスティング(FormatMe())を与えることです。これまですべてがうまくいっています。

Whats next?あなたが書式設定された文字列を与えるためにすべてがうまくいけば(関数に問題がないことを意味する)、人はあなたに結果を与えます。これはあなたのケースでも大丈夫です(関数は、書式設定された文字列を完全に返しました)。

今回は何をする必要がありますか?あなたはそれぞれの人から製品を収集する必要があります。残念ながら、あなたはそれらを収集するのを忘れましたが、あなたはそれを別の人に届けようとしています。これはあなたの場合に起こっています。

どうすればよいですか?コンソールに渡す前に、製品、フォーマットされた文字列を収集する必要があります。

string formattedString =myCar.FormatMe(); // collecting formatted string 
Console.WriteLine(formattedString); // delivering it to the console 

か、次のようなコンソールへの道の上にそれらを収集することができます:それはある

Console.WriteLine(myCar.FormatMe()); // delivering it to the console 
+1

ReadLineを使用してコンソールに出力することはできません – techspider

+0

@techspider:あなたの提案は私の答えを改善するのに役立ちますありがとう、ありがとう。アップデートを見てみましょう –

関連する問題