gpt4 book ai didi

c# - 没有参数的聚合关系

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:27 24 4
gpt4 key购买 nike

我对 C# 中的聚合有一些疑问。现在,我有以下代码:

namespace ShapeDrawing
{
public abstract class Shape
{
protected Drawing myDrawing;

public Shape(Drawing drawing)
{
myDrawing = drawing;

}
}
public abstract class Drawing
{
public abstract void drawLine();
public abstract void drawCircle();
}
}

唯一的问题是,当其中一个类需要实例化时,Shape 的子类现在将 Drawing 作为参数。唯一的问题是,绘图不能作为这些类的参数(由于程序的某些原因)。

有没有办法在不使用 Drawing 作为 Shape 子类的参数的情况下进行聚合?

[更新为第一个答案]

我这样做了,但后来我遇到了以下问题。在我的 Shape 子类之一中,我有以下方法:

public override void draw()
{
myDrawing.drawCircle(x, y, size);
}

运行此方法时,myDrawing 出现问题。我得到的错误是:

“NullReferenceException 未处理。ShapeDrawing.exe 中发生类型为‘System.NullReferenceException’的未处理异常”

我该如何解决这个问题?

问候,净莲

最佳答案

是的,你创建了一个不使用绘图的构造函数

public Shape()
{}
public Shape(Drawing drawing)
{
myDrawing = drawing;

}

关于c# - 没有参数的聚合关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com