Commit cde4df2c authored by Uwe Wienkop's avatar Uwe Wienkop

2020-05-13

parent 659548d9
......@@ -7,8 +7,9 @@
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="190,134,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
<Button Content="Mein bester Button" HorizontalAlignment="Left" Margin="190,134,0,0" VerticalAlignment="Top" Width="136" Click="Button_Click"/>
<Label x:Name="meinLabel" Content="Label" HorizontalAlignment="Left" Margin="208,240,0,0" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="344,190,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>
</Window>
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "60C2A6ACD5F92BDDFE76CB95A180BD10C4ADBFF20A9F7DDB66936F56B816EBE6"
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D57DCAC845907026F457BE8740727CDBDE7747C795BBCA7CC8A9E6E1650A5F23"
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
......
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "60C2A6ACD5F92BDDFE76CB95A180BD10C4ADBFF20A9F7DDB66936F56B816EBE6"
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D57DCAC845907026F457BE8740727CDBDE7747C795BBCA7CC8A9E6E1650A5F23"
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
......
......@@ -19,7 +19,7 @@ namespace _03VererbungKfzIntro
//CO2-Steuer
//Zusätzlich wird die Steuer für den CO2-Ausstoß berechnet. Jedes Gramm CO2-Ausstoß pro Kilometer, das über
//dem Sockelwert liegt, kostet zwei Euro Steuern. Die Sockelwerte – „Freibeträge“ für unterschiedliche
//Zeitpunkte der Erstzulassung – können Sie der folgenden Tabelle entnehmen:
//Zeitpunkte der Erstzulassung – können Sie der folgenden Tabelle entnehmen ...
//----------
// Steuerberechnung Motorrad
......@@ -33,7 +33,12 @@ namespace _03VererbungKfzIntro
//Der Höchstsatz für die günstigste Lkw-Steuerklasse beträgt 556,00 Euro
class Kfz
{
string kennzeichen;
/* private */static int kfzZaehler = 0;
public string kennzeichen { get; private set; } // private ist die default-Einstellung
// public ~ alle Methoden aus allen Klassen dürfen darauf zugreifen
// private ~ ausschließlich die Methoden aus dieser Klasse dürfen hierauf zugreifen
// protected ~ die Methoden aus dieser Klasse UND die Methoden aus abgeleiteten Klassen dürfen
// auf dieses Property zugreifen; Methoden aus anderen Klassen nicht!
public Kfz(string kennzeichen) { this.kennzeichen = kennzeichen; }
public virtual void Ausgeben() { Console.Write($"{kennzeichen}: "); }
public virtual double SteuernBerechnen() { return -999; }
......@@ -48,7 +53,7 @@ namespace _03VererbungKfzIntro
}
class Pkw : Kfz // Vererbung, Spezialisierung, ist-ein Beziehung
{
int hubraum, CO2;
protected int hubraum, CO2;
public enum BenzinDiesel { Benzin, Diesel };
BenzinDiesel typ;
public Pkw(string kennzeichen, int hubraum, int CO2, BenzinDiesel typ) : base(kennzeichen)
......@@ -70,6 +75,21 @@ namespace _03VererbungKfzIntro
Console.WriteLine($"{typ}, Hubraum: {hubraum}");
}
}
class Oldtimer : Pkw
{
int baujahr;
public Oldtimer(string kennzeichen, int hubraum, int CO2, BenzinDiesel typ, int baujahr)
: base (kennzeichen,hubraum,CO2,typ)
{
this.baujahr = baujahr;
}
public override double SteuernBerechnen()=> 1.0 * (hubraum + 99) / 100;
public override void Ausgeben()
{
base.Ausgeben();
Console.WriteLine($"Baujahr: {baujahr}");
}
}
class Motorrad : Kfz
{
int hubraum;
......@@ -117,7 +137,7 @@ namespace _03VererbungKfzIntro
fahrzeuge[0] = new Pkw("N-XY 567", 1598, 148, Pkw.BenzinDiesel.Diesel);
fahrzeuge[1] = new Motorrad("ER-KW 123", 250);
fahrzeuge[2] = new LKW("FÜ-KL 987", 4598, 3500);
fahrzeuge[3] = new Kfz("N-AB 123");
fahrzeuge[3] = new Oldtimer("N-AB 123",1998, 250, Pkw.BenzinDiesel.Benzin, 1960);
#region Gemeinsames Feld, aber mit lästiger Typprüfung und Verzweigung
// Der statische Typ zwingt zu einer Überprüfung des Typs, einem cast zum
......@@ -133,13 +153,18 @@ namespace _03VererbungKfzIntro
for (int i = 0; i < fahrzeuge.Length; i++)
{
Console.WriteLine(fahrzeuge[i].SteuernBerechnen());
Console.WriteLine($"{fahrzeuge[i].kennzeichen}: {fahrzeuge[i].SteuernBerechnen()}");
// Methodenauswahl findet "normalerweise" auf Basis des STATISCHEN TYPS statt!
// virtual und abstract ermöglichen, die gemäß des DYNAMISCHEN TYPS gespeicherte Methode
// automatisch aufzurufen - ohne dass eine Typüberprüfung, ein cast oder eine if-Auswahl
// erfolgen muss. Weitere/spätere Klassen werden einfach in dieses Verfahren durch
// Erben von Kfz "eingeklinkt"!
}
for (int i = 0; i < fahrzeuge.Length; i++)
{
if (fahrzeuge[i].kennzeichen == "ER-KW 123")
Console.WriteLine("Gefunden!");
}
#region Alte Vorgehensweise
//for (int i = 0; i < autoanzahl; i++)
//{
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>_04VererbungGrafischeObjekte</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _04VererbungGrafischeObjekte
{
abstract class GrafischesObjekt
{
public abstract void Draw();
}
class Dreieck : GrafischesObjekt
{
int px1, py1, px2, py2, px3, py3;
public override void Draw() { Console.WriteLine("Dreieck"); }
}
class Rechteck : GrafischesObjekt
{
int top, left, width, height;
public override void Draw() { Console.WriteLine("Rechteck"); }
//public abstract override void Draw();
}
class Quadrat : Rechteck
{
public override void Draw() { Console.WriteLine("Quadrat"); }
}
class Program
{
static void Main(string[] args)
{
GrafischesObjekt[] objFeld = new GrafischesObjekt[3];
objFeld[0] = new Dreieck();
objFeld[1] = new Rechteck();
objFeld[2] = new Quadrat();
foreach (var item in objFeld)
{
item.Draw();
}
}
}
}
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.1": {
"04VererbungGrafischeObjekte/1.0.0": {
"runtime": {
"04VererbungGrafischeObjekte.dll": {}
}
}
}
},
"libraries": {
"04VererbungGrafischeObjekte/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
\ No newline at end of file
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\wienkop\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\wienkop\\.nuget\\packages"
]
}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.1.0"
}
}
}
\ No newline at end of file
{
"format": 1,
"restore": {
"C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj": {}
},
"projects": {
"C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj",
"projectName": "04VererbungGrafischeObjekte",
"projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj",
"packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
"outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\wienkop\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.1": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.1": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json"
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\wienkop\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.5.0</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("04VererbungGrafischeObjekte")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("04VererbungGrafischeObjekte")]
[assembly: System.Reflection.AssemblyTitleAttribute("04VererbungGrafischeObjekte")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.exe
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.deps.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.runtimeconfig.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.runtimeconfig.dev.json
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.dll
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\bin\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.pdb
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.csproj.CoreCompileInputs.cache
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.AssemblyInfoInputs.cache
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.AssemblyInfo.cs
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.dll
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.pdb
C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\04VererbungGrafischeObjekte\obj\Debug\netcoreapp3.1\04VererbungGrafischeObjekte.genruntimeconfig.cache
{
"version": 3,
"targets": {
".NETCoreApp,Version=v3.1": {}
},
"libraries": {},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": []
},
"packageFolders": {
"C:\\Users\\wienkop\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj",
"projectName": "04VererbungGrafischeObjekte",
"projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj",
"packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
"outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\wienkop\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.1": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.1": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json"
}
}
}
}
\ No newline at end of file
{
"version": 2,
"dgSpecHash": "cOddAa96NJBgFsZ6Lzac9+bsHddDSAIMONcE9rahvr0wMxdvYSyRBwSoZeF3EquEr80L7LHqGeI7JML6EtRxxw==",
"success": true,
"projectFilePath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\04VererbungGrafischeObjekte\\04VererbungGrafischeObjekte.csproj",
"expectedPackageFiles": [],
"logs": []
}
\ No newline at end of file
......@@ -44,7 +44,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03VererbungKfzIntro", "03Ve
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04 UebgMo ZyklischeListe", "04 UebgMo ZyklischeListe\04 UebgMo ZyklischeListe.csproj", "{F4E8A476-C0B2-47EE-9F30-76DA37FA5851}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04 UebgDi Vererbung", "04 UebgDi Vererbung\04 UebgDi Vererbung.csproj", "{7E563224-8612-4E65-BDD5-875D4DB146EC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04 UebgDi Vererbung", "04 UebgDi Vererbung\04 UebgDi Vererbung.csproj", "{7E563224-8612-4E65-BDD5-875D4DB146EC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04VererbungGrafischeObjekte", "04VererbungGrafischeObjekte\04VererbungGrafischeObjekte.csproj", "{7E54DCD9-0FAE-42BD-AC56-ED65E6AA60EE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -128,6 +130,10 @@ Global
{7E563224-8612-4E65-BDD5-875D4DB146EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E563224-8612-4E65-BDD5-875D4DB146EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7E563224-8612-4E65-BDD5-875D4DB146EC}.Release|Any CPU.Build.0 = Release|Any CPU
{7E54DCD9-0FAE-42BD-AC56-ED65E6AA60EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E54DCD9-0FAE-42BD-AC56-ED65E6AA60EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E54DCD9-0FAE-42BD-AC56-ED65E6AA60EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7E54DCD9-0FAE-42BD-AC56-ED65E6AA60EE}.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