集合类中嵌套定义和引用的举例

        在开发应用程序时,有时候需要定义简单的类,有时候需要定义复杂的集合类型,复杂的集合类型既可以用于存储简单类的对象,也可以用于存储其它集合类型。这时候就用到了集合类中嵌套定义和引用。下面代码示例。

ListBase类:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    public class ListBase
    {
        //int number;
        public MyList parentList;

    }
}
复制代码
MyList类:
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections;

namespace ListEmbeddedTest
{
    public class MyList : ListBase
    {
        public ArrayList m_children = new ArrayList();
    }
}
复制代码
World类: 
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    public class World : ListBase
    {
        public double  radius;
        public string name;
        
    }
}
复制代码
PathPoint类:
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    public class PathPoint : ListBase
    {
        public int pointCount;
    }
}
复制代码
PathList类:
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    public class PathList : MyList
    {
        public int totalNum;
    }
}
复制代码
Consumer类:
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    //消费者:使用项目中定义的所有类
    public class Consumer
    {
        public string consumerName;
        public MyList renderableObjectsList=new MyList();
    }
}
复制代码
Program类:
复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListEmbeddedTest
{
    class Program
    {
        static void Main(string[] args)
        {
            PathPoint pathPoint=new PathPoint();
            pathPoint.pointCount=4;

            PathPoint pathPoint1 = new PathPoint();
            pathPoint1.pointCount = 3;

            PathList pathList = new PathList();
            pathList.totalNum = 7;
            pathList.m_children.Add(pathPoint);
            pathList.m_children.Add(pathPoint1);

            pathPoint.parentList = pathList;
            pathPoint1.parentList = pathList;

            World world = new World();
            world.radius = 6378137;
            world.name = "Earth";

            Consumer consumer = new Consumer();
            consumer.consumerName = "主应用程序";
            consumer.renderableObjectsList.m_children.Add(pathList);
            consumer.renderableObjectsList.m_children.Add(world);

            System.Console.WriteLine("Hello");
        }
    }
}
复制代码

详细的解析就不多说了,大家运行源码体会吧。

源码下载:源码

posted @   rainbow70626  阅读(288)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示