#449 – You Can Pass an Interface Variable to a Method
November 7, 2011 1 Comment
You can include a parameter in a method whose type is an interface, allowing you to pass interface variables into the method.
For example, we can write a method that takes variable of type IMoo.
private static void DoSomeMooing(IMoo mooer)
{
for (int i = 0; i < 3; i++)
mooer.Moo();
}
We can now pass into this method a reference to any object that implements IMoo.
We might pass in an interface variable:
Cow bessie = new Cow("Bessie", 4);
IMoo viaMoo = bessie;
DoSomeMooing(viaMoo);

We could also just pass an instance of a Cow directly into the method. It will be implicitly cast to a reference of type IMoo and so the DoSomeMooing method will have access only to the members of Cow that are part of IMoo.
Cow bessie = new Cow("Bessie", 4);
DoSomeMooing(bessie);
Pingback: #454 – Return an Interface as a Return Value from a Method « 2,000 Things You Should Know About C#