创建自己的对象模型(如Excel VBA)

本文关键字:Excel VBA 自己的 对象模型 创建 | 更新日期: 2023-09-27 18:05:36

我是新来的Stackoverflow &如果我问错了问题,希望大家能原谅我。我刚刚开始学习c#和相关课程。我想到的一个非常基本的问题是如何创建类的对象模型(层次结构)。让我解释一下:

假设我有一个名为PEX的类。当我实例化这个类的时候,它应该包含一些属性,方法;另一个类叫做Windows。现在Windows也会包含一些方法&财产,另一个类Window

class Windows &窗口不能直接访问,只能通过PEX类访问。

Windows将返回所有Windows实例....就像Excel对象模型。

我应该能够做到foreach(窗口窗口在PEX.Windows) {....和其他类似的东西……我也读继承,但不能得到这个对象模型。

public class PEX
{
    public _Windows Windows;
    public PEX()
    {
        Windows = new _Windows();
    }
}
public class _Windows
{
    public _Window Window;
    private int _count;
    public _Windows()
    {
        Window = new _Window();
        _count = 10;
    }
    public int Count
    {
        get { return _count; }
    }       
}
public class _Window
{
    private string _title;
    public _Window()
    {
        _title = "Roshan";
    }
    public string Title
    {
        get { return _title; }
    }
}

创建自己的对象模型(如Excel VBA)

您所描述的通常被称为工厂模式。这是父类负责创建子类的地方。另外,您可能希望避免使用Window作为类名。下面是一个简单的例子,其中一个类有一个嵌套类。

public class PEX
{
 public List<PexWindow> Windows { get; set; }//list of windows you can foreach on
 public PEX()
 {
  Windows = new List<PexWindow>();//constructor to make sure the list can be worked with
 }
 private class PexWindow
 {
  public int Param { get; set; }
  public string Description { get; set; }
 }
}