using System.Collections.Generic;
public interface IGreeter
public struct Greeter : IGreeter
Console.WriteLine("Hi!");
public static void Main()
var greeters = new List<IGreeter> { new Greeter(), new Greeter(), new Greeter() };
var greeter = new Greeter();
HackGreeter(ref greeter);
Console.WriteLine(greeter.GreetsAmount);
public static void GreetAll(List<IGreeter> greeters)
foreach (var greeter in greeters)
public static void HackGreeter(ref Greeter greeter)
greeter.GreetsAmount = 10;