¿Hay alguna manera de acceder al campo de respaldo de una propiedad para hacer la validación, cambiar el seguimiento, etc.?Acceso al campo de respaldo en una propiedad de automóvil
¿Es posible algo como esto? Si no, ¿hay algún plan para tenerlo en .NET 4/C# 4?
public string Name
{
get;
set
{
if (value != <Keyword>)
{
RaiseEvent();
}
<Keyword> = value;
}
}
El principal problema que tengo es que el uso de las propiedades de auto no permite la misma flexibilidad en la validación, etc., que una propiedad con un campo respaldo explícito hace. Sin embargo, un campo de respaldo explícito tiene la desventaja en algunas situaciones de permitir que la clase en la que está contenido acceda al campo de respaldo cuando debe acceder y reutilizar la validación, cambio de seguimiento, etc. de la propiedad al igual que cualquier otra clase que pueda acceder la propiedad externamente
En el ejemplo anterior el acceso al campo respaldo podría estar en el ámbito de la propiedad evitando así que se eluda la validación de la propiedad, el control de cambios, etc.
Editar: he cambiado < Copia de campo> a < palabra clave >. Propondría una nueva palabra clave similar al valor. campo haría bien aunque estoy seguro de que se está utilizando en una gran cantidad de código existente.
Es una buena solución pero una gran cantidad de código para acceder al campo de la misma manera que accedemos al nuevo valor en un setter con la palabra clave value ser mucho más conciso y elegante. –
Probablemente pueda hacer que la sintaxis sea más agradable agregando operator = y coersion a T en la clase ValidatedValue. Básicamente, usted quiere que se comporte como ValidatedValue es una T. –