gpt4 book ai didi

c# - 为什么我不能在 C# 中将对象添加到我的列表中?

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

以下结果导致 NullReferenceException。它告诉我“drawObjs.Add(drawObj);” - 你调用的对象是空的。我不明白为什么不将其设置为实例?

列表:

List<drawObject> drawObjs;

添加到列表的方法:

public void createDrawObj()
{

drawObject drawObj = new drawObject(100,100,100,100,10);

drawObjs.Add(drawObj);

}

和类本身:

class drawObject
{

float _posX;
float _posY;
float _sizeX;
float _sizeY;
float _cr;

public drawObject(float posX, float posY, float sizeX, float sizeY, float cr)
{

_posX = posX;
_posY = posY;
_sizeX = sizeX;
_sizeY = sizeY;

}

public GraphicsPath objPath()
{

GraphicsPath Path = new GraphicsPath();

Path.AddLine(_posX + _cr, _posY, _posX + _sizeX - (_cr * 2), _posY);
Path.AddArc(_posX + _sizeX - (_cr * 2), _posY, _cr * 2, _cr * 2, 270, 90);
Path.AddLine(_posX + _sizeX, _posY + _cr, _posX + _sizeX, _posY + _sizeY - (_cr * 2));
Path.AddArc(_posX + _sizeX - (_cr * 2), _posY + _sizeY - (_cr * 2), _cr * 2, _cr * 2, 0, 90);
Path.AddLine(_posX + _sizeX - (_cr * 2), _posY + _sizeY, _posX + _cr, _posY + _sizeY);
Path.AddArc(_posX, _posY + _sizeY - (_cr * 2), _cr * 2, _cr * 2, 90, 90);
Path.AddLine(_posX, _posY + _sizeY - (_cr * 2), _posX, _posY + _cr);
Path.AddArc(_posX, _posY, _cr * 2, _cr * 2, 180, 90);

Path.CloseFigure();

return Path;

}

public LinearGradientBrush objBrush(int objColor)
{

LinearGradientBrush lgb;
if (objColor == 1)
{
lgb = new LinearGradientBrush(new PointF(_posX + (_sizeX / 2), _posY), new PointF(_posX + (_sizeX / 2), _posY + _sizeY), Color.RosyBrown, Color.Red);
}
else
{
lgb = new LinearGradientBrush(new PointF(_posX + (_sizeX / 2), _posY), new PointF(_posX + (_sizeX / 2), _posY + _sizeY), Color.GreenYellow, Color.Green);
}
return lgb;

}

}

最佳答案

您需要实例化 drawObjs - 没有它,它就是一个空引用:

List<drawObject> drawObjs = new List<drawObject>();

关于c# - 为什么我不能在 C# 中将对象添加到我的列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4345490/

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