Excelオブジェクトモデルでは、「Thisworkbook」は「Worksheets 」クラスを含むクラスであり、インデックスまたはシート名でオーバーロードできます。さらに、「Worksheets」クラスには、コンストラクターを呼び出す/呼び出さずに呼び出すことができるいくつかのプロパティ/メソッドもあります(デフォルト)。
- 例:MsgBox ThisWorkbook.Worksheets(1).Name '<-by(int)
- 例:MsgBox ThisWorkbook.Worksheets( "Sheet1")。Name '<-by(string)
- 例:MsgboxThisworkbook.Worksheets.Count'<- 'countプロパティ
別のクラスがあり、オーバーロードできるC#でそのようなクラスを作成するにはどうすればよいですか?1番目のクラスで2番目のクラスのパブリック変数を作成しようとしましたが、デフォルトのコンストラクター(または他のコンストラクターを呼び出すことができますが、一度に1つだけ)を呼び出すことができます
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#でそのようなオブジェクト階層を実現する方法を本当に知りたいです...(これが間違った質問である場合は失礼します)。