11
juillet
2007
Comment faire une pseudo partial method en C#2.0
juillet
2007
Avec les délégués bien sûr !
Petit rappel sur les partial methods ici.
Je me suis amusé à faire un équivalent des partial methods avec C#2.0 :
class ValidateException : InvalidOperationException
{
public ValidateException()
{
}
public ValidateException(string message)
: base(message)
{
}
protected ValidateException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
public ValidateException(string message, Exception innerException)
: base(message, innerException)
{
}
}
partial class C1
{
private delegate void ValidateDelegate(string value);
private ValidateDelegate _validateMethod;
private string _field;
public string Prop
{
get { return _field; }
set
{
if (_validateMethod != null)
_validateMethod(value);
_field = value;
}
}
}
partial class C1
{
public C1()
{
_validateMethod = delegate(string value)
{
if (!value.StartsWith("M"))
throw new ValidateException();
};
}
}
{
public ValidateException()
{
}
public ValidateException(string message)
: base(message)
{
}
protected ValidateException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
public ValidateException(string message, Exception innerException)
: base(message, innerException)
{
}
}
partial class C1
{
private delegate void ValidateDelegate(string value);
private ValidateDelegate _validateMethod;
private string _field;
public string Prop
{
get { return _field; }
set
{
if (_validateMethod != null)
_validateMethod(value);
_field = value;
}
}
}
partial class C1
{
public C1()
{
_validateMethod = delegate(string value)
{
if (!value.StartsWith("M"))
throw new ValidateException();
};
}
}