我是C#的新手,我想用Visual语言在Visual Studio中制作一个Chess Game项目。主要计划包括创建一个名为Piece的虚拟类,它继承PictureBox类(我将Piece类视为一个具有附加功能的图像),它还有一个抽象的Move方法,将在继承类中重写(Pawn,Rook等) )。每种类型的片段都应根据片段的颜色设置PictureBox的图像,我希望在调用该类的构造函数时发生这种情况。如何设置PictureBox的图像?
我见过的大多数问题都是类似的,但是PictureBox没有被继承,它是一个嵌套类,或者我根本不理解人们谈论的很多功能,这就是为什么我问了一个非常具体的问题。
我的Pawn类的构造函数目前看起来像这样:
public Pawn(Coordinate coordinate, int color): base(coordinate, color)
{
if(color==BLACK)
{
//Get the BlackPawn.png image and use it
}
if(color==WHITE)
{
//Get the WhitePawn.png image and use it
}
//Other stuff
}
另外,如果我继承了PictureBox类,我还需要在Piece类构造函数中调用它的构造函数,并注意它的参数,就像我对Pawn构造函数所做的那样:
Pawn(Coordinate coordinate, int color): base(coordinate, color){/*...*/}
继承意味着你在某处声明了
class Piece : PictureBox
这使得这个条件成立:
Pawn is PictureBox
我们还可以说,PictureBox
是通过Pawn
的Piece
的基类。要访问基类的任何私有成员,只需使用它们,使用this
关键字进行限定是可选的。
this.Image = ...;
this.Visible = true;
问题的第二部分,构造函数链接,是covered here。
PictureBox
除了default constructor之外没有任何其他,所以是否传递构造函数参数的问题已经过时了。您可以依赖框架始终调用默认构造函数,而无需为此编写代码。