Tja
Om jag vill använda en metod som gör att första bokstaven blir en versal fortsatt av gemener, te.x, Hej istället för hej
Hur gör jag då? Jag vill lägga in en char metod
Jag vill göra en liknande kod
public string FirstLetterToUpper(string str)
{
if (str == null)
return null;
if (str.Length > 1)
return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
}
Var tror ni är den bästa och enklaste metoden?
Min fungerar inte. Jag vill alltså att allt man skriver in ska börja på stor bokstav trots att användaren inte trycker ner shift
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace Bokhyllan
{
public class Bibliotek
{
static void Main()
{
Bokhylla bibbla = new Bokhylla();
bibbla.meny();
}
}
public class Bok
{
public static int BokNr;
public string Titel; //Sparar bokens titel
public string Skribent; //sparar bokens författare
public string Typ; //sparar bokentypen
public int Utgivningsår; //sparar utgivningsåret
public Bok(string indataTitel, string indataSkribent, string indataTyp, int indataUtgivningsår)
{
this.Titel = indataTitel; //mottagen titel tilldelas objektet indatatitel
this.Skribent = indataSkribent; //mottagen skribent tilldelas objektet indataskribent
this.Typ = indataTyp; //mottagen typ tilldelas objektet indatatyp
this.Utgivningsår = indataUtgivningsår; //mottaget utgivningsår tilldelas objektet indatautgivningsår
BokNr = BokNr + 1; // Lägger till en ny bok
}
public string GetTitel()
{
return Titel;
}
public string GetSkribent()
{
return Skribent;
}
public string GetTyp()
{
return Typ;
}
public int GetUtgivningsår()
{
return Utgivningsår;
}
public override string ToString()
{
return Titel + Skribent + Typ + Utgivningsår;
}
}
// Bokens underklasser, roman, tidskrit och novellsamling
public class Roman : Bok
{
public Roman(string indataTitel, string indataSkribent, string indataTyp, int indataUtgivningsår) : base(indataTitel, indataSkribent, indataTyp, indataUtgivningsår)
{
indataTyp = ""; //initierar en tom variabel
}
public override string ToString()
{
return base.ToString(); // returnerar override metoden och namnen på alla dess värden
}
}
public class Tidskrift : Bok
{
public Tidskrift(string indataTitel, string indataSkribent, string indataTyp, int indataUtgivningsår) : base(indataTitel, indataSkribent, indataTyp, indataUtgivningsår)
{
indataTyp = ""; // intierar en tom variabel
}
public override string ToString()
{
return base.ToString(); // returnerar override metoden och namnen på alla dess värden
}
}
public class Novellsamling : Bok
{
public Novellsamling(string indataTitel, string indataSkribent, string indataTyp, int indataUtgivningår) : base(indataTitel, indataSkribent, indataTyp, indataUtgivningår)
{
indataTyp = ""; // intitierar en tom variabel.
}
public override string ToString()
{
return base.ToString(); // returnerar override metoden och namnen på alla dess värden
}
}
public class Bokhylla
{
private List<Bok> BokLista; // En lista som innehåller alla våra böcker.
public Bokhylla()
{
BokLista = new List<Bok>();
}
public void meny()
{
string[] namn = new string[2];
Console.Write("\n\tVar god skriv in ditt förnamn: ");
namn[0] = Console.ReadLine();
Console.Write("\tVar god skriv in ditt efternamn: ");
namn[1] = Console.ReadLine(); // ReadLine väntar på användarens inmatning och används -
// för att programmet ska stanna upp.
Console.Clear(); // Rensar konsolfönstret
Console.WriteLine("\n\t---------------------------");
Console.WriteLine("\tVälkommen till biblioteket!");
Console.WriteLine("\t---------------------------");
DateTime time = DateTime.Now; // metod för dagens datum och tid.
Console.WriteLine("\tDatum: " + time.ToShortDateString()); // skriver ut endast dagens datum.
Console.WriteLine("\tTid: " + time.ToShortTimeString()); // skriver ut endast dagens tid.
DateTime currentDatetime = DateTime.Now; // Hämtar dagens tid och datum
int currentHour = currentDatetime.Hour; // initierar timmar
int startMorningHour = 6; // initierar morgon
int startAfternoonHour = 12; // initierar eftermiddag
int startEveningHour = 17; // initierar kväll
int startNightHour = 22; // initierar natt
// om morgontimmen är mindre eller lika med timman i stunden och timman är mindre än eftermiddagstimman
// så skrivs det ut God morgon [användarens namn] och så vidare.
if (startMorningHour <= currentHour && currentHour < startAfternoonHour)
{
Console.WriteLine("\n\tGod morgon" + " " + namn[0] + " " + namn[1] + "!");
}
if (startAfternoonHour <= currentHour && currentHour < startEveningHour)
{
Console.WriteLine("\n\tGod eftermiddag" + " " + namn[0] + " " + namn[1] + "!");
}
if (startEveningHour <= currentHour && currentHour < startNightHour)
{
Console.WriteLine("\n\tGod kväll" + " " + namn[0] + " " + namn[1] + "!");
}
if (startNightHour <= currentHour && currentHour < startMorningHour)
{
Console.WriteLine("\n\tGod natt" + " " + namn[0] + " " + namn[1] + "!");
}
Console.Write("\n\tVar vänlig ange en siffra mellan 1-3\n\t"); //informerar användaren om menyval
bool bokHylla = true; // Variabeln bokHylla styr vår huvudloop.
while (bokHylla)
{ // Skriver ut menyn
Console.WriteLine("\n\t[1] Registrera en ny bok");
Console.WriteLine("\t[2] Visa böcker");
Console.WriteLine("\t[3] Rensa sparade böcker");
Console.Write("\t[4] Avsluta\n\t");
int menyVal; // Deklarerar variabeln för vår switch sats.
Int32.TryParse(Console.ReadLine(), out menyVal); // Hindrar att programmet kraschar vid felaktig inmatning
{
switch (menyVal)
{
case 1:
NyBok();
FirstLetterToUpper(); <--- röd linje, CS7036
break;
case 2:
VisaBöcker(); // anropar metoden visa böcker
if (BokLista.Count == 0) // om boklistan är lika med 0
{
Console.WriteLine("\n\tDet finns inga böcker sparade, lägg in några böcker!");
}
break;
case 3:
RaderaBöcker();
if (BokLista.Count == 0) // om boklistan är lika med 0
{
Console.WriteLine("\n\tFinns inga böcker att radera!");
}
break;
case 4: // ingen nollställning av färg behövs eftersom programmet avslutas
bokHylla = false; // Variabeln är falsk och programmet avslutas.
Console.ForegroundColor = ConsoleColor.Yellow; // sätter textfärgen till gul
Console.Write("\n\tHa en strålande dag, vi ses snart igen!\n\t");
Console.ReadKey(); // väntar på att användaren ska trycka ner en tangent på taangentbordet
break;
default: //om inmatning av menyval är felaktig så informeras användaren.
Console.ForegroundColor = ConsoleColor.Red; // Ändrar textfärg till röd.
Console.WriteLine("\n\tOgiltigt val, välj mellan 1-4!");
Console.ResetColor(); // nollställer textfärg.
break; // Stänger av programmet.
}
}
}
}
private void NyBok()
{
Console.Clear(); //Rensar konsolfönstret.
Console.Write("\n\tSkriv in titel: ");
string Titel = Console.ReadLine();
Console.Write("\tSkriv in författare: ");
string Skribent = Console.ReadLine();
Console.Write("\tSkriv in Utgivningsår: ");
string UtgivÅr = Console.ReadLine();
int Utgivningsår;
do
{
bool TestUtgiv = int.TryParse(UtgivÅr, out Utgivningsår); // Kontrollerar om TestUtgiv är sann.
if (!TestUtgiv)
{
Console.ForegroundColor = ConsoleColor.Red; // Ändrar textfärg till röd.
Console.Write("\n\tFel inmatning, endast siffror!\n\t");
Console.ResetColor(); // Nollställer färgen.
UtgivÅr = Console.ReadLine();
}
else
{
Utgivningsår = int.Parse(UtgivÅr);
Console.Clear(); //Rensar konsolfönstret.
break;
}
}
while (true);
{
Console.Write("\n\tÄr boken en [1] Roman, [2] Tidskrift eller [3] Novellsamling?\t");
string Typ = Console.ReadLine();
int Val;
if (int.TryParse(Typ, out Val))
{
switch (Val)
{
case 1:
{
Bok a = new Roman(Titel, Skribent, "Roman", Utgivningsår);
BokLista.Add(a);
break;
}
case 2:
{
Bok a = new Tidskrift(Titel, Skribent, "Tidskrift", Utgivningsår);
BokLista.Add(a);
break;
}
case 3:
{
Bok a = new Novellsamling(Titel, Skribent, "Novellsamling", Utgivningsår);
BokLista.Add(a);
break;
}
default:
{
Console.ForegroundColor = ConsoleColor.Red; // Ändrar textfärg till röd.
Console.WriteLine("\tFelaktig inmatning!");
Console.ResetColor(); // Nollställer textfärg.
Thread.Sleep(1000); // återvänder till menyn efter 1 sekund
break;
}
}
}
}
}
private void VisaBöcker()
{
Console.Clear();
foreach (var boken in BokLista)
{
Console.WriteLine("\n\tTitel: {0} \n\tFörfattare: {1} \n\tTyp av bok: {2} \n\tUtgivningsår: {3}\n\t", boken.Titel, boken.Skribent, boken.Typ, boken.Utgivningsår);
}
}
private void RaderaBöcker()
{
BokLista.Clear();
}
public string FirstLetterToUpper(string str) <- här testar jag implementera den to.upper metoden
{
if (str == null)
return null;
if (str.Length > 1)
return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
}
}
}