在 Excel 对象模型中,“ Thisworkbook ”是一个包含“ Worksheets ”类的类,可以用索引或工作表名称重载。此外,“ Worksheets ”类还具有一些属性/方法,可以在调用/不调用构造函数的情况下调用(默认)。
- 例如 MsgBox ThisWorkbook.Worksheets(1).Name '<-- by (int)
- 例如 MsgBox ThisWorkbook.Worksheets("Sheet1").Name '<- by (string)
- 例如 Msgbox Thisworkbook.Worksheets.Count '<- 'count 属性
如何在C#中创建这样的类,其中包含另一个类并且可以重载?我尝试在第一类中创建第二类的公共变量,但我只能调用默认构造函数(或其他 - 但一次只能调用一个)
class A
{
public B b = new B(); // <-- this is 1st constructor but how to overload ?
}
class B
{
public B() // Default Constructor
{
}
public B(int i) // Constructor 2
{
}
public B(string s) // Constructor 3
{
}
public int Count // Property
{
get { return 0; }
}
}
//------------------------------------------------------------
class Main()
{
A a = new A();
a.b.Count(); // <-- THIS WORKS
// a.b(1).Name; <-- HOW TO, USING THE SAME CLASS?
// a.b("A").Name; <-- HOW TO, USING THE SAME CLASS?
}
我知道我没有创建一个对象数组——在这个例子中可以返回 1 或“A”,但我只需要这个概念(你猜对了吗?)。我也见过一些使用 List 的例子,但我真的很想知道如何在 C# 中实现这样的对象层次结构......(如果这是一个错误的问题,请原谅)。