Detta verk är framtaget av Mats Loock i anslutning till kursen Objektorienterad programmering (1DV024) vid Linnéuniversitetet.
Allt innehåll i detta verk förutom fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol,
är licensierad under en
Creative Commons Erkännande 4.0 Internationell Licens
.
Om du förändrar innehållet så ta inte med fotografier, ikoner samt Linnéuniversitetets logotyp och symbol i din nya version!
Vid all användning måste du ange källan: ”Linnéuniversitetet – Objektorienterad programmering (1DV024)” och en länk till https://coursepress.lnu.se/kurs/objektorienterad-programmering och till Creative Common-licensen här ovan.
class Program{ static void Main() { string firstName = GetUserInput("Ange ditt förnamn: "); string lastName = GetUserInput("Ange ditt efternamn: "); // code left out for brevity... } static string GetUserInput(string prompt) { Console.Write(prompt); return Console.ReadLine(); }}
void
.void
-metod kan dock innehålla return
-sats(er).static void WriteWeekdayName(){ if (DateTime.Today.DayOfWeek == DayOfWeek.Saturday || DateTime.Today.DayOfWeek == DayOfWeek.Sunday) { return; } Console.WriteLine($"Dagens namn är {DateTime.Today.ToString("dddd")}."); // Dagens namn är måndag.}
static int GetRandomNumber(){ var random = new Random(); return random.Next(1, 10); // [1, 9]}
static int GetNumber(){ return 3.14; // Error CS0266 Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)}
Program.cs
using System;namespace IntroducingMethods{ /// <summary> /// Exempel från Essential C# 6.0, kapitel 4, sidan 169-170. /// </summary> class Program { static void Main() { // Lokala variabler för förnamn, efternamn, fullständigt namn och initialer. string firstName; string lastName; string fullName; string initials; // Hämta indata från användaren. Console.WriteLine("Hallå där!"); firstName = GetUserInput("Skriv in ditt förnamn: "); lastName = GetUserInput("Skriv in ditt efternamn: "); // Bestäm fullständigt namn samt initialer och presentera detta. fullName = GetFullName(firstName, lastName); initials = GetInitials(firstName, lastName); DisplayGreeting(fullName, initials); } static string GetUserInput(string prompt) { // Lokal variabel för hantering av indata. string input; // Skriv ut ledtext och läs in datat som användaren matar in. Console.Write(prompt); input = Console.ReadLine(); // Returnera inläst data return input; } // metodkroppen i ursprunglig kodversion är mycket komprimerad: // static string GetFullName(string fName, string lName) => $"{fName} {lName}"; // Oftare ses metoder definierade på detta sätt: static string GetFullName(string fName, string lName) { // Att först definiera en lokal variabel för det fullständiga namnet ... string result; // ... gör det möjligt att synliggöra flera steg i metodens arbete. // Formatera först för- och efternamn till ett fullständigt namn ... result = String.Format("{0} {1}", fName, lName); // ... avsluta därefter metoden genom att returnera resultatet. return result; } private static string GetInitials(string firstName, string lastName) { return $"{firstName[0]}.{lastName[0]}."; } static void DisplayGreeting(string fullName, string initials) { // Skriv ut det fullständiga namnet samt initialerna och lämna metoden. Console.WriteLine($"Hej {fullName}! Dina initialer är {initials}"); return; // Denna sats behövs egentligen inte då metodens returtyp är void, // men är alltså fullt möjligt att använda även här. } }}
static void Main(){ string fullName; fullName = GetFullName("Ellen", "Nu"); // Ellen Nu fullName = GetFullName(lastName: "Nu", firstName: "Ellen" ); // Ellen Nu}static string GetFullName(string firstName, string lastName) => $"{firstName} {lastName}";
static void Main(){ string fullName; fullName = GetFullName(); // N N fullName = GetFullName("Ellen"); // Ellen N fullName = GetFullName("Ellen", "Nu"); // Ellen Nu fullName = GetFullName(lastName: "Nu"); // N Nu fullName = GetFullName(lastName: "Nu", firstName: "Ellen"); // Ellen Nu}static string GetFullName(string firstName = "N", string lastName = "N") => $"{firstName} {lastName}";
static void Main() { int sum; int[] scores = { 78, 76, 81, 77, 72, 75 }; sum = Sum(scores); // 459 sum = Sum(1, 2, 3, 4, 5); // 15 } static int Sum(params int[] numbers) { int sum = 0; foreach (int number in numbers) { sum += number; } return sum; }
static void Main(){ int sum = MyMath.Add(123, 456); double anotherSum = Add(9.87, 6.54); var yetAnotherSum = Add(123, 6.54));}public static int Add(int op1, int op2){ return op1 + op2;}public static double Add(double op1, double op2){ return op1 + op2;}
out
för en parameter av värdetyp kan den "göras om" till referenstyp.static void Main(){ if (TryParseOddInt(out int odd)) { Console.WriteLine($"{odd} is an odd number."); }}static bool TryParseOddInt(out int number){ if (int.TryParse(Console.ReadLine(), out number) && number % 2 == 1) { return true; } number = default(int); // 0 return false;}
ref
för en parameter av värdetyp kan den "göras om" till referenstyp.ref
-parameter.static void Main(){ int first = 3; int second = 42; Console.WriteLine($"first: {first}\tsecond: {second}"); // first: 3 second: 42 Swap(ref first, ref second); Console.WriteLine($"first: {first}\tsecond: {second}"); // first: 42 second: 3}static void Swap(ref int x, ref int y){ int temp = x; x = y; y = temp;}
Tveksam användning...
static void Main(){ var bar = Foo(0); // 0, int var qux = Foo(1); // Inte noll!, string}static dynamic Foo(int i){ if (i == 0) { return 0; } return "Inte noll!";}
Detta verk är framtaget av Mats Loock i anslutning till kursen Objektorienterad programmering (1DV024) vid Linnéuniversitetet.
Allt innehåll i detta verk förutom fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol,
är licensierad under en
Creative Commons Erkännande 4.0 Internationell Licens
.
Om du förändrar innehållet så ta inte med fotografier, ikoner samt Linnéuniversitetets logotyp och symbol i din nya version!
Vid all användning måste du ange källan: ”Linnéuniversitetet – Objektorienterad programmering (1DV024)” och en länk till https://coursepress.lnu.se/kurs/objektorienterad-programmering och till Creative Common-licensen här ovan.
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |