Я новичок в c # и пытаюсь выяснить, могу ли я создать несколько библиотек производных классов, каждая из которых представляет определенный элемент. Я назову две библиотеки классов ClassA и ClassB. Каждый класс будет совместно использовать BaseClass (пространство имен BaseNS).
Затем я создал приложение на c #, которое ссылается как на ClassA, так и на ClassB. Это вызвало ошибку, потому что они оба имеют один и тот же BaseClass. Нет проблем, я использовал «Псевдоним» на ссылку. Это работало нормально. Итак, у меня есть:
внешний псевдоним Class1Alias;
внешний псевдоним Class2Alias;
...
Здесь я столкнулся с проблемой.
Я хочу сделать функцию, которая принимает BaseClass в качестве аргумента.
public void SetData (BaseClass bc) {}
Не может сделать это, потому что BaseClass не определен из-за псевдонима. Так и должно быть:
public void SetData (Class1Alias.BaseNameSpace.BaseClass bc) {}
Это работает, но теперь я хочу сделать следующее:
...
Class1Alias.Class1Space.Class1 c1 = new Class1Alias.Class1Space.Class1();
Class2Alias.Class2Space.Class2 c2 = new Class2Alias.Class2Space.Class2();
это работает
Class1Alias.BaseNameSpace.BaseClass bc = (Class1Alias.BaseNameSpace.BaseClass)c1;
SetData(bc);
это не
Class1Alias.BaseNameSpace.BaseClass bc = (Class1Alias.BaseNameSpace.BaseClass)c2;
SetData(bc);
Я попытался привести его к Class2Alias, который работает, но затем я не могу вызвать мою функцию SetData, потому что она хочет Class1Alias.
Есть ли способ обойти это?