書式指定子formatで書式を変数で指定する

ToStringの引数に書式変数を指定すればOK

using System;
    public class Hello{
        static void Main(string[] args)
        {
            ulong i = 0x123456789;
        
            var formatString = "X016";
        
            Console.WriteLine($"0x{i.ToString(formatString)}");
        }
    }

実行結果

0x0000000123456789


参考
C# string interpolation with variable format - Stack Overflow