Martita Napisano Listopad 15, 2021 Zgłoś Udostępnij Napisano Listopad 15, 2021 Szukałam i nie znalazłam Jak odwołać się z konstruktora klasy Osoba do konstruktora klasy Adres? Wyskakuje mi błąd w klasie Osoba, z którym nie wiem jak sobie poradzić. Już drugi tydzień się z tym męczę. Proszę o pomoc i wytłumaczenie. Nie mogę zastosować get, sat i nie mogę zmieniać kodu w klasie Program. W klasie Osoba i Adres wszystkie nazwy muszą pozostać takie jakie są. Kod trzeba przerobić tak aby efekt końcowy był jak na obrazku. Klasa Osoba using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Osoba { private int numerEwidencyjny; private string nazwisko; private string imie; Adres adres; public Osoba(int numerEwidencyjny, string nazwisko, string imie, Adres adres) { this.numerEwidencyjny = numerEwidencyjny; this.nazwisko = nazwisko; this.imie = imie; this.adres = adres; } public Osoba(int numerEwidencyjny, string imie, int numerDomu) : this(numerEwidencyjny, "Kowalski", imie, "02-222", "Warszawa", "Aleje Jerozolimskie", numerDomu, 0) { } public Osoba(ref Osoba osoba) { numerEwidencyjny = osoba.numerEwidencyjny; nazwisko = osoba.nazwisko; imie = osoba.imie; adres = osoba.adres; } public string ZwrocKod() { return adres.kod; } public string ZwrocMiejscowosc() { return adres.miejscowosc; } public string ZwrocNazweUlicy() { return adres.nazwaUlicy; } public int ZwrocNumerDomu() { return adres.numerDomu; } public int ZwrocNumerMieszkania() { return adres.numerMieszkania; } public string ZwrocInformacjeOsobowe() { return string.Format("\n Pan(i) {0} {1} o numerze ewidencyjnym: {2} zamieszkały(a): {3} {4} {5}", nazwisko, imie, numerEwidencyjny, ZwrocKod(), ZwrocMiejscowosc(), ZwrocNazweUlicy() + " " + ZwrocNumerDomu() + " m" + ZwrocNumerMieszkania()); } public void ZmienDaneOsobowe() { Console.Write("Podaj imię: "); imie = Console.ReadLine(); Console.Write("Podaj nazwisko: "); nazwisko = Console.ReadLine(); do { Console.Write("Podaj numer ewidencyjny: "); } while (!int.TryParse(Console.ReadLine(), out numerEwidencyjny)); } public void ZmienAdres() { Console.Write("Podaj kod: "); adres.kod = Console.ReadLine(); Console.Write("Podaj nazwę miejscowści: "); adres.miejscowosc = Console.ReadLine(); Console.Write("Podaj nazwę ulicy "); adres.nazwaUlicy = Console.ReadLine(); do { Console.Write("Podaj numer domu: "); } while (!int.TryParse(Console.ReadLine(), out adres.numerDomu)); Console.Write("Czy jest numer mieszkania <t/n>: "); char c = Console.ReadKey().KeyChar; if (c == 't') { Console.WriteLine(); do { Console.Write("Podaj numer meszkania: "); } while (!int.TryParse(Console.ReadLine(), out adres.numerMieszkania)); } else { adres.numerMieszkania = 0; } } public Osoba Klonuj() { return (Osoba)this.MemberwiseClone(); } } } Klasa Adres using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Adres { public string kod; public string miejscowosc; public string nazwaUlicy; public int numerDomu; public int numerMieszkania; public Adres(string kod, string miejscowosc, string nazwaUlicy, int numerDomu, int numerMieszkania) { this.kod = kod; this.miejscowosc = miejscowosc; this.nazwaUlicy = nazwaUlicy; this.numerDomu = numerDomu; this.numerMieszkania = numerMieszkania; } public Adres(ref Adres adres) { kod = adres.kod; miejscowosc = adres.miejscowosc; nazwaUlicy = adres.nazwaUlicy; numerDomu = adres.numerDomu; numerMieszkania = adres.numerMieszkania; } } } Klasa Program using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kadry { public class Program { static void Main(string[] args) { Osoba os1 = new Osoba(5, "Ola", 43); Console.WriteLine(" Oryginał {0}", os1.ZwrocInformacjeOsobowe()); Console.WriteLine("\n***Zmieniamy klon:***\n"); Osoba klon1 = os1.Klonuj(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); klon1.ZmienDaneOsobowe(); klon1.ZmienAdres(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); Osoba os3 = new Osoba(ref os1); Console.WriteLine(" Oryginał {0}", os3.ZwrocInformacjeOsobowe()); Console.WriteLine("\n***Zmieniamy klon:***\n"); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); klon1.ZmienDaneOsobowe(); klon1.ZmienAdres(); Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe()); Console.ReadKey(); } } } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.