2016-12-13 18 views
0

私はC#プログラミングガイド(C#Playersガイド第2版)に従っており、クラスの理解に固執しています(131ページ)。C# - インスタンス変数として型を使用する

エクササイズでは、ボールクラスに、サイズ/半径とカラーインスタンス変数を設定する必要があります。今私は以前に、Colorクラスを作成しました(これは、4つのUshortを受け入れるコンストラクタと3つのUshortタイプを受け入れるコンストラクタを持っています)。を作成したかったのです。

私はこれを行う方法がわかりません!これまでのところ私は持っています:

private int size; 
private int radius; 
private int throwCount; 
private Colour colour; 

public Ball(int size, int radius, Colour colour) 
{ 
    this.size = size; 
    this.radius = radius; 
    this.colour = colour; 
} 

ボールを作成する場合、私は正しくカラーパラメータを使用する方法がわかりません。

Ball myBall = new Ball(1,2, ?) 

あなたは私を助けてくれますか、私がこの権利をしているかどうか教えてください。

純粋な初心者からおかげさまでありがとうございます!

+2

あなたは同じで、 'Colour'インスタンスを構築方法'新しいボール(1、2、新しい色(1,2,3,4))'。 – Lee

+0

'new ball()'をどのように作成しているのか見てみましょう。 'Ball'コンストラクタに渡すために' new Color() 'を作成するだけです。 –

+0

Colorクラスインスタンスを作成し、Ballコンストラクタを渡す必要があります。 カラークラスを共有できますか? – Saadi

答えて

3

少なくとも2つの選択肢があります。

色をインスタンス化するときにボールをインスタンス化する必要があります。

Ball myBall = new Ball(1,2, new Colour(1,2,3)); 

どちらか彼らはあなたがボールの前にそれをインスタンス化して、後のあなたは別のボールに色の同じインスタンスを使用することができます。この方法でそれを再利用したい:

Colour myColor = new Colour(1,2,3) 
Ball myBall = new Ball(1,2, myColor); 
Ball myOtherBall = new Ball(4,2, myColor); 
4

まず、あなたはその後、Ballコンストラクタメソッドに渡す新しいColourオブジェクトを作成:

var colour = new Colour(...); // provide suitable parameters 
Ball myBall = new Ball(1, 2, colour); 

それともあなたも1行のコードでそれを行うことができます:あなたはここで

Ball myBall = new Ball(1, 2, new Colour(...)); // provide suitable parameters 
+2

Damnit FGITWはxDをもう一度勝ちましたが、私はまだこの質問で混乱していますが、クラス 'Color'ではないか、それとも両方のスペルを感じるかによって決まりますか? –

+0

_「これは好きですか?」以外に、あなたの答えにはOPが代わりに何をしているのかについての説明は含まれていません。 OPとそれ以降の訪問者がそこからコピー&ペーストする以外のことを学ぶように、あなたの答えを[編集]してください。 – CodeCaster

+0

@コードキャスター私はそれをしましたが、悲しいことに悲しげにそれを投稿しました –

関連する問題