The error occurs because you are mixing up the non-Generic version of the comparer with the Generic version of the SortedList. You need to be consistent: Either both have to be Generic, or both non-Generic.
For example, you can do
... new SortedList(comp)
note that there is no <int, string>.
Or you can create a class that is an IComparer<int> (instead of an IComparer) and then use this class to initialize a new SortedList<int, string>(comparer).
But the way you have written it, the compiler thinks that you are calling this overload of the constructor for the Generic SortedList:
SortedList<TKey,TValue>(Int32)
and therefore it complains that it cannot convert from your IComparer to an int.
Note that there is a different constructor like this:
SortedList<TKey,TValue>(IComparer<TKey>)
which presumably is the one that you were trying to invoke. But notice that this takes as an argument an IComparer<TKey>, which is
not the same as an IComparer.