WinFuture-Forum.de: Gültigkeit eines Objektes ASP - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Gültigkeit eines Objektes ASP


#1 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

  geschrieben 28. April 2011 - 13:34

Moin Moin

ich hab da mal eine Frage. Warum bringt mir der erste Code eine Exception, wenn ich Methode ButtonCenter_Click aufrufe und der zweite Code nicht? Die Lebensdauer des Objektes müsste doch dich gleiche sein? Das verstehe ich nicht.

Danke für die Antworten

namespace LogitechShpereWeb
{
	public partial class _Default : System.Web.UI.Page
	{
		private Camera _cam;
		private const int SchrittHorizontal = 10;
		private const int SchrittVertikal = 10;

		protected void ButtonInit_Click(object sender, EventArgs e)
		{
			_cam = new Camera(2);
			_cam.CenterCamera();
		}

		protected void ButtonCenter_Click(object sender, EventArgs e)
		{
			_cam.CenterCamera();
		}
	}
}



namespace LogitechShpereWeb
{
	public partial class _Default : System.Web.UI.Page
	{
		private Camera _cam = new Camera(2);
		private const int SchrittHorizontal = 10;
		private const int SchrittVertikal = 10;

		protected void ButtonInit_Click(object sender, EventArgs e)
		{
			_cam.CenterCamera();
		}

		protected void ButtonCenter_Click(object sender, EventArgs e)
		{
			_cam.CenterCamera();
		}
	}
}

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 28. April 2011 - 13:49

Im zweiten Fall instanziierst du _cam direkt als Feld, das heißt es ist direkt verfügbar.

Im ersten Fall liefert ButtonCenter_Click eine NullPointerException da _cam noch keine Instanz enthält. _cam wird erst in der Methode ButtonInit_Click erzeugt.
0

#3 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 28. April 2011 - 14:10

Hi

ich hätte noch erwähnen sollen, dass ich den Button Init immer drücke.

Also ich klicke immer auf den Button Init und dann auf Center.

Bei Code 1 stüzt es ab bei Code 2 geht es.

Das Code 2 geht ist klar. Aber warum geht Code 1 nicht?
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 28. April 2011 - 15:16

Hmm...wird die erste Methode denn erfolgreich durchgeführt, die "Kamera zentriert"?

Welche Exception bekommst du eigentlich genau? Vielleicht ist es etwas völlig anderes.
0

#5 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 28. April 2011 - 15:21

Es kommt eine Null Pointer Exception.

Die Variable ist nur für die kurze Zeit in der Funktion protected void ButtonInit_Click ungleich null. Danach wird sie null
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 28. April 2011 - 15:57

Aaach...ich sehe erst jetzt, dass du ASP meinst. ;D

Soweit ich das noch richtig im Kopf habe, wird bei jedem Request deine Klasse neu geparst. Das heißt, wenn du ButtonCenter_Click aufrufst wurde ButtonInit_Click in diesem neuen Request nicht aufgerufen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0