In both Ruby and PHP (and I guess other languages as well) there are some utility methods that are called whenever a property is set. ( *instance_variable_set* for Ruby, *__set* for PHP).
So, let's say I have a C# class like this:
public class Person { public string FirstName { get; set; } public string LastName { get; set; } }
Now, let's say that if any property setter from the Person
class is called, I want to call another method first, and then continue with the default behaviour of the setter, and the same applies for the property setters.
Is this possible?
Edit: I want to do this without defining a backing field.
Not generally; a few options though;
It is possible to do directly in the property body itself, but then you need to use a proper backing field instead of auto-implemented properties.
private string firstName; public string FirstName { get { return firstName;} set { if(check(value)) { firstName = value; } } }
Even with auto-implemented properties you get a backing field - this is generated by the compiler and you don't have direct access to it.
Edit:
Seeing as you don't want a backing field, you have other options - using an AOP tool such as PostSharp could help with that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With