"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LazyMember = void 0;
class LazyMember {
    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="initializationDelegate">The initialization delegate to call for the item on first access
    /// </param>
    constructor(initializationDelegate) {
        this.initialized = false;
        this.initializationDelegate = initializationDelegate;
    }
    get Member() {
        if (!this.initialized) {
            //lock(this.lockObject)
            //{
            if (!this.initialized) {
                this.lazyMember = this.initializationDelegate();
            }
            this.initialized = true;
            //}
        }
        return this.lazyMember;
    }
}
exports.LazyMember = LazyMember;
//# sourceMappingURL=LazyMember.js.map