使用 C# 嵌套类和辅助功能

本文关键字:功能 嵌套 使用 | 更新日期: 2023-09-27 18:32:49

我知道嵌套类。 我如何以这样的方式设计我的嵌套类,即嵌套类的父类的

一侧没有人能够访问嵌套类,如实例创建等,因为我希望子类是私有的。 我想公开我的子类属性,通过父类属性或方法方法处理所有内容。 请指导我为这种嵌套编写代码上课。谢谢

public class Person
{
private string _firstName;
private string _lastName;
private DateTime _birthday;
//...
public class FirstNameComparer : IComparer<Person>
{
    public int Compare(Person x, Person y)
    {
        return x._firstName.CompareTo(y._lastName);
    }
}
}

使用 C# 嵌套类和辅助功能

内部类标记为private而不是public

public class Person
{
    private string _firstName;
    private string _lastName;
    private DateTime _birthday;
    private FirstNameComparer firstNameComparer = new FirstNameComparer();
    public int CompareFirstNames(Person x, Person y)
    {
       return firstNameComparer.Compare(x, y);
    }
    //...
    private class FirstNameComparer : IComparer<Person>
    {
        public int Compare(Person x, Person y)
        {
            return x._firstName.CompareTo(y._lastName);
        }
    }
}

你可以把嵌套的类private。主类将负责创建嵌套类实例。

你可以对嵌套类使用私有访问器。如果你想公开它的一些属性,你可以为主类创建新属性,如下所示:

private FirstNameComparer _FirstNameComparer = new FirstNameComparer();
public int Compare(Person x, Person y)
    {
        return _FirstNameComparer.Compare(Person x, Person y); 
    }