在 c# 中仅继承派生类中的有限属性



在 c# 中:

我有UserProfile class(model(,其中包含以下字段:FName,LName,电子邮件,密码

如何创建一个从用户配置文件类(模型(派生的类(模型(,并且仅包含选定的属性。

例如,我想从用户配置文件类(模型(创建一个登录类(模型(,我只想保留电子邮件和密码属性。

我想从用户配置文件类(模型(创建忘记密码类(模型(,我只想保留电子邮件属性。

我不知道这个层次结构是否适合您的需求和规格,但似乎您将问题倒退了。

你可以写来尊重 OOP 的抽象和继承原则(类名乍一看不是很相关(:

public class ForgotPassword
{
public string Email;
}
public class Login : ForgotPassword
{
public string Password;
}
public class UserProfile : Login
{
public string FName;
public string LName;
}

我不知道是否有可能做你想做的事情...

在 C# 中,我认为不是。

将接口与抽象类结合使用的示例:

// 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
}

我认为使用AutoMapper包适合您的需求。

class parentA { 公共类 AB { 公共无效 A_AB(( { Console.WriteLine("Im AB from A"(; } } 公共类交流 { 公共无效 A_AC(( { Console.WriteLine("Im AC from A"(; } } } B类:父母A.AB {

}
class C : parentA.AC
{
}
class Program
{
static void Main(string[] args)
{
C c = new C();
B b = new B();
c.A_AC();
b.A_AB();
}
}

相关内容

最新更新