Announcement

Collapse
No announcement yet.

Problem mit Codegenerierung in VS 2005

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Codegenerierung in VS 2005

    Hallo !
    Durch die Umstellung von VS2003 auf VS2005 hat sich bei mir ein Problem ergeben, weil VS2005 anderen Code für die gleiche Komponente erstellt.

    Im konkreten Fall handelt sich um eine selbst erstellte Komponente welche die IExtenderProvider - Schnittstelle implementiert.

    Alle Controls kriegen dadurch eine Eigenschaft von diesem Provider verpaßt (im Beispiel "theparameter").

    VS 2003 generierte folgenden Code für die Komponente:

    this.theProvider.Settheparameter(this.test1, new theparameter(new object[] {this.test1
    "Control4ParameterName",
    null,
    "LogTable",
    "TestTable"
    }));

    und nun der VS2005 generierte Code

    this.theProvider.Settheparameter(this.test1, new theparameter(new object[] {this.test1
    ((object)("Control4ParameterName")),
    ((object)(null)),
    ((object)("LogTable"),
    ((object)("TestTable")
    }));

    Wie man sehen kann wird in VS 2005 jedesmal ein Cast auf object gemacht. Dies führt genau in der Zeile "((object)(null))" zu einer Exception. Diese Eigenschaft ist vom Typ Control und kann auch den Wert null annehmen.

    Meine Frage ist nun, ob ich dem Designer in VS2005 irgendwie beibringen kann auf diese unnötigen TypeCasts zu verzichten (so wie es VS2003 ja auch macht).

    Vielen Dank im Voraus

  • #2
    Hallo Andreas,

    ich glaube nicht, dass Du auf dieses TypeCasts verzichten kannst.

    Es ist normal, dass Du einen Fehler bei "((object)(null))" bekommst. Weil da gibts zu viel Klammern. Die anderen haben kein Problem, weil sie in string sind!

    Einfach für null wäre (object)null gewesen!

    Aber das ist auch nicht vernünftig, dass Du so schreibst.

    Besser wäre, dass Du ein null-object deklarierst:

    C#:
    object nullObj = null;
    VB:
    Dim nullObj As Object
    nullObj = null;

    Damit braucht man kein casting mehr.

    Grüße
    Guin

    Comment

    Working...
    X