ViIvanov

params and IEnumerable<> overloads

Dec 6th, 2013
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.86 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. static class Program
  6. {
  7.   static void X<T>(params T[] items) { Console.WriteLine("X<T>(params T[] items), T: {0}", typeof(T)); }
  8.   static void X<T>(IEnumerable<T> items) { Console.WriteLine("X<T>(IEnumerable<T> items), T: {0}", typeof(T)); }
  9.  
  10.   static void Y(params object[] items) { Console.WriteLine("Y(params object[] items), T: {0}", items.First().GetType()); }
  11.   static void Y(IEnumerable<object> items) { Console.WriteLine("Y(IEnumerable<object> items), T: {0}", items.First().GetType()); }
  12.  
  13.   static void Main() {
  14.     var x = new List<int> { 1, 2, 3, };
  15.     X(x);
  16.     // X<T>(params T[] items), T: System.Collections.Generic.List`1[System.Int32]
  17.  
  18.     var y = new List<int> { 1, 2, 3, };
  19.     Y(y);
  20.     // Y(params object[] items), T: System.Collections.Generic.List`1[System.Int32]
  21.   }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment