2 svar
211 visningar
Realme 1
Postad: 3 jun 2019 12:24

Kommentera i underklasser

Hej,

 

Jag vill få text utskrivet men förstår inte varför jag inte kan få en fråga "skriv titel" eller "författare"

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Bok
{
    public string Typ;
    public string Titel;
    public string Författare;
    public Bok(string indataTyp, string indataTitel, string indataFörfattare)
    {
       
        Typ = indataTyp;
        Titel = indataTitel;
        Författare = indataFörfattare;
        Console.WriteLine("Hej");
    }
}
    public class Märke : Bok
{
    public string Modell;
    public Märke(string indataTyp, string indataTitel, string indataFörfattare) :
        base (indataTyp, indataTitel, indataFörfattare)
    {
        Modell = "Volvo";
        Console.WriteLine("Hej");
    }
}
class program
{
    static void Main(string[]args)
    {
        List<string> Listan = new List<string>();
        Märke minMärke = new Märke("Boktypen är: " + Console.ReadLine(),"Titeln är: " + Console.ReadLine(),"Författaren är: " + Console.ReadLine());
        Listan.Add(minMärke.Typ);
        Listan.Add(minMärke.Titel);
        Console.WriteLine(minMärke.Modell);
        Listan.Add(minMärke.Författare);
       
        foreach(string item in Listan)
        {
            Console.WriteLine(item);
        }
        Console.ReadKey();
           
    }
}

Euclid 567
Postad: 7 jun 2019 18:33

Märke minMärke = new Märke("Boktypen är: " + Console.ReadLine(),"Titeln är: " + Console.ReadLine(),"Författaren är: " + Console.ReadLine());

Den här raden hanterar all input till ditt program och här skrivs ingenting ut som en fråga till användaren av programmet.

Det är ett antal saker som du bör tänka på:

  1. Använd inte svenska namn på variabler, speciellt inte sådana med "åäö" - enbart engelska
  2. Plocka bort referenser till assemblies som inte används (System.Linq, System.Threading.Tasks)
  3. När du ska hantera input till ett program så gör det i form av:

Console.Write("Ange boktyp: ");
string bookType = Console.ReadLine();
Console.Write("Ange boktitel: ");
string bookTitle = Console.ReadLine();
Console.Write("Ange bokförfattare: ");
string bookAuthor = Console.ReadLine();
Märke minMärke = new Märke("Boktypen är: " + bookType,"Titeln är: " + bookTitle,"Författaren är: " + bookAuthor);

Peter 966
Postad: 8 jun 2019 11:49

Precis som Euclid säger så finns det inga utskriftssatser i ditt program. I alla fall inte där du vill ha ut dina frågor. All inläsning sker i anropet av konstruktorn till klassen Märke.

Däremot håller jag inte med om att man ska undvika svenska. .NET har ett utmärkt stöd för t.ex. svenska. Så är det inte för alla programmeringsspråk. Det finns flera arbetsgivare där det är standard att använda svenska variabelnamn. Men i dagens globaliserade värld så finns det nackdelar med att göra det. Alla förstår dem inte.

Sen tror jag att det finns viktigare saker att fokusera på i en grundkurs i programmering än vilka using-satser man har. Dessutom finns det hjälpmedel som tar bort dem åt en.

Svara Avbryt
Close