forked from ahotko/c-sharp-code-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PatternMatchingSample.cs
64 lines (57 loc) · 1.28 KB
/
PatternMatchingSample.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
namespace CodeSamples.SyntacticSugars
{
#region Test Classes
public class Cat
{
public bool HasClaws => true;
public void Voice()
{
Console.WriteLine("Meow");
}
}
public class Dog
{
public bool Bites => true;
public void Bark()
{
Console.WriteLine("Woof");
}
}
public class Duck
{
public void Quack()
{
Console.WriteLine("Quack");
}
}
#endregion
public class PatternMatchingSample : SampleExecute
{
private void DecideWhoIsIt(object obj)
{
switch(obj)
{
case Cat cat:
cat.Voice();
break;
case Dog dog when dog.Bites:
dog.Bark();
break;
case Duck duck:
duck.Quack();
break;
default:
break;
}
}
public override void Execute()
{
Title("PatternMatchingSampleExecute");
DecideWhoIsIt(new Cat());
DecideWhoIsIt(new Dog());
DecideWhoIsIt(new Duck());
Finish();
}
}
}