Ich konnte ein ähnliches Verhalten reproduzieren, das aber nur auftritt, wenn ich bei IsNullOrEmpty den zweiten Parameter explizit mit true angebe. Ohne den zweiten Parameter funktioniert das bei mir. Ist das bei dir auch so, d. h. sehe ich den gleichen Effekt wie du ?
Könntest du einmal versuchen, in deiner Designerfunktion explizit den Rückgabewert auf das zu setzen, was auch wirklich geliefert wird? Die Funktion selber kann weiter LlParamType.All als Typ haben, aber im EvaluateFunction-Event sollte dann der korrekte, jeweils sich ergebende Typ gesetzt werden, bei meiner simplen Testfunktion sieht das so aus:
Hintergrund: andernfalls versucht List & Label beim Trimmen (was durch den zweiten Parameter ausgelöst wird), aus dem undefinierten Typen einen String zu machen und läuft zunächst in eine Zahlenkonvertierung, die “0” als neuen Inhalt ergibt. Durch das korrekte Setzen des Typs passiert das nicht.
Die Funktion kann in anderen Fällen auch Zahlen, Boolesche Werte usw. zurückliefern, sie muss aber über e.ResultType mitteilen, welcher Typ es denn jetzt tatsächlich ist. Wir könnten das natürlich gelegentlich noch verbessern und den Typen anhand des übergebenen Objekts direkt erkennen, für die schnelle Lösung sollte das oben aber genügen.
Vielen Dank. Das scheint soweit zu funktionieren. In diesem Zusammenhang aber noch folgende Frage:
Was für einen Typ setze ich, wenn ich null zurückliefere? String?
Viele Grüsse, Thomas
Prima, das freut mich . Zur weiteren Frage: Das dürfte fast egal sein, da die NULL-Evaluation vor der - hier - schädlichen Typenkonvertierung erfolgt. String wäre also auch in diesem Fall passend.