Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EnsureInitializedCore<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] T >() [1/2]

static T System.Threading.LazyInitializer.EnsureInitializedCore<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] T > ( [AllowNull] ref T target,
ref bool initialized,
[NotNull] ref object syncLock )
inlinestaticprivate

Definition at line 50 of file LazyInitializer.cs.

51 {
52 lock (EnsureLockInitialized(ref syncLock))
53 {
54 if (!Volatile.Read(ref initialized))
55 {
56 try
57 {
58 target = Activator.CreateInstance<T>();
59 }
60 catch (MissingMethodException)
61 {
62 throw new MissingMemberException(SR.Lazy_CreateValue_NoParameterlessCtorForT);
63 }
64 Volatile.Write(ref initialized, value: true);
65 }
66 }
67 return target;
68 }
static object EnsureLockInitialized([NotNull] ref object syncLock)

References System.Activator.CreateInstance(), System.Threading.LazyInitializer.EnsureLockInitialized(), System.SR.Lazy_CreateValue_NoParameterlessCtorForT, System.Threading.Volatile.Read(), System.value, and System.Threading.Volatile.Write().