Inicializar campos de clase en constructor o en declaración?


He estado programando en C# y Java recientemente y tengo curiosidad por saber dónde es el mejor lugar para inicializar mis campos de clase.

¿Debo hacerlo en la declaración?:

public class Dice
{
    private int topFace = 1;
    private Random myRand = new Random();

    public void Roll()
    {
       // ......
    }
}

O en un constructor?:

public class Dice
{
    private int topFace;
    private Random myRand;

    public Dice()
    {
        topFace = 1;
        myRand = new Random();
    }

    public void Roll()
    {
        // .....
    }
}

Tengo mucha curiosidad sobre lo que algunos de ustedes veteranos piensan que es la mejor práctica. Quiero ser coherente y atenerme a un enfoque.


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52