Fehlermeldung bei Objekt-Array

Gast #3589209
Lesenswert?

Hallo Leute,

beim Versuch, ein Objekt-Array zu verwenden, erhalte ich folgende 
Fehlermeldung:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


Wie macht man es richtig?

Vielen Dank für Eure Vorschläge.

1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Windows;
5
using System.Windows.Controls;
6
using System.Windows.Data;
7
using System.Windows.Documents;
8
using System.Windows.Input;
9
using System.Windows.Media;
10
using System.Windows.Media.Imaging;
11
using System.Windows.Shapes;
12

13
namespace SimpleLineChart
14
{
15
    /// <summary>
16
    /// Interaktionslogik für MainWindow.xaml
17
    /// </summary>
18
    public partial class MainWindow : Window
19
    {     
20

21
        Ellipse[] myEllipse;        
22

23
        public MainWindow()
24
        {
25
            InitializeComponent();           
26
            AddChart();
27
        }
28

29

30
        private void AddChart()
31
        {
32
            myEllipse = new Ellipse[400];
33

34

35
            for (int i = 0; i < myEllipse.Length; i++)
36
            {           
37

38
                try
39
                {
40
                    myEllipse[i].Stroke = System.Windows.Media.Brushes.Black;
41
                    myEllipse[i].Fill = System.Windows.Media.Brushes.DarkBlue;
42
                    myEllipse[i].HorizontalAlignment = HorizontalAlignment.Left;
43
                    myEllipse[i].VerticalAlignment = VerticalAlignment.Center;
44
                    myEllipse[i].Width = 1;
45
                    myEllipse[i].Height = 1;
46
                    Canvas.SetLeft(myEllipse[i], i);
47
                    chartCanvas.Children.Add(myEllipse[i]);
48
                }
49
                catch (Exception f) { MessageBox.Show(f.Message); MessageBox.Show(f.StackTrace); }               
50

51
            }                   
52
        }
53
    }
54
}
#3589394
Lesenswert?

hm - ich denke, du erzeugst ein neues Array des Typs Ellipse - 
allerdings sind die Einträge des Arrays null da die einzelnen Ellipsen 
nie erzeugt wurden.
Ich habe das jetzt probiert und einfach zuerst die Ellipsen erzeugt:
1
 myEllipse = new Ellipse[400];
2
           
3
            for (int i = 0; i < myEllipse.Length; i++)
4
            {           
5

6
                try
7
                {   myEllipse[i] = new Ellipse();
8
                    myEllipse[i].Stroke = System.Windows.Media.Brushes.Black;
9
                 .
10
                 .
11
                 .

Dann klappts :)
#3589426
Lesenswert?

kein Problem - ich würde dir auch noch aus Performancegründen empfehlen, 
die Try/Catch Anweisung nicht in der Schleife auszuführen.
Es sollte völlig reichen, wenn du das Try am Anfang der Funktion 
AddChart()einfügst.
(Außer du hast Gründe dafür, einen einzelnen Fehler in der Schleife 
gesondert zu behandeln)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren