Open sandboxFocus

Interface IType

Represents a constructed type, for instance an array, a generic type instance, a pointer. A class, struct, enum or delegate are represented as an INamedType, which derive from IType.

Namespace: Metalama.Framework.Code
Assembly: Metalama.Framework.dll
Syntax
[CompileTime]
public interface IType : ICompilationElement, IDisplayable, IEquatable<IType>
Remarks

The IType interface implements IEquatable<T>. The implementation uses the Default comparer. To use a different comparer, choose a different comparer from IDeclaration.Compilation.Comparers. You can also use Equals(IType?, TypeComparison) and specify a TypeComparison.

Properties

Name Description
IsNullable

Gets the nullability of the type, or null if the type is a reference type but its nullability has not been analyzed or specified. This property returns false for normal value types and true for the Nullable<T> type. Note that in case of nullable value types, the current type represents the Nullable<T> type itself, and the inner value type is exposed as UnderlyingType.

IsReferenceType

Gets a value indicating whether the type is a reference type. If the type is a generic parameter without a struct, class or similar constraint, this property evaluates to null.

SpecialType

Gets the SpecialType enumeration value for the current type. Provides a fast way to determine whether the current type is of a well-known type.

TypeKind

Gets the kind of type.

Methods

Name Description
Equals(IType?, TypeComparison)
Equals(SpecialType)

Determines whether the current type is equal to a well-known special type.

Equals(Type?, TypeComparison)
MakeArrayType(int)

Creates an array type whose element type is the current type.

MakePointerType()

Creates a pointer type pointing at the current type.

ToNonNullable()

Returns the non-nullable type from the current IType. If the current type is a non-nullable reference type, returns the current type. If the current type is a Nullable<T>, i.e. a nullable value type, returns the underlying type.

ToNullable()

Creates a nullable type from the current IType. If the current type is already nullable, returns the current type. If the type is a value type, returns a Nullable<T> of this type.

ToRef()
ToType()

Gets a reflection Type that represents the current type at run time.

Extension Methods

See Also