C# - Pytanie odnośnie odwołania do konstruktora klasy bazowej z modyfikatorem "Protected" w klasie dziedziczącej

0

Hej mam taki problem dlaczego w klasie dziedziczącej po User nie mam dostępu do konstruktora, który posiada modyfikator "Protected" ?
screenshot-20220808202911.png
screenshot-20220808203000.png

0

Klasa user nie ma modyfikatora więc jest z domysłu "internal". Zgaduję że klasa dziedzicząca nie jest w tym samym module więc nie ma dostępu. Zmień modyfikator albo dodaj "internals visible to"

0

No tak działa konstruktor protected. Tylko wywołanie z poziomu klasy lub z wykorzystaniem base w klasie dziedziczącej.
Możesz zrobić w klasie user metode statyczną która zwróci instancje klasy wołając konstruktor z protected z parametrami

class User
    {
        protected  User(int id)
        {

        }                

        protected static User Create(int id) => new User(id);
    }

    class Volatile : User
    {
        public Volatile():base(1)
        {

        }
        public User CreateStableUser()
        {
            var user = User.Create(1);
            return user;
        }

    }  

1 użytkowników online, w tym zalogowanych: 0, gości: 1