Предположим, у меня есть 2 совершенно разных пользовательских класса A и B.
A
B
A a = new A();
B b = new B();
. . .
a = (A) b; //I'm pretty sure this raises a ClassCastException, but how to deal with this issue?
Вы не можете, если B не является производным от A. В этом суть ClassCastException.
Но поскольку A и B совершенно разные, почему вы хотите преобразовать их в первую очередь?
Тестирование перед присвоением переменной.
В Java:
if(a instanceof B) b = (B) a;
В C #:
if(a is B) b = (B) a;
Но, как кто-то упомянул, если вы не выводите класс a и b из c, я не вижу большой пользы от этого задания.