A method can also have a return type that is a reference type, i.e. the method returns a value that references an object.
In the following example, the Dog.EvilTwin method returns a reference to another Dog object. In this case, the new object is one that we create inside the method.
1
2
3
4
5
6
7
| public Dog EvilTwin(){ Dog myTwin = new Dog(); myTwin.Name = string.Format("Anti-{0}", Name); return myTwin;} |
Here’s an example of how we might call the new method:
1
2
3
4
5
| Dog kirby = new Dog();kirby.Name = "Kirby";Dog twin = kirby.EvilTwin();Console.WriteLine(twin.Name); // Anti-Kirby |

