Simplifying methods with operators
We might want two instances of a person to be able to procreate. We can implement this by writing methods. Instance methods are actions an object does to itself; static methods are actions the type does. Which you choose depends on what makes sense for the action.
Note
Good Practice
Having both the static and instance methods to perform similar actions often makes sense. For example, string
has both a Compare
static method and a CompareTo
instance method. This makes the functionality more visible to programmers using the type.
Implementing some functionality with a method
Add two methods to the Person
class that will allow two Person
objects to procreate, as shown in the following code:
// methods to "multiply" public static Person Procreate(Person p1, Person p2) { var baby = new Person { Name = $"Baby of {p1.Name} and {p2.Name}" }; p1.Children.Add(baby); p2.Children.Add(baby); return baby; } public Person ProcreateWith(Person...