Jump to content
Melde dich an, um diesem Inhalt zu folgen  

C# Nullable Dynamic Type

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

Diesen Beitrag teilen


Link zum Beitrag
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();
}

 

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung