Forum » Programiranje » [c#] Napačen izpis -- prazni stringi
[c#] Napačen izpis -- prazni stringi
Cvenemir ::
Besedilo naloge:
Izdelajte razred Študent, ki vsebuje podatke o imenu, priimku in vpisni številki. Implementiraje tudi metode za vpis in izpis podatkov študenta.
Napisal sem sledečo kodo. Problem se pojavi pri izpisu. Vedno mi izpiše prazne stringe. Kakšen namig?
Izdelajte razred Študent, ki vsebuje podatke o imenu, priimku in vpisni številki. Implementiraje tudi metode za vpis in izpis podatkov študenta.
Napisal sem sledečo kodo. Problem se pojavi pri izpisu. Vedno mi izpiše prazne stringe. Kakšen namig?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace R1_študent { //Ustvarimo razred student public class student { //Definiramo objekte razreda public string ime; public string priimek; public string vpisnaStevilka; //Definiramo začetne vrednosti objektov public student() { ime = " "; priimek = " "; vpisnaStevilka = " "; } public student(string ime, string priimek, string vpisnaStevilka) { this.ime = ime; this.priimek = priimek; this.vpisnaStevilka = vpisnaStevilka; } //Metoda za vpis podatkov o študentu public void vpisiPodatke(string ime, string priimek, string vpisnaStevilka) { Console.WriteLine("Vnesite ime študenta: "); ime = Console.ReadLine(); Console.WriteLine("Vnesite priimek študenta: "); priimek = Console.ReadLine(); Console.WriteLine("Vnesite vpisno številko študenta: "); vpisnaStevilka = Console.ReadLine(); } //Metoda za izpis podatkov o študentu public void izpisiPodatke() { Console.WriteLine("Podatki študenta so: Ime: {0} --- Priimek: {1} --- Vpisna številka: {2}", ime, priimek, vpisnaStevilka); } } class Program { static void Main(string[] args) { //Ustvarimo objekt student1 student student1 = new student(); //Pokličemo metodo za vpis podatkov string ime ="", priimek ="", vpisnaStevilka =""; student1.vpisiPodatke(ime, priimek, vpisnaStevilka); //Prikažemo rezultate //Console.WriteLine("Podatki študenta so: "); student1.izpisiPodatke(); Console.ReadKey(true); } } }
Cvenemir ::
Nekaj jim moram pripisati, drugače mi javi napako "Use of unassigned local variable..."
Na primer tako
Na primer tako
string ime, priimek, vpisnaStevilka; student1.vpisiPodatke(ime, priimek, vpisnaStevilka);
TheDomingo ::
Se opravičujem. Sem samo na hitro pregledal kodo.
Metodo za vpis študentov lahko spremeniš na ta način:
Metodo za vpis študentov lahko spremeniš na ta način:
//Metoda za vpis podatkov o študentu public void vpisiPodatke() { Console.WriteLine("Vnesite ime študenta: "); this.ime = Console.ReadLine(); Console.WriteLine("Vnesite priimek študenta: "); this.priimek = Console.ReadLine(); Console.WriteLine("Vnesite vpisno številko študenta: "); this.vpisnaStevilka = Console.ReadLine(); }
Zgodovina sprememb…
- spremenil: TheDomingo ()
Spura ::
TheDomingo je izjavil:
Težava je v 57. vrstici kode, kjer spremenljivkam prirediš prazne nize.
To ni res. Poglej:
V funkciji vpisiPodatke on shrani vpisane podatke v lokalne spremenljivke, ki so bile podane. On NE SHRANI vpisov v instance variable, ki imajo isto ime kot lokalne variable. Ko se funkcija zakljuci ima objekt notri tiste nize, ki jih je naredil konstruktor brez parametra, to so pa spacei, ne prazni nizi.
Cvenemir:
public student() { ime = " ";Nastavljas instance variablo.
public void vpisiPodatke(string ime, string priimek, string vpisnaStevilka) { Console.WriteLine("Vnesite ime študenta: "); ime = Console.ReadLine();Nastavljas lokalno spremenljivko od funkcije.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Evidenca osebOddelek: Programiranje | 1160 (845) | DaMachk |
» | [C#] DeserializacijaOddelek: Programiranje | 1866 (1469) | Cvenemir |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1665 (1610) | Cvenemir |
» | c sharp LinkedList - NalogaOddelek: Programiranje | 1862 (1813) | Msatir |
» | [C#] Kopiranje osebe iz seznama v drug seznamOddelek: Programiranje | 1503 (1364) | Presidente |