[英]Reflection.TargetInvocationException
我有一個名為carroms的課程 。 當我創建它的對象時,沒有錯誤。 但是當我創建一個carroms數組時,拋出了這個異常:
PresentationFramework.dll中出現未處理的“System.Reflection.TargetInvocationException”類型異常
附加信息:調用目標引發了異常。
我的carroms類代碼:
class carroms
{
private bool player;
public bool checkPlayer
{
get { return player; }
set { player = value; }
}
private Point center;
public Point carromCenter
{
get { return center; }
set { center = value; }
}
private Point[] points;
public Point[] carromPoints
{
get { return points; }
set { points = value; }
}
private double width;
public double carromWidth
{
get { return width; }
set { width = value;
}
}
private double height;
public double carromHeight
{
get { return height; }
set { height = value; }
}
public carroms()
{
points = new Point[370];
}
public Ellipse draw()
{
Ellipse myellipse = new Ellipse();
myellipse.Height = carromHeight;
myellipse.Width = carromWidth;
if (checkPlayer == true)
{
myellipse.Fill = Brushes.Black;
}
else
{
myellipse.Fill = Brushes.Beige;
}
return myellipse;
}
}
我的代碼用於創建對象:
Random randi = new Random();
carroms[] mycarroms = new carroms[5];
mycarroms[0].carromHeight = 100;
mycarroms[0].carromWidth = 100;
mycanvas.Children.Add(mycarroms[0].draw());
想要添加一些東西,不要被TargetInvocationException嚇倒,因為它不會提供太多信息。 您應該看到內部異常以獲得根本原因。 InnerException可以是AggregateException類型,在這種情況下,您需要更進一步以獲取所有異常詳細信息。
您正在創建一個數組,但all items added in array are still null
。
Initialize them first
然后只能訪問它。 問題在這里 -
Random randi = new Random();
carroms[] mycarroms = new carroms[5];
mycarroms[0].carromHeight = 100; <-- mycarroms[0] will be null
它應該是 -
Random randi = new Random();
carroms[] mycarroms = new carroms[5];
mycarroms[0] = new carroms();
mycarroms[0].carromHeight = 100;
或者您可以使用array initializer
來初始化它 -
Random randi = new Random();
carroms[] mycarroms = new carroms[5]
{new carroms(), new carroms(), new carroms(), new carroms(), new carroms()};
mycarroms[0].carromHeight = 100;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.