我可以在C#中的类中有一个类吗?

时间:2011-07-27 17:00:09

标签: c#

我有以下课程:

public class NoteLink
{

    public IList<NoteLinkDetail> NoteLinkDetails
    {
        get { return _noteLinkDetails; }
    }
    private List<NoteLinkDetail> _noteLinkDetails = new List<NoteLinkDetail>();

    public NoteLink()
    {
        _noteLinkDetails = new List<NoteLinkDetail>();
    }

}

然后是另一个在第一个类中使用的类。

public class NoteLinkDetail
{
    public string L { get; set; }
    public string R { get; set; }
}

我能做些什么来优化它。我需要第二个类,因为我使用JSON将NoteLinkDetail的内容存储在一个字符串中。但是在C#中有这样的内部类吗?关于如何优化此代码的任何建议?感谢。

4 个答案:

答案 0 :(得分:8)

是的,你可以。只是嵌套它。

public class NoteLink
{
    // ...

    public NoteLink()
    {
        _noteLinkDetails = new List<NoteLinkDetail>();
    }

    public class NoteLinkDetail
    {
        public string L { get; set; }
        public string R { get; set; }
    }
}

此外,如果它没有暴露在外部类之外,那么你的内部类甚至可以private对外层用户保持不可见

答案 1 :(得分:3)

是的,C#允许嵌套类。

C#嵌套类更像是C ++中的嵌套类,而不是Java中的“内部类”。此链接说明:

http://blogs.msdn.com/b/oldnewthing/archive/2006/08/01/685248.aspx

答案 2 :(得分:1)

不确定;只是从外部类

中声明内部类
class NoteLink
{
    class NoteLinkDetail
    {

    }
}

答案 3 :(得分:0)

是的,您可以在C#中使用嵌套类