Forum: PC-Programmierung Fehlermeldung bei Objekt-Array


von Joel (Gast)


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
}

von Prog R. (daniel_v)


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 :)

: Bearbeitet durch User
von Joel (Gast)


Lesenswert?

Hallo Daniel,

danke für Deine Hilfe. VG, Joel

von Prog R. (daniel_v)


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)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.