/// <summary> /// Malo o pripravi nizov za izpis /// </summary> static void PrepareOutputs() { const int n = 22; // Klic funkcije iz drugega razreda int primes = MyStaticFunctions.CountPrimes(n); // Običajen izpis Console.WriteLine(); Console.WriteLine("Običajen izpis z združevanjem:"); Console.WriteLine("\tŠtevilo praštevil med 1 in " + n + " je " + primes + "."); Console.WriteLine("ali s parametrizacijo:"); Console.WriteLine("\tŠtevilo praštevil med 1 in {0} je {1}.", n, primes); // Interpolacija nizov - https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated Console.WriteLine(); Console.WriteLine("Izpis z interpolacijo"); // Pri interpolaciji pred nizom zapišemo znak $ Console.WriteLine($"\tŠtevilo praštevil med 1 in {n} je {primes}."); // Pri interpolaciji imamo še dodatne možnosti, npr. zamike Console.WriteLine(); Console.WriteLine("Zamiki pri interpolaciji"); // Zamik pomeni, da zapis zasede vsaj toliko znakov, kot določimo za vejico // Negativna vrednost pomeni levo poravnavo, pozitivna desno Console.WriteLine($"\t|{"Ime in priimek",-20}|{"Ocena",6}|"); Console.WriteLine($"\t|{"Borut Lužar",-20}|{"6 ",6}|"); Console.WriteLine(); Console.WriteLine("Določanje formata izpisa pri interpolaciji"); // Določamo lahko tudi format izpisa, ki ga zapišemo za dvopičjem Console.WriteLine($"\t|{"Ime in priimek",-20}|{"Ocena",6}|{"Datum opravljanja",-20}|"); Console.WriteLine($"\t|{"Borut Lužar",-20}|{"6 ",6}|{DateTime.Now,-20:d. M. yyyy}|"); }
static void Main(string[] args) { // Poženemo primer glede na izbrano sekcijo // Namesto funkcije ChooseExampleSection uporabimo bolj splošno generično funkcijo ChooseSection, // ki smo jo pripravili v razredni knjižnici (class library) in izpiše možne vrednosti za // poljubno enumeracijo. switch (/*ChooseExampleSection()*/ InterfaceFunctions.ChooseSection <IntroductorySections>()) { case IntroductorySections.HelloWorld: { // V tem primeru si ogledamo preprosto metodo, ki naredi izpis v konzolo HelloWorld(); } break; case IntroductorySections.CountingPrimes: { // V tem primeru si ogledamo glavno sintakso C# (zanke, izbirne stavke) int numPrimes = MyStaticFunctions.CountPrimes(20); Console.WriteLine(numPrimes); } break; case IntroductorySections.PreparingOutputs: { // V tem primeru si ogledamo možnosti izpisa z uporabo interpolacije PrepareOutputs(); } break; case IntroductorySections.CountingPrimesWithOut: { // V tem primeru si ogledamo vračanje vrednosti z uporabo določila out int upToNumber = 90; int numPrimes = MyStaticFunctions.CountPrimes(upToNumber, out int largest); Console.WriteLine($"Od 1 do {upToNumber} je {numPrimes} praštevil, največje pa je {largest}."); } break; case IntroductorySections.CountingPrimesAndTuples: { // V tem primeru si ogledamo vračanje vrednosti s pomočja strukture Tuple // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-tuples int upToNumber = 20; (int numPrimes, int largest) = MyStaticFunctions.CountPrimesAndFindLargest(upToNumber); Console.WriteLine($"Od 1 do {upToNumber} je {numPrimes} praštevil, največje pa je {largest}."); } break; case IntroductorySections.RandomLists: { // V tem primeru si ogledamo // - generiranje naključnih števil // - uporabo seznamov // - uporabo neobveznih parametrov // - uporabo lambda izrazov (k njim se vrnemo še kasneje) List <int> lstRnd = MyStaticFunctions.MakeRandomList(13, out int odds, true); Console.WriteLine($"\nŠtevilo vnosov je {lstRnd.Count}, od teh je lihih {odds}"); } break; case IntroductorySections.RandomListsWithoutOut: { // V tem primeru si ogledamo // - kako se izogniti definiranju out spremenljivke, če je ne uporabljamo List <int> lstRnd = MyStaticFunctions.MakeRandomList(13, out _); Console.WriteLine($"\nŠtevilo vnosov je {lstRnd.Count}"); } break; case IntroductorySections.WritingInFile: { // V tem primeru si ogledamo zapisovanje v datoteko MyStaticFunctions.WriteFile("PrvaPredavanjaTest3.txt"); } break; case IntroductorySections.ReadingFromFile: { // V tem primeru si ogledamo branje iz datoteke int numLines = MyStaticFunctions.ReadFile("PrvaPredavanjaTest2.txt"); Console.WriteLine($"\nDatoteka vsebuje {numLines} vrstic"); } break; case IntroductorySections.ReadingFromFileWithObject: { // V tem primeru si ogledamo branje iz datoteke in // - zapisovanje lastnosti v poseben objekt // - lastnosti in njihove posebnosti (k njim se vrnemo malo kasneje) FileData fileData = MyStaticFunctions.ReadFile2("PrvaPredavanjaTest.txt"); Console.WriteLine($"Datoteka vsebuje {fileData.NumberOfLines} vrstic in " + $"{(fileData.ContainsSensitiveInfo ? "vsebuje moje ime!" : "ne vsebuje mojega imena!")}"); } break; case IntroductorySections.RecallingObjects: { // V tem primeru si osvežimo spomin na definiranje novega tipa (objekta) CreateStudents(); } break; } Console.Read(); }