Table of Contents

Class FastActivator<TResult>

Namespace
FishMMO.Shared
Assembly
FishMMO-SharedUtility.dll

A faster alternative to Activator.CreateInstance

The 17 constructor overloads (0 through 16 arguments) are intentionally copy-pasted rather than unified behind IReadOnlyList<object?>. This eliminates boxing/allocation of value-type arguments and avoids the per-call array or list allocation that a params-style API would require, keeping construction as close to raw "new" as possible.

public static class FastActivator<TResult> where TResult : class

Type Parameters

TResult
Inheritance
FastActivator<TResult>
Inherited Members

Methods

CreateInstance()

public static TResult CreateInstance()

Returns

TResult

CreateInstance<TArg>(TArg)

public static TResult CreateInstance<TArg>(TArg arg)

Parameters

arg TArg

Returns

TResult

Type Parameters

TArg

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11
arg12 TArg12

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11
TArg12

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11
arg12 TArg12
arg13 TArg13

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11
TArg12
TArg13

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11
arg12 TArg12
arg13 TArg13
arg14 TArg14

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11
TArg12
TArg13
TArg14

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14, TArg15 arg15)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11
arg12 TArg12
arg13 TArg13
arg14 TArg14
arg15 TArg15

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11
TArg12
TArg13
TArg14
TArg15

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9, TArg10 arg10, TArg11 arg11, TArg12 arg12, TArg13 arg13, TArg14 arg14, TArg15 arg15, TArg16 arg16)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9
arg10 TArg10
arg11 TArg11
arg12 TArg12
arg13 TArg13
arg14 TArg14
arg15 TArg15
arg16 TArg16

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9
TArg10
TArg11
TArg12
TArg13
TArg14
TArg15
TArg16

CreateInstance<TArg1, TArg2>(TArg1, TArg2)

public static TResult CreateInstance<TArg1, TArg2>(TArg1 arg1, TArg2 arg2)

Parameters

arg1 TArg1
arg2 TArg2

Returns

TResult

Type Parameters

TArg1
TArg2

CreateInstance<TArg1, TArg2, TArg3>(TArg1, TArg2, TArg3)

public static TResult CreateInstance<TArg1, TArg2, TArg3>(TArg1 arg1, TArg2 arg2, TArg3 arg3)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3

CreateInstance<TArg1, TArg2, TArg3, TArg4>(TArg1, TArg2, TArg3, TArg4)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5>(TArg1, TArg2, TArg3, TArg4, TArg5)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8

CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9>(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9)

public static TResult CreateInstance<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8, TArg9 arg9)

Parameters

arg1 TArg1
arg2 TArg2
arg3 TArg3
arg4 TArg4
arg5 TArg5
arg6 TArg6
arg7 TArg7
arg8 TArg8
arg9 TArg9

Returns

TResult

Type Parameters

TArg1
TArg2
TArg3
TArg4
TArg5
TArg6
TArg7
TArg8
TArg9