创建创建可重载另一个类的类(如Excel - Thisworkbook.Worksheets)
问题描述:
在Excel对象模型“的ThisWorkbook”是具有“工作表”类在它的一类并且可以是重载与索引或表格名称。此外,'工作表'类也具有一些可以在调用构造函数(默认)时调用的属性/方法。创建创建可重载另一个类的类(如Excel - Thisworkbook.Worksheets)
- 例如, MsgBox ThisWorkbook.Worksheets(1).Name '< - by(int)
- E.g. MsgBox ThisWorkbook.Worksheets(“Sheet1”)。Name '< - by(string)
- E.g. 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#中实现这样的对象层次结构...(请原谅,如果这是一个错误的问题)。
答
您误会了操作员。
你所看到的是在Worksheets
类中定义的索引操作符。
在C#中,这将被称为a.b[1]
或a.b["2"]
。
你定义它是这样的:
public SomeType this[int index] { get { ... } }
public SomeType this[string index] { get { ... } }
谢谢你,帮我 – 2013-03-28 12:18:32