Please consider my use case: I'm developing a software system in which there are uniquely identified "items" of different types (users, documents, tickets etc.).
I've started the implementation, and while I'd like to move forward with the implementation, I'm not exactly sure what would be the most suitable unique identifier of the "items". It might be an auto-incremented integer, a GUID, a string containing a prefix + the creation time etc.
Obviously, variables of the unique identifier type are declared all over my classes, and if I intend to change it later - well, it can't be good...
My question is, is there a .NET mechanism for typedef-ing value types, so I can change the 'real' type and the type-specific functionality in a single location (for example, using extension methods) and not worry about the dozens of other occurrences in the code.