Skip to content

Instantly share code, notes, and snippets.

@MelbourneDeveloper
Created August 16, 2020 02:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MelbourneDeveloper/0cc5594c31c06b79f9fbd9313732ac8c to your computer and use it in GitHub Desktop.
Save MelbourneDeveloper/0cc5594c31c06b79f9fbd9313732ac8c to your computer and use it in GitHub Desktop.
Interfaces are passed by reference
class Program
{
static void Main(string[] args)
{
//If this is var, the result will be 0
IHasNumber hasNumber = new StructWithNumber { Number = 0 };
IncrementNumber(hasNumber);
Console.WriteLine(hasNumber.Number);
}
private static void IncrementNumber(IHasNumber number)
{
number.Number++;
}
}
public interface IHasNumber
{
int Number { get; set; }
}
public struct StructWithNumber : IHasNumber
{
public int Number { get; set; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment