Circular Bounded Queue using C#
Exception handling should be added
to the constructor, handling a negative
quesize. Or take a look at Code
Contracts.
Instead of initializing head and
tail to -1, you could use
nullable ints, and adjust your
logic so it doesn't rely on the
magic number -1.
Implement some missing features.
(might have been left out
intentionally): implement ICollection and IEnumerable, isFull().
A minor point would be naming conventions. In C# method names normally start with a capital letter.
Be aware that this is not a thread safe class.
Add some comments, this code isn't that self-documenting. Or, where possible, make it self-documenting, e.g. if ( head == tail ) could be if ( Count == 0 ).