An interface in C# is a contract that defines a set of methods and properties that a class must implement. It does not contain any implementation itself, only the signatures. Interfaces are used to specify what a class must do, but not how it does it, allowing for flexible and decoupled code design.