これは私の最初のStackOverflow投稿なので、サイトを管理している人たちと積極的に他の人を支援してくれている人たちに心からの感謝を述べたいと思います。StackOverflowは、C#コードの課題を解決するのに非常に役立つリソースです。
クラスの説明:MS VisualStudio 2010 C#.NETコンソールアプリには、次の基本/派生階層があります。
Entry->DirEntryEntry->FileEntry->AudioFileEntry->OutputFileEntry
...後者の3つは、それぞれ次の基本/派生階層のメンバーです。
Directory->AudioDirectory->OutputDirectory
...そのような:
Directoryメンバーがいますpublic FileEntry[] file_entries;AudioDirectoryメンバーがいますpublic AudioFileEntry[] file_entries;OutputDirectoryメンバーがいますpublic OutputFileEntry[] file_entries;
基本クラスEntryは次の方法で宣言されます。
public class Entry : IComparable
{
    public string name;
    public int entryID;
    public int parentID;
    //(other code omitted)
}
Directoryまた、問題のないメンバーpublicもありますが、それよりも深くオーバーライドされないDirEntry[] dir_entries;ことに注意してください(たとえば、ありません)。DirEntryDirectoryAudioDirEntry
問題: 型がまたはの場合に、基本クラスのメソッド内または他のクラスから共通メンバーNullReferenceExceptionを読み取ろうとしています。file_entries[n]DirectoryAudioDirectoryOutputDirectory
関連するクラス、メンバー、またはメソッドは静的ではありません。私は使ってみましnewたoverrideが、役に立ちませんでした。プロパティを作成しようとしてfile_entriesいます:
public class Directory
{
    public virtual FileEntry[] file_entries { get; set; }
}
public class AudioDirectory : Directory
{
    public override AudioFileEntry[] file_entries { get; set; }
    //(other code omitted)
}
...エラー「... 'app1.AudioDirectory.file_entries': type must be 'app1.FileEntry[]' to match overridden member 'app1.Directory.file_entries'」で失敗します
目標:オブジェクトがどの派生型であるかに関係なく、file_entries基本クラスのメソッドで参照する機能。上記は本質的にポリモーフィズムのすべてであり、新しいタイプに頼ることなくこれを達成する方法があるはずDirectoryなので、私の腸はおそらく単純なものを見落としていると私に言います。dynamic
提案?
-タービン