Sobes.tech
Junior — Middle

Πώς μπορεί να οριστεί περιορισμός στον τύπο παραμέτρου σε ένα γενικό;

sobes.tech AI

Απάντηση από AI

Στην C#, ο περιορισμός τύπου παραμέτρου στα γενικά ορίζεται με τη λέξη-κλειδί where. Αυτό επιτρέπει να καθοριστεί ότι ο τύπος παραμέτρου πρέπει να κληρονομήσει από μια συγκεκριμένη κλάση, να υλοποιεί μια διεπαφή, να είναι τύπος αναφοράς ή τιμής, να έχει έναν κατασκευαστή χωρίς παραμέτρους, κ.λπ.

Παράδειγμα:

// Περιορισμός: T πρέπει να είναι μια κλάση που υλοποιεί το IDisposable και έχει έναν κατασκευαστή χωρίς παραμέτρους
public class MyClass<T> where T : class, IDisposable, new()
{
    public T CreateInstance()
    {
        return new T();
    }
}

Έτσι, ο μεταγλωττιστής διασφαλίζει ότι κατά τη χρήση της MyClass με έναν συγκεκριμένο τύπο T, αυτός πληροί τους καθορισμένους περιορισμούς.