diff --git a/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj b/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj new file mode 100644 index 0000000000000000000000000000000000000000..4c185fccf694d11c340d41e39a9a51f3f883786a --- /dev/null +++ b/01-T WdhlgKlassen/01-1T WdhlgKlassen.csproj @@ -0,0 +1,21 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_01_T_WdhlgKlassen</RootNamespace> + + <IsPackable>false</IsPackable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> + <PackageReference Include="xunit" Version="2.4.0" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> + <PackageReference Include="coverlet.collector" Version="1.2.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj" /> + </ItemGroup> + +</Project> diff --git a/01-T WdhlgKlassen/UnitTest1.cs b/01-T WdhlgKlassen/UnitTest1.cs new file mode 100644 index 0000000000000000000000000000000000000000..c4e43d31bf88acdff50710a6c4cebd3787a2b621 --- /dev/null +++ b/01-T WdhlgKlassen/UnitTest1.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using Xunit; + +namespace _01_T_WdhlgKlassen +{ + public class UnitTest1 + { + private const string Expected = "Hello World!"; + [Fact] + public void MainTest() + { + using (var sw = new StringWriter()) + { + Console.SetOut(sw); + _01_V_WdhlgKlassen.Program.Main(); + + var result = sw.ToString().Trim(); + Assert.Equal(Expected, result); + } + } + [Fact] + public void AddTest() + { + Assert.Equal(7, _01_V_WdhlgKlassen.Program.Add(3, 4)); + Assert.Equal(-6, _01_V_WdhlgKlassen.Program.Add(-3, -3)); + //Assert.Equal(1, _01_V_WdhlgKlassen.Program.Add(-3, 4)); + } + + } +} diff --git a/01-V IntroIndexer/01-2 IntroIndexer.csproj b/01-V IntroIndexer/01-2 IntroIndexer.csproj new file mode 100644 index 0000000000000000000000000000000000000000..423052cac87a2a2c3369a6f35b44d1c2b8c20665 --- /dev/null +++ b/01-V IntroIndexer/01-2 IntroIndexer.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_01_V_IntroIndexer</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/01-V IntroIndexer/Person.cs b/01-V IntroIndexer/Person.cs new file mode 100644 index 0000000000000000000000000000000000000000..ea3b046f8f3a8ca4626c929d5f26a170867c22fd --- /dev/null +++ b/01-V IntroIndexer/Person.cs @@ -0,0 +1,75 @@ +using System; + +namespace _01_V_IntroIndexer +{ + class Person + { + #region Datenfelder + private string name, vorname; + private int alter; + #endregion + + #region Konstruktoren + public Person(string Name) // Aufruf z.B. bei "Claudia" + { + name = Name; + vorname = null; + alter = -1; + } + public Person(string name, string Vorname, int Alter = 0) + { + if (Alter < 0) + throw new ArgumentOutOfRangeException("Alter muss eine positive Zahl sein!"); + this.name = name; // this.name ~ Datenfeld name; "nur" name ~ Parameter!!! + vorname = Vorname; + alter = Alter; + } + #endregion + + #region (Datenfeld-) Zugriffsfunktionen + public void ErhöheAlter() + { + alter++; + } + public int getAlter() + { + return alter; + } + public int getAlter2() => alter; + public void setAlter(int value) + { + if (value < 0 || value > 150) + throw new ArgumentException("Alter muss im Bereich 0..150 sein!"); + alter = value; + } + + // Property-Schreibweise + public int Alter + { + get => alter; + set + { + if (value < 0 || value > 150) + throw new ArgumentException("Alter muss im Bereich 0..150 sein!"); + alter = value; + } + } + #endregion + + #region Sonstige Methoden + public void Ausgabe() // Ausgabe hat den impliziten Parameter this + { + //Console.WriteLine($"Person: {this.vorname} {this.name}, Alter: {this.alter}"); + Console.WriteLine($"Person: {vorname} {name}, Alter: {alter}"); + } + public static void Ausgabe(Person p) // Ausgabe hat ausschließlich den Parameter p + { + Console.WriteLine($"Person: {p.vorname} {p.name}, Alter: {p.alter}"); + } + public override string ToString() + { + return $">>> Person: {vorname} {name}, Alter: {alter}"; + } + #endregion + } +} diff --git a/01-V IntroIndexer/Personenliste.cs b/01-V IntroIndexer/Personenliste.cs new file mode 100644 index 0000000000000000000000000000000000000000..ac7fcd7147780454be0d5512246c89392dd5a2e1 --- /dev/null +++ b/01-V IntroIndexer/Personenliste.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace _01_V_IntroIndexer +{ + class Personenliste + { + + } +} diff --git a/01-V IntroIndexer/Program.cs b/01-V IntroIndexer/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..455a67ff2d90e8a97874969fce4eaf09f40c7350 --- /dev/null +++ b/01-V IntroIndexer/Program.cs @@ -0,0 +1,20 @@ +using System; + +namespace _01_V_IntroIndexer +{ + class Program + { + static void Main(string[] args) + { + Person anton = new Person("Meier", "Anton", 21); + Person berta = new Person("Huber", "Berta"); + + Person claudia = new Person("Schuster"); + + anton.Ausgabe(); + Person.Ausgabe(anton); + Console.WriteLine(anton); + Console.WriteLine(anton.ToString()); + } + } +} diff --git a/01-V WdhlgKlassen/01-V WdhlgKlassen.csproj b/01-V WdhlgKlassen/01-1 WdhlgKlassen.csproj similarity index 100% rename from 01-V WdhlgKlassen/01-V WdhlgKlassen.csproj rename to 01-V WdhlgKlassen/01-1 WdhlgKlassen.csproj diff --git a/01-V WdhlgKlassen/Program.cs b/01-V WdhlgKlassen/Program.cs index 5252ac932ae624c3d586acdbcce9a3f11978ea3e..2e718a15ca7dc15b278643aaae04294ff5e4f8c4 100644 --- a/01-V WdhlgKlassen/Program.cs +++ b/01-V WdhlgKlassen/Program.cs @@ -2,9 +2,15 @@ namespace _01_V_WdhlgKlassen { - class Program + public class Program { - static void Main(string[] args) + public static int Add(int x, int y) + { + if (x>0) + return x + y; + return 0; + } + public static void Main() { Console.WriteLine("Hello World!"); } diff --git a/Prog2WienkopSS2021.sln b/Prog2WienkopSS2021.sln index 86a88ac2e8efac12faa72e67a526288e0f5e3826..598df9ff6768284eec91738e9cf754b82f921ccb 100644 --- a/Prog2WienkopSS2021.sln +++ b/Prog2WienkopSS2021.sln @@ -3,7 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31105.61 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01-V WdhlgKlassen", "01-V WdhlgKlassen\01-V WdhlgKlassen.csproj", "{503B68BD-967D-4C38-AF1E-8DD44594F94E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-1 WdhlgKlassen", "01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj", "{503B68BD-967D-4C38-AF1E-8DD44594F94E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-1T WdhlgKlassen", "01-T WdhlgKlassen\01-1T WdhlgKlassen.csproj", "{1FECE10D-561F-43F8-BD49-691FF959EF74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01-2 IntroIndexer", "01-V IntroIndexer\01-2 IntroIndexer.csproj", "{6781DE0D-C861-40AC-9C33-5EA5D917425D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject1", "TestProject1\TestProject1.csproj", "{24B954CA-BD5E-42BF-9396-E973BCC8A8B5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +21,18 @@ Global {503B68BD-967D-4C38-AF1E-8DD44594F94E}.Debug|Any CPU.Build.0 = Debug|Any CPU {503B68BD-967D-4C38-AF1E-8DD44594F94E}.Release|Any CPU.ActiveCfg = Release|Any CPU {503B68BD-967D-4C38-AF1E-8DD44594F94E}.Release|Any CPU.Build.0 = Release|Any CPU + {1FECE10D-561F-43F8-BD49-691FF959EF74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FECE10D-561F-43F8-BD49-691FF959EF74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FECE10D-561F-43F8-BD49-691FF959EF74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FECE10D-561F-43F8-BD49-691FF959EF74}.Release|Any CPU.Build.0 = Release|Any CPU + {6781DE0D-C861-40AC-9C33-5EA5D917425D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6781DE0D-C861-40AC-9C33-5EA5D917425D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6781DE0D-C861-40AC-9C33-5EA5D917425D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6781DE0D-C861-40AC-9C33-5EA5D917425D}.Release|Any CPU.Build.0 = Release|Any CPU + {24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24B954CA-BD5E-42BF-9396-E973BCC8A8B5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/TestProject1/TestProject1.csproj b/TestProject1/TestProject1.csproj new file mode 100644 index 0000000000000000000000000000000000000000..63194a8e4e4a0de970f2f9e205c73d3c24542e2f --- /dev/null +++ b/TestProject1/TestProject1.csproj @@ -0,0 +1,20 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + + <IsPackable>false</IsPackable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> + <PackageReference Include="xunit" Version="2.4.0" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> + <PackageReference Include="coverlet.collector" Version="1.2.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\01-V WdhlgKlassen\01-1 WdhlgKlassen.csproj" /> + </ItemGroup> + +</Project> diff --git a/TestProject1/UnitTest1.cs b/TestProject1/UnitTest1.cs new file mode 100644 index 0000000000000000000000000000000000000000..57577406fa03b83c396bb6ca0fe9621b91ca0ba5 --- /dev/null +++ b/TestProject1/UnitTest1.cs @@ -0,0 +1,14 @@ +using System; +using Xunit; + +namespace TestProject1 +{ + public class UnitTest1 + { + [Fact] + public void Test1() + { + Assert.Equal(7, _01_V_WdhlgKlassen.Program.Add(3, 4)); + } + } +}