C# - 使用type作为实例变量

时间:2016-12-13 12:46:49

标签: c# class constructor

我正在关注C#编程指南(C#Players Guide 2nd Edition),并坚持理解课程(第131页)。

练习声明我应该构造一个 Ball 类,它应该具有大小/半径以及颜色实例变量。现在我已经创建了一个Color类(它有两个构造函数,其中一个接受四个ushort,一个接受三个ushort类型),但是我希望使用我刚创建的Color类型。

我不知道该怎么做!到目前为止,我有:

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 个答案:

答案 0 :(得分:4)

首先创建一个新的Colour对象,然后将其传递给Ball构造函数方法:

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

或者您甚至可以在一行代码中执行此操作:

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

答案 1 :(得分:3)

这里至少有两个选择:

他们要求你在实例化颜色时实例化球:

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

他们要么你想要在球之前实例化它并在之后重复使用,这样你就可以为不同的球使用相同的Color实例:

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