Entwickler-Ecke

Basistechnologien - Objekt in Methode nur einmal erstellen


HoPPeL - Do 10.03.11 12:33
Titel: Objekt in Methode nur einmal erstellen
hiho,

habe in meienr Klasse folgende Methode:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public void clipping()
        {
            vtkPlane plane = new vtkPlane();

            plane.SetOrigin(00, Rangemin / 10);
            plane.SetNormal(001);

            vtkClipPolyData clipper = new vtkClipPolyData();

            clipper.SetInputConnection(Merge.GetOutputPort());
            clipper.SetClipFunction(plane);
            clipper.SetValue(0);

            Mapper.SetInput(clipper.GetOutput());
            RenderWindow.Render();
        }


so nun rufe ich diese methode auf, wenn man in der mainform an ner trakcbar rumfummel.
Problem dabei ist, dass dann ja immer wieder "plane" und "clipper" erstellt werden, ich also locker davon hunderte von Objekten erstelle. Das will ich verhindern... Ist also wahrscheinlich eher eine frage grundsätzlichen designs... habe mir jetzt überlegt, dass ich "plane und clipper" als Klassenvariablen deklariere und in der mainform dann überprüfem, ob die objekte existieren, ist dem so, greife ich direkt darauf zu Klasse.plane.SetOrigin(0, 0, Rangemin / 10); etc...

macht man das so? oder wie geht das am schönsten?

mfg


Kha - Do 10.03.11 13:34

Das Grundrezept dafür lautet:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
vtkPlane plane;

public void clipping()
{
  if (plane == null)
    plane = new vtkPlane();

  ...


PS: So viele Set-Methoden... Properties sagen dir nicht zu ;) ?


HoPPeL - Do 10.03.11 14:02

ah super danke!
hmm ne properties sagen mir irgendwie nicht so.. hab mir das mal angeguckt aber so richtig durchgeblickt habsch da noch net.. klappt ja auch so :/