Looking for c# Keywords? Try Ask4Keywords

C# Language Ограничения типа (класс и структура)


пример

Можно указать, должен ли тип-тип быть ссылочным типом или типом значения с использованием соответствующего class ограничений или struct . Если эти ограничения используются, они должны быть определены до того, как все остальные ограничения (например, родительский тип или new() ) могут быть перечислены.

// TRef must be a reference type, the use of Int32, Single, etc. is invalid.
// Interfaces are valid, as they are reference types
class AcceptsRefType<TRef>
    where TRef : class
{
    // TStruct must be a value type.
    public void AcceptStruct<TStruct>()
        where TStruct : struct
    {
    }

    // If multiple constraints are used along with class/struct
    // then the class or struct constraint MUST be specified first
    public void Foo<TComparableClass>()
        where TComparableClass : class, IComparable
    {
    }
}