add unity project

add SOLID examples
This commit is contained in:
2025-04-09 07:49:12 +02:00
parent ff37858d12
commit a4f498a33d
102 changed files with 8244 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
namespace DefaultNamespace
{
public class BaseClass {}
public class ChildClass : BaseClass {}
public delegate void CoVarianceHandler(ChildClass args);
public delegate BaseClass ContraVarianceHandler();
public class Delegates
{
public event CoVarianceHandler CoVariance;
public event ContraVarianceHandler ContraVariance;
public void OnBaseClass(BaseClass args) {}
public void OnChildClass(ChildClass args) {}
public BaseClass OnReturnBaseClass()
{
return new BaseClass();
}
public ChildClass OnReturnChildClass()
{
return new ChildClass();
}
public void Init()
{
CoVariance += OnBaseClass;
CoVariance += OnChildClass;
CoVariance?.Invoke(new ChildClass());
// CoVariance?.Invoke(new BaseClass()); // is not working, because delegate expect an instance of ChildClass
ContraVariance += OnReturnBaseClass;
ContraVariance += OnReturnChildClass;
BaseClass baseClass = ContraVariance?.Invoke();
// ChildClass childClass = ContraVariance?.Invoke(); // is not working, because delegate returns only an instance of BaseClass
}
}
}