I have seen many times statements like- Please make this feature a first class citizen in so and so language/platform. For example, it is said about enums in C#/.net. So, when is a feature considered a First class citizen in a programming language/platform?
When is a feature considered a First class citizen in a programming language/platform?
language features
DefinitionAn object is first-class when  it:can be stored in variables and data structurescan be passed as a parameter to a subroutine can be returned as the result of a subroutinecan be constructed at runtime has intrinsic identity (independent of any given name)The term object is used  loosely here, not necessarily  referring to objects in  object-oriented programming. The  simplest scalar data types, such as  integer and floating-point numbers,  are nearly always first-class.http://en.wikipedia.org/wiki/First_class_object