An assignment statement assigns the value of an expression to a variable. In general, if the variable being assigned to is a property, the property must be read-write or write-only, otherwise there is an error. If the variable is a read-only data member, the assignment must take place in a constructor appropriate for the type of the data member (that is, shared or not shared), otherwise there is an error.