private JednostkaRejestrowa(string teryt, string obreb, string numer) { Kontrakt.requires(!String.IsNullOrEmpty(teryt), "Numer teryt jednostki rejestrowej jest pusty."); Kontrakt.requires(!String.IsNullOrEmpty(obreb), "Numer obrębu jednostki rejestrowej jest pusty."); Kontrakt.requires(teryt.Length.Equals(8), "Numer teryt jednostki rejestrowej jest nieprawidłowy: " + teryt); Kontrakt.requires(obreb.Length.Equals(4), "Numer obrębu jednostki rejestrowej jest nieprawidłowy: " + obreb); Kontrakt.requires(!String.IsNullOrEmpty(numer), "Numer jednostki rejestrowej jest pusty."); Kontrakt.requires(numer.StartsWith("G") || numer.StartsWith("B") || numer.StartsWith("L"), "Numer jednostki rejestrowej nie zaczyna się od G, B lub L: " + teryt + "." + obreb + "." + numer); Kontrakt.forAll(numer.Substring(2), char.IsDigit); //Numer jednostki rejestrowej powinien zawierać cyfry _teryt = teryt; _obreb = obreb; _numer = numer; Kontrakt.ensures(teryt.Equals(_teryt)); Kontrakt.ensures(obreb.Equals(_obreb)); Kontrakt.ensures(numer.Equals(_numer)); }