C# 什么';实现这一点的最佳解决方案是什么?

C# 什么';实现这一点的最佳解决方案是什么?,c#,.net,C#,.net,我正在使用的项目将只有一个有朋友的个人资料 我已经准备好了 静态类配置文件 班友 配置文件包含静态好友集合 但是profile和friend的变量和name,pic。。等 所以我决定创建一个person抽象类并继承它 然后我发现我不能从person继承静态类[profile],因为变量没有属性 所以我亲自将变量设置为静态变量 然后,每个朋友都没有自己的变量,因为静态变量将属于朋友类 我是新手,我知道这是个愚蠢的问题 但实现这一点的最佳方式是什么 为了便于访问,我更喜欢使用静态配置文件 为了便

我正在使用的项目将只有一个有朋友的个人资料

我已经准备好了

  • 静态类配置文件

  • 班友

  • 配置文件包含静态好友集合

但是profile和friend的变量和name,pic。。等

所以我决定创建一个person抽象类并继承它

然后我发现我不能从person继承静态类[profile],因为变量没有属性

所以我亲自将变量设置为静态变量

然后,每个朋友都没有自己的变量,因为静态变量将属于朋友类

我是新手,我知道这是个愚蠢的问题

但实现这一点的最佳方式是什么

为了便于访问,我更喜欢使用静态配置文件


为了便于访问,我更喜欢使用静态对象

避免使用静态类。如果您想要一个实例,只需创建一个实例。静态类使测试变得困难

但回到设计,也许可以尝试引入一个用户类:

class User
 - name
 - picture
 - other properties

class Profile
 - User myAccountInfo
 - List<User> friends
类用户
-名字
-图画
-其他属性
班级简介
-用户myAccountInfo
-列出朋友

避免使用静态类。如果您想要一个实例,只需创建一个实例。静态类使测试变得困难

但回到设计,也许可以尝试引入一个用户类:

class User
 - name
 - picture
 - other properties

class Profile
 - User myAccountInfo
 - List<User> friends
类用户
-名字
-图画
-其他属性
班级简介
-用户myAccountInfo
-列出朋友

也许是这样的

class User
{
    public User(string name, object picture)
    {
        Name = name;
        Picture = picture;
    }

    public string Name { get; set; }
    public object Picture { get; set; } //Change object to a class that holds Picture information.
}

class Profile : User
{
    private static Profile _profile;

    public List<User> Friends = new List<User>(); //This List<T> can contain instances of (classes that derive from) User.

    public Profile(string name, object picture) : base(name, picture) { }
    public static Profile GetProfile()
    {
        return _profile ?? (_profile = new Profile("NameOfProfileHere", null));
    }
}
类用户
{
公共用户(字符串名称、对象图片)
{
名称=名称;
图片=图片;
}
公共字符串名称{get;set;}
公共对象Picture{get;set;}//将对象更改为保存图片信息的类。
}
类配置文件:用户
{
私有静态配置文件_配置文件;
public List Friends=new List();//此列表可以包含(派生自)User的类的实例。
公共配置文件(字符串名称,对象图片):基(名称,图片){}
公共静态配置文件GetProfile()
{
返回_profile??(_profile=newprofile(“文件名”),null);
}
}

也许是这样的

class User
{
    public User(string name, object picture)
    {
        Name = name;
        Picture = picture;
    }

    public string Name { get; set; }
    public object Picture { get; set; } //Change object to a class that holds Picture information.
}

class Profile : User
{
    private static Profile _profile;

    public List<User> Friends = new List<User>(); //This List<T> can contain instances of (classes that derive from) User.

    public Profile(string name, object picture) : base(name, picture) { }
    public static Profile GetProfile()
    {
        return _profile ?? (_profile = new Profile("NameOfProfileHere", null));
    }
}
类用户
{
公共用户(字符串名称、对象图片)
{
名称=名称;
图片=图片;
}
公共字符串名称{get;set;}
公共对象Picture{get;set;}//将对象更改为保存图片信息的类。
}
类配置文件:用户
{
私有静态配置文件_配置文件;
public List Friends=new List();//此列表可以包含(派生自)User的类的实例。
公共配置文件(字符串名称,对象图片):基(名称,图片){}
公共静态配置文件GetProfile()
{
返回_profile??(_profile=newprofile(“文件名”),null);
}
}

您大概知道静态变量意味着每个人共享相同的值?也许你根本不应该使用static,而应该从person类派生所有内容。是的,朋友们不共享相同的值,但只在一个类中使用profile,我想从任何其他类访问profile,所以我更喜欢将其实现为static。假设你知道静态变量意味着每个人共享相同的值?也许您根本不应该使用static,而是从person类派生所有内容。是的,朋友不共享相同的值,但只有一个配置文件,我想从任何其他类访问配置文件,所以我更愿意实现它,因为staticfriend可能有不在user中的变量!!我想从任何其他类访问概要文件,所以我更愿意将其实现为static@Ahmed阿德尔:听起来你是在尝试程序化编程,而不是OOP。。。不要这样做。取而代之的是将其作为成员变量,并让其他对象通过Profile类的实例访问它。@Yaur我从未感觉到程序编程和OOP之间的区别=(所以我做了一个,但是做了一些更改,我使用have static variable user创建了一个静态类概要文件,但是现在的问题是我从xaml访问profile.name,就像{Binding Source={x:static local:profile.name}}现在,我将如何访问Profile.Data.Name???friend可能有不在user中的变量!!我想从任何其他类访问Profile,所以我更愿意将其实现为static@Ahmed阿德尔:听起来你是在尝试程序化编程,而不是OOP……不要这样做,而是把它变成一个成员变量,让其他对象访问我通过Profile类的一个实例,@Yaur我从来没有感觉到过程编程和OOP=(所以我做了一个,但是做了一些更改,我用class user和have static variable user创建了一个静态类Profile),但是现在的问题是,我从xaml访问Profile.name,就像{绑定源代码一样={x:Static local:Profile.Name}现在我将如何访问Profile.Data.Name????