using System.Security.Cryptography;
public static void Main()
Child c1 = new Child(), c2 = new Child();
Console.WriteLine("c1.ageInYears: {0}, c2.ageInYears: {1}", c1.ageInYears, c2.ageInYears);
Console.WriteLine("c1.ageInYears: {0}, c2.ageInYears: {1}", c1.ageInYears, c2.ageInYears);
Console.WriteLine("c1.ageInYears: {0}, c2.ageInYears: {1}", c1.ageInYears, c2.ageInYears);
public abstract class Parent
public abstract float ageInYears{get;}
public class Child : Parent
private static Random _random;
private float _ageInYears;
public override float ageInYears { get { return _ageInYears; } }
var cryptoResult = new byte[4];
new RNGCryptoServiceProvider().GetBytes(cryptoResult);
int seed = BitConverter.ToInt32(cryptoResult, 0);
_random = new Random(seed);
_ageInYears = (float)_random.NextDouble() * 10f;