Наследовать только ограниченные свойства в производном классе в C # - PullRequest
0 голосов
/ 30 сентября 2019

В c #:

У меня есть класс UserProfile (модель), который содержит такие поля, как: FName, LName, Email, Password

Как создать класс (модель), производный отКласс UserProfile (модель) и содержит только выбранные свойства.

Например, я хочу создать класс Login (модель) из класса UserProfile (модель), и я хочу сохранить только свойства Email и Password.

Я хочу создать класс ForgotPassword (модель) из класса UserProfile (модель), в котором я хочу сохранить только свойство Email.

Ответы [ 3 ]

0 голосов
/ 30 сентября 2019

Пример использования интерфейса в сочетании с абстрактным классом:

// Different interfaces
interface IUserData
{
    string Email;
    string Password;
}

interface IUserNameData
{
    public abstract string FName;
    public abstract string LName;
}

// Abstract class
abstract class UserProfile : IUserData
{
    public abstract string Email;
    public abstract string Password;
}


// Inherited classs
class LoginData : UserProfile
{
    // Implements IUserData
}

class UserData : UserProfile, IUserNameData
{
    // Implements IUserData and IUserNameData
}
0 голосов
/ 01 ноября 2019

Я думаю, что использование пакета AutoMapper соответствует вашим потребностям.

0 голосов
/ 30 сентября 2019

Я не знаю, соответствует ли эта иерархия вашим потребностям и спецификациям, но, похоже, вы решаете проблему задом наперед.

Вы можете написать, чтобы уважать принцип абстракции и наследования ООП (имена классов не очень актуальнына первый взгляд):

public class ForgotPassword
{
  public string Email;
}

public class Login : ForgotPassword
{
  public string Password;
}

public class UserProfile : Login
{
  public string FName;
  public string LName;
}

Я не знаю, возможно ли сделать то, что вы хотите сделать ...

В C # я думаю, что нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...