fíjate que  en 
resultado lo declaras como string:  
 string resultado; pero en Opcion3 devuelves z como 
integer.  Entonces te da error por eso.
-  public static int Opcion3(ref string x, int y) 
-         { 
-           int z; //<--- integer 
-   
- ..... 
-             return z; 
- } 
-   
En Opcion2 pretendes hacer comparación de cadenas string, si son iguales o no, cuando lo que en realidad quieres hacer comparación de mayor o menor de dos números.
También hay una línea que pones:
  cant = Console.ReadLine();
cant lo has declarado como integer y console.ReadLine() devuelve un valor String, luego hay que convertirlo a Integer.
-   cant = Convert.ToInt32(Console.ReadLine()); 
Tambiés has declarado 
  int res = 0;, que de momento no usas para nada
- using System; 
- using System.Collections.Generic; 
- using System.ComponentModel; 
- using System.Linq; 
- using System.Text; 
- using System.Threading.Tasks; 
-   
- namespace ConsoleApplication1 
- { 
-     class Program 
-     { 
-         static void Main(string[] args) 
-         { 
-             char op = '\0'; 
-             string tex; 
-             int cant; 
-             int resultado; 
-             // int res = 0; 
-             do 
-             { 
-   
-                 Console.WriteLine("{1}{0}{2}{0}{3}{0}{4}{0}{0}{5}", Environment.NewLine, 
-                     "Opcion 1: Incremento de valor", 
-                     "Opcion 2: Comparación de números", 
-                     "Opcion 3: Repetir texto X veces", 
-                     "Opcion 4: ¿", 
-                      "Elija una opcion:"); 
-                 op = Console.ReadKey().KeyChar; 
-   
-                 switch (op) 
-                 { 
-                     case '1': //Incremento de valor 
-                         Opcion1(); 
-                         break; 
-                     case '2'://Comparación de números 
-                          int Valor1; 
-                          int Valor2; 
-                         Console.WriteLine(Environment.NewLine); 
-                         Console.WriteLine("Introduce el valor 1:"); 
-                         Valor1 = Convert.ToInt32(Console.ReadLine()); 
-                         Console.WriteLine("Introduce el valor 2:"); 
-                         Valor2 = Convert.ToInt32(Console.ReadLine()); 
-                         Opcion2(Valor1, Valor2); 
-                         break; 
-                     case '3'://Repetir texto X veces 
-                         Console.WriteLine(Environment.NewLine); 
-                         Console.WriteLine("Introduce texto:"); 
-                         tex = Console.ReadLine(); 
-                         Console.WriteLine("Introduce cantidad:"); 
-                         cant = Convert.ToInt32(Console.ReadLine()); 
-   
-                         resultado = Opcion3(tex, cant); 
-                         Console.WriteLine(tex); 
-                         break; 
-                     case '4': 
-   
-                         break; 
-                 } 
-                 Console.ReadLine(); 
-             } 
-             while (op != 4); 
-   
-         } 
-         public static void Opcion1() 
-         { 
-   
-   
-             Random rdn  = new-  Random ();
-             int a = rdn.Next(10, 31); 
-             int b = rdn.Next(10, 31); 
-             Console.WriteLine(Environment.NewLine); 
-   
-             for (int i = a; i <= b; i++) 
-             { 
-                 Console.WriteLine(i); 
-             } 
-   
-         } 
-   
-   
-         public static void Opcion2(int a, int b) 
-         { 
-   
-           // int c = string.Compare(a, b); //para comparar textos  
-              int c = 0; 
-           if ((a < b)) c = 1; 
-           if ((a > b)) c = 0;  
-             switch (c) 
-             { 
-                 case 1: 
-                     Console.WriteLine(Environment.NewLine); 
-                     Console.WriteLine("{0} es menor que {1}", a, b); 
-                     break; 
-                 case 0: 
-                     Console.WriteLine(Environment.NewLine); 
-                     Console.WriteLine("{0} es mayor que {1}", a, b); 
-                     break; 
-             } 
-         } 
-   
-         public static int Opcion3(string x, int y) 
-         { 
-             int z; 
-   
-             for (int i = 0; i < y; i++) 
-             { 
-                 Console.Write("{0}{1}", x , Convert.ToChar(ConsoleKey.Spacebar)); 
-             } 
-   
-             x = String.Concat(Enumerable.Repeat(x, y)); 
-   
-             z = x.Length; 
-   
-             return z; 
-         } 
-     } 
- } 
-   
-   
Hay cosas que no van bien, en la Opcion1 a veces no funciona
Me he permitido hacer algunos arreglos. Espero que te sirva.- using System; 
- using System.Collections.Generic; 
- using System.ComponentModel; 
- using System.Linq; 
- using System.Text; 
- using System.Threading.Tasks; 
-   
- namespace ConsoleApplication1 
- { 
-     class Program 
-     { 
-         static void Main(string[] args) 
-         { 
-             Pregunta(); 
-         } 
-   
-         public static  void Pregunta() 
-         { 
-   
-   
-          char op = '0'; 
-             while (op >= 4 | op < 1)  
-           { 
-              Console.WriteLine(); 
-              Console.WriteLine("{1}{0}{2}{0}{3}{0}{4}{0}{0}{5}", Environment.NewLine, 
-             "Opcion 1: Incremento de valor", 
-             "Opcion 2: Comparación de números", 
-             "Opcion 3: Repetir texto X veces", 
-             "Opcion 4: ¿", 
-             "Elija una opcion:"); 
-   
-             op = Console.ReadKey().KeyChar; 
-   
-                 switch (op) 
-                 { 
-                     case '1': //Incremento de valor 
-                         Opcion1(); 
-                         break; 
-                     case '2'://Comparación de números 
-                         int Valor1; 
-                         int Valor2; 
-                         Console.WriteLine(Environment.NewLine); 
-                         Console.WriteLine("Introduce el valor 1:"); 
-                         Valor1 = Convert.ToInt32(Console.ReadLine()); 
-                         Console.WriteLine("Introduce el valor 2:"); 
-                         Valor2 = Convert.ToInt32(Console.ReadLine()); 
-                         Opcion2(Valor1, Valor2); 
-                         break; 
-                     case '3'://Repetir texto X veces 
-                         string tex; 
-                         int cant; 
-                         int resultado; 
-                         Console.WriteLine(Environment.NewLine); 
-                         Console.WriteLine("Introduce texto:"); 
-                         tex = Console.ReadLine(); 
-                         Console.WriteLine("Introduce cantidad:"); 
-                         cant = Convert.ToInt32(Console.ReadLine()); 
-   
-                         resultado = Opcion3(tex, cant); 
-                         Console.WriteLine(tex); 
-                         break; 
-                     case '4': 
-                         Opcion4(); 
-                     break; 
-                 } 
-                 Console.WriteLine(Environment.NewLine); 
-             } 
-   
-             Console.ReadLine(); 
-   
-         } 
-   
-         public static void Opcion1() 
-         { 
-   
-             int i = 0; 
-             Random rdn  = new-  Random ();
-             int a = rdn.Next(10, 31); 
-             int b = rdn.Next(10, 31); 
-             Console.WriteLine(Environment.NewLine); 
-   
-             for (i = a; i <= b; i++) 
-             { 
-                 Console.WriteLine(i); 
-             } 
-             Console.WriteLine(Environment.NewLine); 
-             Pregunta(); 
-         } 
-   
-         public static void Opcion2(int a, int b) 
-         { 
-   
-             // int c = string.Compare(a, b); //para comparar textos  
-             int c = 0; 
-             if ((a < b)) c = 1; 
-             if ((a > b)) c = 0; 
-             switch (c) 
-             { 
-                 case 1: 
-                     Console.WriteLine(Environment.NewLine); 
-                     Console.WriteLine("{0} es menor que {1}", a, b); 
-                     break; 
-                 case 0: 
-                     Console.WriteLine(Environment.NewLine); 
-                     Console.WriteLine("{0} es mayor que {1}", a, b); 
-                     break; 
-             } 
-             Console.WriteLine(Environment.NewLine); 
-             Pregunta(); 
-         } 
-   
-         public static int Opcion3(string x, int y) 
-         { 
-             int z; 
-   
-             for (int i = 0; i < y; i++) 
-             { 
-                 Console.Write("{0}{1}", x, Convert.ToChar(ConsoleKey.Spacebar)); 
-             } 
-   
-             x = String.Concat(Enumerable.Repeat(x, y)); 
-   
-             z = x.Length; 
-             Console.WriteLine(Environment.NewLine); 
-             Pregunta(); 
-             return z; 
-   
-         } 
-         public static void Opcion4() 
-         { 
-             Console.WriteLine(Environment.NewLine); 
-                   Console.WriteLine("Opción no definida"); 
-          } 
-   
-   
-     } 
- } 
Ahora, si pones algo distinto de 1, 2, 3, 4, vuelve a mostrar las opciones y pide que elijas una opción. Una vez elegida la opción y realizada la tarea, de nuevo vuelve a mostrar las opciones y de nuevo pregunta por otra opción. 
CORRECCIÓNCorregida esta línea
    while (op >= 4 | op <= 0) 
era así: