У меня есть следующий код:
class SearchCriteria
{
public string Name { get; set; }
public string Email { get; set; }
public string Company { get; set; }
// ... around 20 fields follow
public void Trim()
{
if( ! String.IsNullOrEmpty( Name ) )
{
Name = Name.Trim();
}
if( ! String.IsNullOrEmpty( Email ) )
{
Email = Email.Trim();
}
// ... repeat for all 20 fields in the class.
}
}
Я хочу написать одну функцию, которая будет правильно обрезать поля, например:
public void Trim()
{
Trim( Name );
Trim( Email );
// ...
}
private static void Trim( ref string field )
{
if( ! String.IsNullOrEmpty( field ) )
{
field = field.Trim();
}
}
Конечно, это запрещено в С#. Один из вариантов - написать помощника и использовать отражение. Есть ли другой способ, которым я могу это достичь (отражая то, что многие свойства будут иметь успех в этом конкретном сценарии, и я не могу этого себе позволить?)