Commit e2e88016 authored by Uwe Wienkop's avatar Uwe Wienkop

2019-12-16 Mo

parent 8b61e678
......@@ -13,25 +13,34 @@ namespace _08KlassenIntro
// plus eine öffentliche get-Methode plus eine private set-Methode
private string telNr;
private readonly int steuerIdentNummer;
// readonly = Diese Variable darf nur im Konstruktor geändert werden
// readonly = Diese Variable darf nur im Konstruktor geändert werden
//private DateTime gebDatum;
// static Member/static Datenfelder (MIT Angabe von static)
// Kommen nur einmal pro Klasse vor
private static int naechsteIdentnummer = 1;
// get ~ gezielte Umgehung des private-Schutzes; liefert Wert zurück
// Name ("get") ist ohne Bedeutung
public int getAlter()
{
return alter;
}
// Alternative Schreibweise: Lambda-Ausdruck
public int getAlter2() => alter; // => ~ "wird abgebildet auf"
// set ~ gezielte Umgehung des private Schutzes; setzt den Wert,
// ermöglicht aber eine Wertebereichsüberprüfung
// Name ("set") ist wieder ohne Bedeutung
public void setAlter(int wert)
{
if (wert < 0)
throw new ArgumentOutOfRangeException("Alter muss > 0 sein");
alter = wert;
}
// get&set in alternativer Schreibweise, zusammen als PROPERTY
// get und set sind optional, d.h. können auch entfallen
public int Alter
{
get { return alter; }
......@@ -47,10 +56,11 @@ namespace _08KlassenIntro
get { return alter; }
set { alter = value; }
}
public int Alter4 { get; private set; }
// Öffentliches get, privates set
// Automatisches Property für spätere Erweiterbarkeit
public int Alter4 { get; set; }
// Öffentliches get, privates set
// Konstruktor Person
public Person(string Name, string Vorname, int Alter, string TelNr="")
public Person(string Name, string Vorname, int Alter, string TelNr = "")
{
name = Name;
vorname = Vorname;
......@@ -112,12 +122,12 @@ namespace _08KlassenIntro
class Program
{
static void Main(string[] args)
{
// anton.SetzeIdentnummer(1000000); -- geht nicht, da anton noch nicht existiert
Person.SetzeIdentnummer(1000000);
Person anton = new Person("Müller","Anton", 23);
Person.SetzeIdentnummer(1000000);
Person anton = new Person("Müller", "Anton", 23);
anton.setAlter(24);
anton.setAlter(anton.getAlter() + 1);
Console.WriteLine(anton.Alter);
......@@ -129,20 +139,20 @@ namespace _08KlassenIntro
//anton.Name = "Müller";
//anton.Vorname = "Anton";
//Console.WriteLine($"Name: {anton.Name}, Vorname: {anton.Vorname}");
Person.Ausgabe(anton);
// Aufruf als Funktion: Klassenname.Funktionsname()
anton.Ausgabe();
// Aufruf als Methode: Objektvar.Methodenname()
Person.Ausgabe(anton);
// Aufruf als Funktion (static): Klassenname.Funktionsname()
anton.Ausgabe();
// Aufruf als Methode (nicht-static): Objektvar.Methodenname()
//Person[] persFeld = new Person[5];
Person[] persFeld = new Person[5];
//// Feld mit 5 Referenzen auf Personen-Objekte
//persFeld[1] = new Person();
//// Für Eintrag 1 Speicher für eine Person anfordern
//persFeld[1].Name = "Meier";
//persFeld[1].Vorname = "Berta";
//persFeld[0] = new Person {Name = "Meier",Vorname = "Dieter" };
persFeld[0] = new Person("Meier", "Dieter", 25);
//persFeld[2] = anton;
......@@ -153,6 +163,9 @@ namespace _08KlassenIntro
// Name = "Schuster",
// Vorname = "Claudia"
//};
}
Console.WriteLine(anton);
Console.WriteLine(persFeld[0]);
Console.WriteLine(Math.PI.ToString());
}
}
}
......@@ -9,7 +9,7 @@ namespace _10TextdateienIntro
{
StreamReader sr = new StreamReader(@"..\..\..\datei.txt");
double sum = 0.0;
sr.ReadToEnd();
while (!sr.EndOfStream) // Solange das Dateiende noch nicht erreicht ist, tue ...
{
string eingabe = sr.ReadLine();
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_11Params</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _11Params
{
class Program
{
static int Sum(int a, int b)
{
return a + b;
}
//static int Sum(int[] f)
//{
// int sum = 0;
// foreach (int item in f)
// sum += item;
// return sum;
//}
static int Sum(params int[] f)
{
int sum = 0;
foreach (int item in f)
sum += item;
return sum;
}
static void Ausgabe(params object[] objekte)
{
for (int i = 0; i < objekte.Length; i++)
{
if (objekte[i] is int)
Console.Write("Gleich kommt ein Integer ...");
Console.WriteLine($">>> {objekte[i]}");
}
}
static void Main(string[] args)
{
int x = 5;
Console.WriteLine($"Hello World! {2*3}");
Console.WriteLine("Ergebnis: {0}, Erg2: {1}, Erg3: {2}", 1+4,2*3,3);
Console.WriteLine(Sum(1,2));
Console.WriteLine(Sum(new int[] { 1, 2, 3+6, 4, 5+x, 6, 7, 8, 9 }));
Console.WriteLine(Sum(1, 2, 3 + 6, 4, 5 + x, 3, 7, 8, 9));
Ausgabe(1, 3.14, Math.PI, "Hallo Welt", 'a');
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_11Switch</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _11Switch
{
class Program
{
enum Ampelfarben { rot, gelb, grün}
static void Main(string[] args)
{
int x = 100;
if (x == 100)
Console.WriteLine("100");
else if (x == 200)
Console.WriteLine("200");
else
Console.WriteLine("300");
switch (2*x)
{
case 100:
case 110:
Console.WriteLine("100");
break;
case 200:
Console.WriteLine("200");
break;
default:
Console.WriteLine("Was anderes ...");
break;
}
Ampelfarben a = Ampelfarben.gelb;
switch (a)
{
case Ampelfarben.rot:
Console.WriteLine("Rot ...");
break;
}
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_11UebungMo</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _11UebungMo
{
class Person
{
string name, vorname;
int alter;
public int getAlter()
{ Console.WriteLine( "GetAlter");
return alter; }
public void setAlter(int Wert)
{ Console.WriteLine( "SetAlter"); alter = Wert; }
public int Alter
{
get { return alter; }
set { alter = value; }
}
public int Alter2 { get; set; }
public void AktualisiereAlter()
{
alter += 1;
}
public string getName() { return name; }
public void setName(string Wert)
{
if (Wert == null || Wert == "")
throw new ArgumentException("Name darf nicht leer oder null sein");
name = Wert;
}
public void Ausgeben() { }
// Methode der Klasse Person
// nicht-static Methode der Klasse Person
// erhält die Informationen aus der Parameterliste (hier: leer), zusätzlich
// ein Objekt vom Typ Person
}
class Program
{
// Funktion Sqrt
// erhält nur die bei den Parametern angegebenen Informationen; hier double x
static double Sqrt(double x)
{
return -1.0;
}
static void Incr(ref int x)
{
x += 1;
}
// out ~ Diesem Parameter wird in der Funktion ein Wert zugewiesen
// ~ Dieser Parameter muss vorher nicht initialisiert worden sein
static void Verdoppeln(int x, out int x2)
{
x2 = 2 * x;
}
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Person alex = new Person();
alex.Ausgeben();
alex.setAlter(25);
alex.setAlter(alex.getAlter() + 1);
alex.Alter = 25;
alex.Alter += 1;
int x=10;
Incr(ref x); // ref ~ Variable muss vorher initialisiert sein!
Console.WriteLine(x);
}
}
}
......@@ -89,7 +89,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10Enums2", "10Enums2\10Enum
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10JaggedArrays", "10JaggedArrays\10JaggedArrays.csproj", "{81155482-7880-4ED0-974C-BA3A4DFEB469}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10DoJo Schiffeversenken", "10DoJo Schiffeversenken\10DoJo Schiffeversenken.csproj", "{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10DoJo Schiffeversenken", "10DoJo Schiffeversenken\10DoJo Schiffeversenken.csproj", "{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11Params", "11Params\11Params.csproj", "{830E8EF9-2F5F-47EA-B7D1-8634FEB14BB6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11Switch", "11Switch\11Switch.csproj", "{241848D6-26E2-4419-B141-79E048ED99D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11UebungMo", "11UebungMo\11UebungMo.csproj", "{3C4139B9-F809-4B18-B4BA-3DFC23DDACFD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -273,6 +279,18 @@ Global
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Release|Any CPU.Build.0 = Release|Any CPU
{830E8EF9-2F5F-47EA-B7D1-8634FEB14BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{830E8EF9-2F5F-47EA-B7D1-8634FEB14BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{830E8EF9-2F5F-47EA-B7D1-8634FEB14BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{830E8EF9-2F5F-47EA-B7D1-8634FEB14BB6}.Release|Any CPU.Build.0 = Release|Any CPU
{241848D6-26E2-4419-B141-79E048ED99D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{241848D6-26E2-4419-B141-79E048ED99D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{241848D6-26E2-4419-B141-79E048ED99D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{241848D6-26E2-4419-B141-79E048ED99D1}.Release|Any CPU.Build.0 = Release|Any CPU
{3C4139B9-F809-4B18-B4BA-3DFC23DDACFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C4139B9-F809-4B18-B4BA-3DFC23DDACFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C4139B9-F809-4B18-B4BA-3DFC23DDACFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C4139B9-F809-4B18-B4BA-3DFC23DDACFD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment