Displaying each number of an integer in a sequence
Your method is lying. Not only it's displaying the digits, performing every Console.Write operation that needs to happen, it's also performing the "digit-splitting" logic.

It's more work than what its name says. For a simple coding exercise it's without consequences, but in larger projects if this is a coding habit you have, it can mean much bigger problems.

Separation of Concerns

Let's see what needs to happen here.


Get a valid user input.
Determine what the digits are.
Come up with a string to output.


You haven't included how you're addressing the first concern, so I won't cover it here.

Ideally, the result of determining what the digits are should be just that: some IEnumerable&lt;int&gt; that contains all the digits you want to display. I would make it so that the recursive function that contains the logic for that, works with an IList&lt;int&gt; and adds each digit it finds (instead of outputting it directly to the console).

Then, when your recursive logic completes, you have an IEnumerable&lt;int&gt; to iterate through. Right? Maybe not. string has methods, such as Join() that can make your "digit separator" string very explicit - if you're using .net 4+ you can use the Join&lt;T&gt;(string, IEnumerable&lt;T&gt;) overload:

var input = GetValidUserInput();
if (string.IsNullOrEmpty(input))
{
    return;
}

var digits = SeparateTheDigits(input);

var separator = "  ";
var result = string.Join(separator, digits);

Console.WriteLine(result);


As a result of separating the concerns, you now only write to the console once... and you haven't hard-coded your digit separator into a format string.