The .NET standard of prefixing an interface name with an I seems to be becoming widespread and isn’t just limited to .NET any more. I have come across a lot of Java code that uses this convention (so it wouldn’t surprise me if Java used it before C# did). Also Flex uses it, and so on. The placing of an I at the start of the name smacks of Hungarian notation though and so I’m uncomfortable with using it.
So the question is, is there an alternative way of denoting that Something is an interface, rather than a class and is there any need to denote it like this anyway. Or is it a case its become a standard and so I should just accept it and stop trying to stir up ‘religious wars’ by suggesting it be done differently?
From the Framework Design Guidelines book:
Also, from the annotations on interface naming:
It has very much become a widely adopted standard, and while it is a form of Hungarian, as Brent states, it doesn’t suffer from the disadvantages of using Hungarian notation in variable names.