Я пишу обертку в C# вокруг неуправляемого кода. Неуправляемый код создает сеанс, и сеанс может быть динамическим или статическим, основанным на двух вызовах метода.класс дизайн для обертки вокруг неуправляемого кода
динамический и статический содержит различные типы, поэтому я не могу использовать интерфейс здесь.
Если вызывается CreateDynamic, то он является динамическим иначе он статичен.
Мой первоначальный класс выглядит так.
public class Session
{
public void CreateDynamic()
{
dynamic = new Dynamic();
}
public void CreateStatic()
{
stat = new Static();
}
public Dynamic dynamic;
public Static stat;
}
Как только я создаю сеанс, объект должен содержать методы и свойства, которые применимы к созданному сеансу. Доступ к необоснованному вспомогательному сеансу приведет к исключению нулевой ссылки. Есть ли способ обойти эту проблему?
Сделать эти поля * частными * для начала. Подумайте * абстрактный базовый класс * следующий. –
@ HansPassant-Можете ли вы объяснить подробно? – sundar