Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

 

  • Autor

@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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.