Hello,
I’m challenged to make a tempConverter with SOLID.
It has to convert from Celcius, Kelvin, and Fahrenheit.
Now I thought of using an interface called ItemConvert with the classes Celcius, Fahrenheit, and Kelvin implementing that interface.
but if I make the abstract classes to Celcius, toKelvin, and to Fahrenheit, that means I also have to make a to Celcius in the Celcius class which makes no sense.
Anyone who can help me to design this properly

So SOLID really manifests out of the need to manage complexity in large applications.
You can have small things that technically adhere to SOLID, but I don’t think your temperature converter is one of them. A temperature converter is very simple. It’s really just one class, and the “facts” of that class are mathematical invariants – you wouldn’t need Liskov Substitution, Dependency Inversion, the Open/Closed principles, or Interface Segregation, and adding them is just a sign that you understand the principle of SOLID so little that you will actually add complexity where it is not required.
“to Celcius” is not a class. It’s obviously a method in a class. But I suspect the only reason you’re posting it as an entire class is the aforementioned attempt to fit SOLID into a system that is far too simple to be worrying about SOLID.

Good points. I think this type of design question only makes sense if you ask clarifying questions. What is this for? Is it going to be extended to handle things other than the temperature? Are we later going to need a GUI element for various unit conversions and want those GUI elements to all use unit conversion classes that all implement the unit conversion interface, handle the string representation of the units, etc.? If not, then maybe it’s silly to do anything more than static methods called CelsiusToFahrenheit, FahrenheitToCelsius, etc. along with private constant fields for the conversion.

Is this an interview question, or homework? Either way, why not post the code you’ve written, and then people can comment on it?
you can see it as homework it’s for an online course on c#
I did not have any code because I’m still thinking of how to do it.
That makes total sense. Every implementation is different. Try it.
Think about refactoring. First, you make it work then you refactor. The best thing would be if it is tested.

source