Существует ли в C# | — или между типами?
Перегрузка методов вам не подходит?
public static void Main(string[]  args)
        {
            //Your code goes here
            W(0);//передаём int
             W("string");//передаём string
        }
void W(string t){
Console.WriteLine(t);
}
void W(int t){
Console.WriteLine(t.ToString());
}
В самоучителях целую главу умудрились написать про перегрузку. А Вас почему это не устраивает?