public static TypeDefinition ManagedReference(TypeDefinition elementType) { return (elementType.HasRuntimeTypeFully() ? new TypeDefinition(elementType.ResolveRuntimeType().MakeByRefType(), elementType.ResolveRuntimeType().FullName, elementType, Flags.HasRuntimeType) : new TypeDefinition(null, elementType.TypeName, elementType, Flags.Ref)); }
public static TypeDefinition Array(TypeDefinition elementType) { return (elementType.HasRuntimeTypeFully() ? new TypeDefinition(elementType.ResolveRuntimeType().MakeArrayType(), elementType.ResolveRuntimeType().FullName + "[]", elementType, Flags.HasRuntimeType) : new TypeDefinition(null, elementType.TypeName, elementType, Flags.Array)); }
internal static Type GetResolvedDelegateType( TypeDefinition returnType, TypeDefinition[] parameterTypes ) { var typeDefinition = FindDelegateType( returnType, parameterTypes ); return returnType.TryGetRuntimeType() == typeof( void ) ? parameterTypes.Length == 0 ? typeDefinition : typeDefinition.MakeGenericType( parameterTypes.Select( t => t.ResolveRuntimeType() ).ToArray() ) : typeDefinition.MakeGenericType( parameterTypes.Select( t => t.ResolveRuntimeType() ).Concat( new[] { returnType.ResolveRuntimeType() } ).ToArray() ); }
internal static Type GetResolvedDelegateType(TypeDefinition returnType, TypeDefinition[] parameterTypes) { var typeDefinition = FindDelegateType(returnType, parameterTypes); return (returnType.TryGetRuntimeType() == typeof(void) ? parameterTypes.Length == 0 ? typeDefinition : typeDefinition.MakeGenericType(parameterTypes.Select(t => t.ResolveRuntimeType()).ToArray()) : typeDefinition.MakeGenericType(parameterTypes.Select(t => t.ResolveRuntimeType()).Concat(new[] { returnType.ResolveRuntimeType() }).ToArray())); }
public static TypeDefinition ManagedReference( TypeDefinition elementType ) { return elementType.HasRuntimeTypeFully() ? new TypeDefinition( elementType.ResolveRuntimeType().MakeByRefType(), elementType.ResolveRuntimeType().FullName, elementType, Flags.HasRuntimeType ) : new TypeDefinition( null, elementType.TypeName, elementType, Flags.Ref ); }
public static TypeDefinition Array( TypeDefinition elementType ) { return elementType.HasRuntimeTypeFully() ? new TypeDefinition( elementType.ResolveRuntimeType().MakeArrayType(), elementType.ResolveRuntimeType().FullName + "[]", elementType, Flags.HasRuntimeType ) : new TypeDefinition( null, elementType.TypeName, elementType, Flags.Array ); }