在 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();
}
}