Zum Inhalt springen

C# Nullable Dynamic Type


jasso

Empfohlene Beiträge

Hallo,

ich möchte aktuell in einer Typisierten Klasse (bzw. erstmal im Interface) einen Typ als Nullable definieren.

Geht das überhaupt? Ich kann leider nichts dazu finden.

    public interface IBaseElement<T>
    {
        void InsertOrUpdate(T? givenDBElement = null);
    }

ist leider nicht erlaubt da T per se mal nicht nullable ist.

Ich hätte auch versucht etwas wie 

    public interface IBaseElement<T> where T : Nullable
    {
        void InsertOrUpdate(T? givenDBElement = null);
    }

zu verwenden, aber auch das akzeptiert mir der Compiler nicht.

Danke
LG
Jasso

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du damit leben kannst, nur Klassen als generischen Typ zu nutzen kannst du das mit

public interface IBaseElement<T> where T : class

machen - die sind dann auch nullable.

Wenn das auch für structs funktionieren soll, kommst du kaum um Runtime-Checks herum, sowas wie das hier:

if(Nullable.GetUnderlyingType(typeof(T)) != null)
{
    "Nullable!".Dump();
}
else if(typeof(T).IsValueType)
{
    "struct".Dump();
}
else
{
    "class".Dump();
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

@arlegermi:  "nur Klassen" würde mir vollkommen reichen.
Leider funktioniert es damit ebenfalls nicht.
Mit ...

    public interface IBlub<T> where T : class
    {
        void InsertOrUpdate(T? givenDBElement = null);
    }

… bekomme lediglich vom Compiler die Meldung:

Zitat

Der Typ "T" darf keine NULL-Werte zulassen, wenn er als T-Parameter im generischen Typ oder in der generischen Methode "Nullable<T>" verwendet werden soll.

@KeeperOfCoffe: Danke fürs nachgoogeln. Die Ergebnisse habe ich bereits gefunden. Helfen mir nur in meinem konkreten Fall leider nicht weiter.

Danke
LG
Jasso

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...