2016-04-28 7 views
-3

私は最近uniで私の実用的なテストを行った、私は50%を得た、私は自分のコードの間違いが何であるか分からないが、誰かがそれを把握することができれば嬉しいだろう。そう、この質問で私を助けてください、私は別の国に旅行してきたし、私の先生は今3日以来、私の電子メールを答えていない。C#私の間違いは何ですか?

質問:

コード有名な「Hello Worldのオブジェクト指向バージョン"プログラム。 には、グリーティング文字列をカプセル化するクラスが含まれ、次のものが含まれている必要があります。 - 挨拶 "Hello World"を持つデフォルトコンストラクタ - 挨拶を指定する文字列パラメータを持つコンストラクタ - メソッドSetGreeting()およびGetGreetingそれが構築され、そして現在の はそれに応じて挨拶表示するようにした後、オブジェクトの 挨拶を指定するために使用

私の答え:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication5 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("Select question number (a,b or c) : "); 
      string qn = Console.ReadLine(); 

      if (qn == "a" || qn == "A") 
      { 
       HelloWorld hw = new HelloWorld(); 
      } 
      else if (qn == "b" || qn == "B") 
      { 
       HelloWorld hw2 = new HelloWorld("Hello World!"); 
      } 
      else if (qn == "c" || qn == "C") 
      { 
       HelloWorld hw = new HelloWorld(); 

       Console.Write("Enter Name: "); 
       string user = Console.ReadLine(); 

       hw.SetGreeting(user); 
       hw.GetGreeting(); 

      } 
      else 
      { 
       Console.WriteLine("Wrong question selected"); 
      } 


      Console.ReadLine(); 
     } 
    } 


    public class HelloWorld 
    { 
     public string name; 

     public HelloWorld() 
     { 
      Console.Write("From a default constructor: "); 
      Console.WriteLine("Hello World!"); 
     } 

     public HelloWorld(string _greeting) 
     { 
      Console.Write("From a constructor with parameter: "); 
      Console.WriteLine(_greeting); 
     } 

     public void SetGreeting(string _name) 
     { 
      name = _name; 
     } 
     public void GetGreeting() 
     { 
      Console.WriteLine("Hello, " + name); 
     } 



    } 

} 

は、彼が外に「コードだった私の結果にコメントを残しましたクラスd efinition "と呼ばれる。誰かが私にこれで何が間違っているか教えてもらえますか?おかげで

+1

教授はおそらく、自分のクラスに入るよう促すすべてのプロンプトを探しています。それは静的な空のメインメソッドです。 –

+1

あなたの先生にはわからないので100%確信することはできませんが(はい、これらのことはかなり主観的です)、questinはあなたにメッセージをカプセル化するクラスを要求しました。メッセージを出力するクラスではありません私はそれを理解するので、あなたのクラスは文字列を保持するだけで(そして様々なコンストラクタを持っている)、メインコードでConsole.WriteLine(hw.GetGreeting())を実行する必要があります。また、SOはこれらのような質問のための場所ではありません。これは本当に速く閉じられるでしょう... – Gusman

+1

誰かがJava getter/setter形式を使用していることに気付いたのですか? @ Gusmanは言ったように、ゲッターで 'string'を返すべきです。また、C#にはこのスタイルを使用します。https://msdn.microsoft.com/en-us/library/k69wcs43.aspx –

答えて

0

これは間違っている:

public void GetGreeting() 
{ 
    Console.WriteLine("Hello, " + name); 
} 

それは、文字列、挨拶を返す必要があります。それがゲッターズのやり方です。

また、クラスにはGUI(コンソールの読み取りまたは書き込み)があってはいけません。それは単なる独立したオブジェクトでなければなりません。

関連する問題