Bagikan melalui


Lazy<T>.IsValueCreated Properti

Definisi

Mendapatkan nilai yang menunjukkan apakah nilai telah dibuat untuk instans ini Lazy<T> .

public:
 property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean

Nilai Properti

true jika nilai telah dibuat untuk instans ini Lazy<T> ; jika tidak, false.

Keterangan

Ketika inisialisasi malas terjadi untuk Lazy<T> instans, itu dapat mengakibatkan nilai dibuat atau pengecualian dilemparkan. Jika pengecualian dilemparkan, perilaku Lazy<T> instans berikutnya tergantung pada apakah penembolokan pengecualian berlaku. Lazy<T> Jika instans dibuat dengan menggunakan konstruktor yang tidak menentukan fungsi inisialisasi, maka penembolokan pengecualian tidak berlaku. Upaya berikutnya untuk menginisialisasi Lazy<T> mungkin berhasil, dan setelah berhasil menginisialisasi IsValueCreated properti mengembalikan true. Lazy<T> Jika instans dibuat dengan fungsi inisialisasi (ditentukan oleh valueFactory parameter Lazy<T> konstruktor), maka penembolokan pengecualian dikendalikan oleh mode keamanan utas.

  • Jika mode adalah LazyThreadSafetyMode.ExecutionAndPublication atau LazyThreadSafetyMode.None, tidak ada kesempatan kedua untuk menginisialisasi Lazy<T> instans. Jika pengecualian terjadi dan tidak tertangani dalam fungsi inisialisasi, pengecualian tersebut di-cache dan ditumbuhi kembali pada akses Lazy<T>.Value properti berikutnya. Tidak ada nilai yang dibuat jika pengecualian dilemparkan, jadi dalam kasus IsValueCreated seperti itu mengembalikan false.

  • Jika mode adalah LazyThreadSafetyMode.PublicationOnly, utas pertama yang berhasil menjalankan fungsi inisialisasi (atau konstruktor tanpa parameter) membuat nilai untuk Lazy<T> instans. Jika fungsi inisialisasi melemparkan pengecualian pada satu utas, utas lain masih dapat mencoba menginisialisasi Lazy<T> instans. Hingga nilai dibuat, IsValueCreated properti mengembalikan false.

Berlaku untuk

Lihat juga