diff --git a/.vs/prog2-ss2020-wienkop/v16/.suo b/.vs/prog2-ss2020-wienkop/v16/.suo
index 65f0f4e3ec81d204878e0065a8a8a1f56f4a158f..005da92bef2630dc2beb6d847832ac31a167e340 100644
Binary files a/.vs/prog2-ss2020-wienkop/v16/.suo and b/.vs/prog2-ss2020-wienkop/v16/.suo differ
diff --git a/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache b/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache
index 4824caf0c92344f68eac696e04da28b425072d2c..4604200e8108358ecfd89e86f2787c9523eed2ff 100644
Binary files a/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache and b/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache differ
diff --git a/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache b/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache
index cf534861a3640f8554f9ce25bfe11127debf486c..b5214f35120e32e54563c1c022ea640ba350567a 100644
Binary files a/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache and b/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache differ
diff --git a/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index a3ab5aa226422b05e325b8b5b3f13de3d7a47b5f..80efde49189f7ab2e740a2ee31b32145574ed6f5 100644
Binary files a/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/01WPF_Demo/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache
index ed51084113c37d43a99e791dd0a169f2b0c6b55a..eccb16c61b24a1a51c2c7f95176dcd7d1142727d 100644
Binary files a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache and b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache differ
diff --git a/09 DelegateVerkettung/09 DelegateVerkettung.csproj b/09 DelegateVerkettung/09 DelegateVerkettung.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..0578b4bb6072fe508ae850dfc859e98aeeba7207
--- /dev/null
+++ b/09 DelegateVerkettung/09 DelegateVerkettung.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_09_DelegateVerkettung</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/09 DelegateVerkettung/Program.cs b/09 DelegateVerkettung/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4de40d9ca2c8d56a75422f1e22cfef228ae2fa94
--- /dev/null
+++ b/09 DelegateVerkettung/Program.cs	
@@ -0,0 +1,42 @@
+using System;
+
+namespace _09_DelegateVerkettung
+{
+    class Program
+    {
+        delegate void StringDelegate(ref string s);
+        static StringDelegate stringdelegate;
+        static string Ausgabe(string s)
+        {
+            stringdelegate?.Invoke(ref s);
+            return s;
+            //Console.WriteLine("------------");
+        }
+
+        static void InGrossbuchstaben(ref string s)
+        {
+            s = s.ToUpper();
+        }
+        static void AbZweitesZeichen(ref string s)
+        {
+            s= s.Substring(1);
+        }
+        static void Mitte(ref string s)
+        {
+            s = s.Substring(2, 3);
+        }
+        static void Main(string[] args)
+        {
+            StringDelegate tmp = delegate (ref string s) { s = s.Substring(1); };
+            stringdelegate += InGrossbuchstaben;  // Ausführung in der Reihenfolge
+            stringdelegate += tmp;
+            // des +=
+            stringdelegate += Mitte;
+            stringdelegate -= tmp; 
+                    // Achtung!!! Anonyme Methoden können nicht entfernt werden
+            stringdelegate += AbZweitesZeichen;
+
+            Console.WriteLine(Ausgabe("Hallo-Welt"));
+        }
+    }
+}
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.deps.json b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..2681bd65e98903d7141250f86949c732f755c060
--- /dev/null
+++ b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.deps.json	
@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v3.1",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v3.1": {
+      "09 DelegateVerkettung/1.0.0": {
+        "runtime": {
+          "09 DelegateVerkettung.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "09 DelegateVerkettung/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.dll b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eef3edbce09592fa80e695c892ca0c71537056e7
Binary files /dev/null and b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.dll differ
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.exe b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.exe
new file mode 100644
index 0000000000000000000000000000000000000000..759104cc899d727cced1ce2fda73dd4a017d7000
Binary files /dev/null and b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.exe differ
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..a5318e93a79d18ebca9909b81146da970bdfbc96
Binary files /dev/null and b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb differ
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.dev.json b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.dev.json
new file mode 100644
index 0000000000000000000000000000000000000000..3becea41545888f98131d88ad51766e8ddde3bce
--- /dev/null
+++ b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.dev.json	
@@ -0,0 +1,8 @@
+{
+  "runtimeOptions": {
+    "additionalProbingPaths": [
+      "C:\\Users\\wienkop\\.dotnet\\store\\|arch|\\|tfm|",
+      "C:\\Users\\wienkop\\.nuget\\packages"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.json b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..bc456d7868bb54ec1809da30e339cd43f0a8a09c
--- /dev/null
+++ b/09 DelegateVerkettung/bin/Debug/netcoreapp3.1/09 DelegateVerkettung.runtimeconfig.json	
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp3.1",
+    "framework": {
+      "name": "Microsoft.NETCore.App",
+      "version": "3.1.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.dgspec.json b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.dgspec.json
new file mode 100644
index 0000000000000000000000000000000000000000..6b74e3c2d892c9745d1345f44ad46d5ed171f2f3
--- /dev/null
+++ b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.dgspec.json	
@@ -0,0 +1,60 @@
+{
+  "format": 1,
+  "restore": {
+    "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj": {}
+  },
+  "projects": {
+    "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj": {
+      "version": "1.0.0",
+      "restore": {
+        "projectUniqueName": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj",
+        "projectName": "09 DelegateVerkettung",
+        "projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj",
+        "packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
+        "outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\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.301\\RuntimeIdentifierGraph.json"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.props b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.props
new file mode 100644
index 0000000000000000000000000000000000000000..71e2560680d6cba0b1c8f0e4f5c188f730659b86
--- /dev/null
+++ b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.props	
@@ -0,0 +1,15 @@
+<?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.6.0</NuGetToolVersion>
+  </PropertyGroup>
+  <PropertyGroup>
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.targets b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.targets
new file mode 100644
index 0000000000000000000000000000000000000000..53cfaa19b16f3769b2bfc33db3b5c0053c16fdba
--- /dev/null
+++ b/09 DelegateVerkettung/obj/09 DelegateVerkettung.csproj.nuget.g.targets	
@@ -0,0 +1,6 @@
+<?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
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ad8dfe1a6310302587a2d0c0111d81b250eb4105
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs	
@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfo.cs b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..52d3ed91afe7edefa85565bb5894dde5bc3b52af
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfo.cs	
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+// <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("09 DelegateVerkettung")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("09 DelegateVerkettung")]
+[assembly: System.Reflection.AssemblyTitleAttribute("09 DelegateVerkettung")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Von der MSBuild WriteCodeFragment-Klasse generiert.
+
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfoInputs.cache b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfoInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..e8444516589a3ec79fbd69c19102856244a849e9
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.AssemblyInfoInputs.cache	
@@ -0,0 +1 @@
+55f672e7a96d1d62323547f23b45c60906ef5148
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.assets.cache b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.assets.cache
new file mode 100644
index 0000000000000000000000000000000000000000..3286ba53a431c87349e047ff4c955a6c2c2d19b1
Binary files /dev/null and b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.assets.cache differ
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.CoreCompileInputs.cache b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..1953b90bd08ea783a6de626592a29a8f6b8c0b38
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.CoreCompileInputs.cache	
@@ -0,0 +1 @@
+56015a2ef8ee84f369a003b086f0f1baf2e10053
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.FileListAbsolute.txt b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c27d0a021991f9cef320e57beccc3442f34fae9c
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.csproj.FileListAbsolute.txt	
@@ -0,0 +1,12 @@
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.exe
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.deps.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.runtimeconfig.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.runtimeconfig.dev.json
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.dll
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\bin\Debug\netcoreapp3.1\09 DelegateVerkettung.pdb
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.AssemblyInfoInputs.cache
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.AssemblyInfo.cs
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.csproj.CoreCompileInputs.cache
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.dll
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.pdb
+C:\Users\wienkop\source\repos\prog2-ss2020-wienkop\09 DelegateVerkettung\obj\Debug\netcoreapp3.1\09 DelegateVerkettung.genruntimeconfig.cache
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.dll b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eef3edbce09592fa80e695c892ca0c71537056e7
Binary files /dev/null and b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.dll differ
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.exe b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.exe
new file mode 100644
index 0000000000000000000000000000000000000000..759104cc899d727cced1ce2fda73dd4a017d7000
Binary files /dev/null and b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.exe differ
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.genruntimeconfig.cache b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.genruntimeconfig.cache
new file mode 100644
index 0000000000000000000000000000000000000000..34bedab819ef1631d37d6e87ef9a716c545a105e
--- /dev/null
+++ b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.genruntimeconfig.cache	
@@ -0,0 +1 @@
+86c8e15dd33445635927cfaf398408205fd11473
diff --git a/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..a5318e93a79d18ebca9909b81146da970bdfbc96
Binary files /dev/null and b/09 DelegateVerkettung/obj/Debug/netcoreapp3.1/09 DelegateVerkettung.pdb differ
diff --git a/09 DelegateVerkettung/obj/project.assets.json b/09 DelegateVerkettung/obj/project.assets.json
new file mode 100644
index 0000000000000000000000000000000000000000..2750b2d2774e6de4ff001473421c42146ede364f
--- /dev/null
+++ b/09 DelegateVerkettung/obj/project.assets.json	
@@ -0,0 +1,65 @@
+{
+  "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\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj",
+      "projectName": "09 DelegateVerkettung",
+      "projectPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj",
+      "packagesPath": "C:\\Users\\wienkop\\.nuget\\packages\\",
+      "outputPath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\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.301\\RuntimeIdentifierGraph.json"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/09 DelegateVerkettung/obj/project.nuget.cache b/09 DelegateVerkettung/obj/project.nuget.cache
new file mode 100644
index 0000000000000000000000000000000000000000..823c6c307807ff83493d59f64cc077e6adaaba29
--- /dev/null
+++ b/09 DelegateVerkettung/obj/project.nuget.cache	
@@ -0,0 +1,8 @@
+{
+  "version": 2,
+  "dgSpecHash": "fE4rbGLaDPbUeVHdRKy7yZvUTmTvBompiXtAsNyOnxEqzKlVMHSQpFpcdlwYPYw3sW7Tr8RkBzkIKfH4ExQbWA==",
+  "success": true,
+  "projectFilePath": "C:\\Users\\wienkop\\source\\repos\\prog2-ss2020-wienkop\\09 DelegateVerkettung\\09 DelegateVerkettung.csproj",
+  "expectedPackageFiles": [],
+  "logs": []
+}
\ No newline at end of file
diff --git a/09 UebgMailVerteilung/Program.cs b/09 UebgMailVerteilung/Program.cs
index 94d74a4fca52fb4bdd05ea692782c0fa3254c1db..0a00b5c07798b854c4dda2f752ed41c508d6fbec 100644
--- a/09 UebgMailVerteilung/Program.cs	
+++ b/09 UebgMailVerteilung/Program.cs	
@@ -3,11 +3,16 @@
 namespace _09_UebgMailVerteilung
 {
     public delegate void Callback(string s);
+    // Delegate definiert einen neuen Typ
     class MailServer
     {
         /* ToDo: Delegate/Event anlegen */
         public event Callback verteiler;
-        
+        // Event ~ ein eingeschränktes Delegate
+        // = ist nicht mehr erlaubt, nur noch += und -=
+        // Event-Aufruf ist nur noch Methoden derjenigen Klasse erlaubt,
+        // in der sich die Delegate-Var. befindet
+
         public void Senden(string s)
         {
             /* ToDo: Aufruf des verteilers */
@@ -22,7 +27,24 @@ namespace _09_UebgMailVerteilung
 
     // Bis hierher: Code der Firma A
 
-
+    class FirmaB
+    {
+        public static string Gespeichert { get; private set; }
+        public static void Speichern(string s) { Gespeichert = s; }
+        public void FirmaBMoechteInformiertWerden(string s)
+        {
+            Console.WriteLine($"Firma B: {s}");
+        }
+    }
+    class FirmaC
+    {
+        string mitarbeiter;
+        public FirmaC(string name) { mitarbeiter = name; }
+        public void FirmaCInfo(string s)
+        {
+            Console.WriteLine($"Firma C-{mitarbeiter}: {s}");
+        }
+    }
 
     // Ab hier: Code der Firma B
     class Program
@@ -35,6 +57,10 @@ namespace _09_UebgMailVerteilung
         {
             MailServer mb = new MailServer();
 
+            FirmaB fb = new FirmaB();
+            FirmaC fc1 = new FirmaC("Anton");
+            FirmaC fc2 = new FirmaC("Berta");
+
             /* ToDos:
              * Geben Sie mindestens zwei geeignete CallBack-Methoden an
              * Rufen Sie den Mail-Verteiler mit Beispieltexten auf
@@ -46,9 +72,16 @@ namespace _09_UebgMailVerteilung
 
             mb.verteiler += Console.WriteLine;     // Einspeichern/Registrieren der Objekt+Methodenreferenz
             mb.verteiler += AllesInGrossbuchstaben;
+            mb.verteiler += FirmaB.Speichern;       // statische Methode einer anderen Klasse: Klassenname+Punkt+Methodenname
+            mb.verteiler += fc1.FirmaCInfo; // nicht-statische Methode: obj+Methodenname
+            mb.verteiler += fc2.FirmaCInfo;
 
+            // mb.verteiler = null; -- Bei event-Delegates nicht erlaubt
             mb.Senden("Geheime Nachricht");           // wird an alle registrierten Empfänger gesendet
+            Console.WriteLine("In Firma B gespeichert: " + FirmaB.Gespeichert);
             mb.Senden("Ein schönen guten Morgen");
+            Console.WriteLine("In Firma B gespeichert: " + FirmaB.Gespeichert);
+            
         }
     }
 }
diff --git a/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll b/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll
index 5469ce200061b5bbc0a83491f5e5c595041a7f92..490fc80a5d7eee84b3dc130d1ca72367f2fb1d68 100644
Binary files a/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll and b/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll differ
diff --git a/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb b/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb
index 361faea04662f0529ec925844c55e6d81c5835d6..86d2db5ac322a0a9cc99f88e29eb62ce31d9ce8b 100644
Binary files a/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb and b/09 UebgMailVerteilung/bin/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb differ
diff --git a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.csprojAssemblyReference.cache b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.csprojAssemblyReference.cache
index 74fe67b1ca671095970d4a7fbcae2417231e8f41..e23245258eaf6b6145a13830bacb66ca8fd7c885 100644
Binary files a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.csprojAssemblyReference.cache and b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.csprojAssemblyReference.cache differ
diff --git a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll
index 5469ce200061b5bbc0a83491f5e5c595041a7f92..490fc80a5d7eee84b3dc130d1ca72367f2fb1d68 100644
Binary files a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll and b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.dll differ
diff --git a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb
index 361faea04662f0529ec925844c55e6d81c5835d6..86d2db5ac322a0a9cc99f88e29eb62ce31d9ce8b 100644
Binary files a/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb and b/09 UebgMailVerteilung/obj/Debug/netcoreapp3.1/09 UebgDiMailVerteilung.pdb differ
diff --git a/prog2-ss2020-wienkop.sln b/prog2-ss2020-wienkop.sln
index 655ce10ced0620261dd0db406e5b1bfee2aa68ee..d2fd2bf465e795a6bb7941b1a852cde8316f71b3 100644
--- a/prog2-ss2020-wienkop.sln
+++ b/prog2-ss2020-wienkop.sln
@@ -108,6 +108,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 MailServer", "09TestProj
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 UebgDiMailVerteilung", "09 UebgMailVerteilung\09 UebgDiMailVerteilung.csproj", "{1299E185-D763-4A24-8D6E-A39BAED9398E}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 DelegateVerkettung", "09 DelegateVerkettung\09 DelegateVerkettung.csproj", "{17A26633-0F72-4889-B31E-9A29A80CE4A5}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -314,6 +316,10 @@ Global
 		{1299E185-D763-4A24-8D6E-A39BAED9398E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{1299E185-D763-4A24-8D6E-A39BAED9398E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{1299E185-D763-4A24-8D6E-A39BAED9398E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{17A26633-0F72-4889-B31E-9A29A80CE4A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{17A26633-0F72-4889-B31E-9A29A80CE4A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{17A26633-0F72-4889-B31E-9A29A80CE4A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{17A26633-0F72-4889-B31E-9A29A80CE4A5}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE