私が取り組んでいる現在のクラス ライブラリには、「フィールド」から継承され、読みやすさを維持するためにネストされる 50 を超える特定の「フィールド」タイプを持つ基本クラス (フィールド) があります。例えば...
abstract class Field
{
public int Length { get; set; }
public class FieldA : Field
{
public static void DoSomething()
{
Console.WriteLine("Did something.");
}
}
}
これまでのところ、すべて問題ないように見え、次のようにコードを使用できます。
class Program
{
static void Main(string[] args)
{
Field.FieldA.DoSomething();
}
}
しかし、なぜこれも同様に機能するのでしょうか? コンパイラ/IDE インテリセンスがこれらの「FieldA」を連鎖し続けることを可能にするために、ここで何が起こっているのでしょうか?
class Program
{
static void Main(string[] args)
{
Field.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.FieldA.DoSomething();
}
}
決してアプリケーションを壊すわけではありませんが、それは独特だと思いました。Boo (ライブラリに使用されている実際の言語) でも同じことを行います。