LazyInitializer.EnsureInitialized 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化目标类型(如果尚未初始化)。
重载
| 名称 | 说明 |
|---|---|
| EnsureInitialized<T>(T) |
使用该类型的无参数构造函数初始化目标引用类型(如果尚未初始化)。 |
| EnsureInitialized<T>(T, Func<T>) |
如果尚未初始化目标引用类型,则使用指定的函数初始化目标引用类型。 |
| EnsureInitialized<T>(T, Boolean, Object) |
如果尚未初始化目标引用或值类型,则使用其无参数构造函数初始化目标引用或值类型。 |
| EnsureInitialized<T>(T, Object, Func<T>) |
使用指定的函数初始化目标引用类型(如果尚未初始化)。 |
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
使用指定的函数初始化目标引用或值类型(如果尚未初始化)。 |
EnsureInitialized<T>(T)
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
使用该类型的无参数构造函数初始化目标引用类型(如果尚未初始化)。
public:
generic <typename T>
where T : class static T EnsureInitialized(T % target);
public static T EnsureInitialized<T>(ref T target) where T : class;
public static T EnsureInitialized<T>(ref T? target) where T : class;
static member EnsureInitialized : 'T -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T) As T
类型参数
- T
要初始化的引用的类型。
参数
- target
- T
对初始化的引用(如果尚未初始化)。
null如果是,则被视为未初始化;否则,它被视为已初始化。
返回
初始化的对象。
例外
缺少访问类型 T 构造函数的权限。
类型 T 没有无参数构造函数。
注解
此方法只能用于引用类型。 若要确保值类型的初始化,请参阅其他重载 EnsureInitialized。
此方法可由多个线程并发使用以初始化 target。
如果多个线程同时访问此方法,可以创建多个实例 T ,但只有一个实例将存储到 target 并返回。 在这种情况下,此方法不会释放未存储的对象。 如果必须释放此类对象,请使用重载,如果重载不引用相同的存储对象,则使用该 valueFactory 重载并释放该对象。
另请参阅
适用于
EnsureInitialized<T>(T, Func<T>)
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
如果尚未初始化目标引用类型,则使用指定的函数初始化目标引用类型。
public:
generic <typename T>
where T : class static T EnsureInitialized(T % target, Func<T> ^ valueFactory);
public static T EnsureInitialized<T>(ref T target, Func<T> valueFactory) where T : class;
public static T EnsureInitialized<T>(ref T? target, Func<T> valueFactory) where T : class;
static member EnsureInitialized : 'T * Func<'T (requires 'T : null)> -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T, valueFactory As Func(Of T)) As T
类型参数
- T
要初始化的引用的类型。
参数
- target
- T
如果尚未初始化,则对初始化的引用。
- valueFactory
- Func<T>
调用以初始化引用的函数。
返回
初始化的对象。
例外
类型 T 没有无参数构造函数。
valueFactory返回 null (Visual Basic 中无任何内容)。
注解
此方法只能用于引用类型,valueFactory可能不会返回空引用(Visual Basic中不包含任何内容)。 若要确保值类型初始化或允许 null 引用类型,请参阅 EnsureInitialized 的其他重载。
此方法可由多个线程并发使用以初始化 target。
如果多个线程同时访问此方法,可以创建多个实例,但只能将一个实例 T 存储到 target其中。 在这种情况下,此方法不会释放未存储的对象。 如果必须释放此类对象,则由调用方决定对象是否未使用,然后适当释放对象。
另请参阅
适用于
EnsureInitialized<T>(T, Boolean, Object)
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
如果尚未初始化目标引用或值类型,则使用其无参数构造函数初始化目标引用或值类型。
public:
generic <typename T>
static T EnsureInitialized(T % target, bool % initialized, System::Object ^ % syncLock);
public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object syncLock);
public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object? syncLock);
static member EnsureInitialized : 'T * bool * obj -> 'T
Public Shared Function EnsureInitialized(Of T) (ByRef target As T, ByRef initialized As Boolean, ByRef syncLock As Object) As T
类型参数
- T
要初始化的引用的类型。
参数
- target
- T
如果尚未初始化,则为要初始化的引用或值 T 。
- initialized
- Boolean
对布尔值的引用,该值确定是否已初始化目标。
- syncLock
- Object
对用作初始化的互斥锁 target的对象的引用。
syncLock如果是null,则会实例化一个新对象。
返回
初始化的对象。
例外
缺少访问类型 T 构造函数的权限。
类型 T 没有无参数构造函数。
注解
如果 initialized 指定为 true,则不会进一步初始化。
另请参阅
适用于
EnsureInitialized<T>(T, Object, Func<T>)
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
使用指定的函数初始化目标引用类型(如果尚未初始化)。
public:
generic <typename T>
where T : class static T EnsureInitialized(T % target, System::Object ^ % syncLock, Func<T> ^ valueFactory);
public static T EnsureInitialized<T>(ref T? target, ref object? syncLock, Func<T> valueFactory) where T : class;
public static T EnsureInitialized<T>(ref T target, ref object syncLock, Func<T> valueFactory) where T : class;
static member EnsureInitialized : 'T * obj * Func<'T (requires 'T : null)> -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T, ByRef syncLock As Object, valueFactory As Func(Of T)) As T
类型参数
- T
要初始化的引用的类型。
参数
- target
- T
对初始化的引用(如果尚未初始化)。
null如果是,则被视为未初始化;否则,它被视为已初始化。
- syncLock
- Object
对用作初始化的互斥锁 target的对象的引用。
syncLock如果是null,则会实例化一个新对象。
- valueFactory
- Func<T>
要调用以初始化 target的方法。
返回
初始化的对象。
适用于
EnsureInitialized<T>(T, Boolean, Object, Func<T>)
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
- Source:
- LazyInitializer.cs
使用指定的函数初始化目标引用或值类型(如果尚未初始化)。
public:
generic <typename T>
static T EnsureInitialized(T % target, bool % initialized, System::Object ^ % syncLock, Func<T> ^ valueFactory);
public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object syncLock, Func<T> valueFactory);
public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object? syncLock, Func<T> valueFactory);
static member EnsureInitialized : 'T * bool * obj * Func<'T> -> 'T
Public Shared Function EnsureInitialized(Of T) (ByRef target As T, ByRef initialized As Boolean, ByRef syncLock As Object, valueFactory As Func(Of T)) As T
类型参数
- T
要初始化的引用的类型。
参数
- target
- T
如果尚未初始化,则为要初始化的引用或值 T 。
- initialized
- Boolean
对布尔值的引用,该值确定是否已初始化目标。
- syncLock
- Object
对用作初始化的互斥锁 target的对象的引用。
syncLock如果是null,则会实例化一个新对象。
- valueFactory
- Func<T>
调用以初始化引用或值的函数。
返回
初始化的对象。
例外
缺少访问类型 T 构造函数的权限。
类型 T 没有无参数构造函数。
注解
如果 initialized 指定为 true,则不会进一步初始化。