我是C#的新手,我想使用这种语言在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){/*...*/}
答案 0 :(得分:0)
继承意味着你在某处声明了
where
(@Pstring is null or @Pstring = sometable.somecharcolumn)
and
(@Pint is null or @Pint = sometable.someintcolumn)
这使得这个条件成立:
class Piece : PictureBox
我们还可以说,Pawn is PictureBox
是PictureBox
通过Pawn
的基类。
要访问基类的任何私有成员,只需使用它们,Piece
关键字的限定是可选的。
this
问题的第二部分,构造函数链接,是covered here
this.Image = ...;
this.Visible = true;
除了default constructor之外没有任何其他内容,因此是否传递构造函数参数的问题已经过时了。您可以依赖框架始终调用默认构造函数,而无需为此编写代码。