An interface in C# can be defined as a type definition like a class. But it only provides declarations and is inherited by classes and structs. It is used with a class to define a contract (an agreement on what is provided by the class to an application). It only declares the methods and different properties and a class will dictate what the method will actually do. It cannot be instantiated as an object and is only used as a collection of methods and property declarations. It defines what operations can be or will be performed by a class.