Autor Beitrag
eddyp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Di 05.12.06 18:12 
ich habe da ein problem, was ich bisher noch nicht hatte (Umstieg auf vs2005)

ausblenden C#-Quelltext
1:
private string strComdcins = "INSERT INTO callab (adatum ) VALUES ('" + tdatuma.Text + "')";					


Fehlermeldung:

Feldinitialisierer kann nicht auf die nichtstatische Eigenschaft ... tdatuma.text verweisen...

Bisher hatte ich mit genau der gleichen Zeile nie Probleme (VS2003), was geht da nicht?


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Di 05.12.2006 um 17:23
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mi 06.12.06 00:04 
Der CSC aus 1.1 war ziemlich blöde, verglichen zu dem aus 2.0.
Er ließ einige Dinge zu, die entweder keinen Sinn machen, oder die nicht gehen können.
Eine Feldintialisierung läuft vor dem Konstruktor. Wie um alles in der Welt kann dort auf einen Member eines anderen Feldes zugegriffen werden, das erst im Konstruktor besetzt wird?
Ganz zu schweigen davon, dass Text wohl nicht das enthalten wird, was der Autor der Zeile anscheinend vorhatte.
eddyp Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 58



BeitragVerfasst: Mi 06.12.06 10:36 
leider auch wenn ich zuvor mal zum Test einen String definiere kommt diese Fehlermeldung.
ich glaube ich habe da ein problem wo ich das tue...
übrigens Text ist schon ok.

ausblenden C#-Quelltext
1:
2:
string tdata ="asia";
private string strComdcins = "INSERT INTO callab (adatum ) VALUES ('" + tdata + "')";

_________________
Grüsse, eddyp
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mi 06.12.06 11:28 
Punkt1: Die Reihenfolge der Initialisierung hat nur indirekt, wenn überhaupt[meta]bin mir da gerade nicht sicher[/meta], mit der Reihenfolge zu tun, in der die Felder im Code stehen.
Punkt2: Es muss zu diesem Zeitpunkt noch keine Referenz auf das Objekt geben, somit dürfte es ziemlich schwierig werden darauf zu zugreifen. ;)

Diese Änderung zielt nur darauf ab zu Verhindern, dass du dir unbeabsichtigt in den Fuß schießt. Du kannst das Feld problemlos im Konstruktor besetzen, selbst wenn es als readonly markiert ist.