Method Overloading with different return type
The C# specification (section 10.6) states that overloaded members may not differ by only return type and as per http://msdn.microsoft.com/en-us/library/ms229029.aspx
As per your question regarding creating parameters simply to support differing return types? I personally believe that is a terrible solution to the problem. Code maintenance will become difficult and unused parameters are a definite code smell. Does the method really need to be overloaded in that case? Or does it belong in that class? Should something else be created to convert from one return type to another? All things you should ask to derive a more idiomatic solution.
Others already explained the situation. I only would like to add this: You can do what you have in mind by using a generic type parameter:
public T Bar<T>(int a) {
// code
}
And call it like this:
int i = Bar<int>(42);
string s = Bar<string>(42);
The problem is that it is often difficult to do something meaningful with a generic type, e.g. you cannot apply arithmetic operations to it (at least before C# 11). Sometimes generic type constraints can help.
This is logically impossible. Consider the following call:
object o = Bar(42);
or even
var o = Bar(42);
How would the compiler know which method to call?
Edit: Now that I understand what you're actually asking, I think overloading by meaningless parameters is bad practice, and diminished readability, it is much preferable to distinguish by method name:
string BarToStr()
{
}
int BarToInt()
{
}