public SystemMemory(Address address, long timestamp, long used, long available, long? max = null) { Address = address; Timestamp = timestamp; Used = used; Available = available; Max = max; if (!(used > 0L)) throw new ArgumentOutOfRangeException("used", "CLR heap memory expected to be > 0 bytes"); if (Max.HasValue && !(Max.Value > 0)) throw new ArgumentOutOfRangeException("max", "system max memory expected to be > 0 bytes"); }