次の結果はNullReferenceExceptionになります。それは私に "drawObjs.Add(drawObj);" - オブジェクト参照がオブジェクト インスタンスに設定されていません。なぜこれがインスタンスに設定されていないのか分かりません。C#でリストにオブジェクトを追加できないのはなぜですか?
リスト:リストにさんを追加
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;
}
}
今、私はちょうど愚かな感じ;) - 私は:) – Bildsoe
@Bildsoeことを見落としている可能性がどのように知っていない - 私たちはすべて我々はそれを見て、あまりにも密接に問題を見て瞬間を持っている... – Oded
とそれらに異なる名前をつける:) – Pabuc