Properties with C++/CLI

C++/CLI was influenced by C#, but it also has a shorter syntax for properties.

This is the C# syntax of properties:

private string lastname;
public string Lastname
{
   get
   {
      return lastname;
   }
   set
   {
      lastname = value;
   }
}

The new C++/CLI syntax was influenced by C#:

private:
   String^ lastname;
public:
   property String^ Lastname
   {
      String^ get()
      {
         return lastname;
      }
      void set(String^ value)
      {
         lastname = value;
      }
   }

C++/CLI has another syntax for properties where just the value is set and returned that doesn't need so much typing:

public:
   property String^ Firstname;

With the property keyword a property and a field is generated automatically. This style is very useful if there's no extra verification of the value with the set accessor, and the value returned is not calculated. Let's write smaller code :-)
The variable that's behind the property is generated automatically. There's no need to know the name of the generated variable because the compiler knows when to optimize the code to use the variable instead of the property.

Some time ago we had a discussion about properties and fields in C# - this issue can be solved with the C++/CLI syntax for properties.

Christian