Fields should very rarely be public, but it may make sense some times.
In the particular case above, I recommend making the setter private:
public bool IsGirl { get ; private set ; }
You can't do that with a field.
Additionally, by using a Property, the setter can include validation or logging when such is desirable.
public bool IsGirl
{
get { return isGirl; }
set
{
LOG.Write ( "Changing value of IsGirl" , value ) ;
isGirl = value;
}
}