public SamplerState(ISampleSelector sampler) { SampleSelectorType = sampler.GetType().Name; StratumCode = sampler.StratumCode; SampleGroupCode = sampler.SampleGroupCode; Counter = sampler.Count; InsuranceCounter = sampler.InsuranceCounter; InsuranceIndex = sampler.InsuranceIndex; var samplerName = sampler.GetType().Name; switch (samplerName) { case "SystematicSelecter": { SystematicIndex = ((SystematicSelecter)sampler).HitIndex; break; } case "BlockSelecter": { BlockState = ((BlockSelecter)sampler).BlockState; break; } case "ThreePSelecter": { break; } case "S3PSelector": { BlockState = ((S3PSelector)sampler).BlockState; break; } } }
public SamplerState(ISampleSelector sampler) { if (sampler is null) { throw new System.ArgumentNullException(nameof(sampler)); } SampleSelectorType = sampler.GetType().Name; StratumCode = sampler.StratumCode; SampleGroupCode = sampler.SampleGroupCode; Counter = sampler.Count; InsuranceCounter = sampler.InsuranceCounter; InsuranceIndex = sampler.InsuranceIndex; switch (sampler) { case SystematicSelecter s: { SystematicIndex = s.HitIndex; break; } case BlockSelecter b: { BlockState = b.BlockState; break; } case ThreePSelecter s: { break; } case S3PSelector s: { BlockState = s.BlockState; break; } } }