Something between a class and a struct
                            
                         
                        
                     
                 
                
                    Hi,
Consider this:
Dim Male as new Gender(EnumGender.Male)
Person1.Gender=Male
Person2.Gender=Male
Person2.Gender.Name="Female"
If  Gender was an object, Person1 would have turned female together with  Person2. What I wanted to say was: "I do have a GenderCode for Person2,  and you, Gender, should go figure out what exact Enumerator value should  be attached to that". I've hacked this but it doesn't feel right. The  correct way would be:
Person2.enumGender = GenderName2Enum("Female")
which  is much work (is there a function like that? where is it?) and just  feels old-fashioned. I'd love some syntactic sugar somehow that let's  you say "I'm not changing a complete object, just a value of the object  it belongs too, but I do it in a luxurious way. Maybe like
Person2.Gender!Name="Female"
Saying:  I'm changing a property of the Gender, but I only mean it for Person2  so if some other object happens to have the exact same Gender object  please clone it before this one is changed by me. (remotely similar to  the way strings are handled) 
The Enum declaration could have some property-like functions like below:
Public Enum Gender
  Male=0
  Female=1
  Public Set Name(Value as String)
  if Value="Male" then return Male
  if Value="Female" then return Female
  Throw Exception("What?")
  End Set
  Public Get Name
  if me=Male then return "Male"
  if me=Female then return "Female"
  End Set
  Public Set Code(Value as Integer)
  if Value=1 then return Male
  if Value=2 then return Female
  Throw Exception("What?")
  End Set
End Enum
In  my case I have 1, Man, Male all meaning Gender.Male. And I did write  code that wouldn't turn Person1 in the first example to be female. But  as people using my objects wouldn't expect that behaviour, I'd like to  see a nice way to put this in the next version of VB.