私が現在行っているトピックはコード共有です。複数のファイル間でコードを共有するには、アクセス修飾子internal
を使用することをお勧めします。しかしそれは?それとも間違っているのですか?誰もがソースにアクセスできないため、リンクを投稿できません。クラスを複数のファイルに分割するために `internal`アクセス修飾子を使用できますか?
クラスの定義を1つのファイル(インターフェイス、抽象クラスなど)にして、別のファイルに実装することはできますか(ここではinternal
を使用していますか)。
ここにいくつかの疑似コードがあります(明らかに動作していません)。別のファイルに
internal static class SongLoader
{
internal async static Task<IEnumerable<Song>> Load();
internal async static Task<Stream> OpenData();
}
実装:
internal static class SongLoader
{
internal const string Filename = "songs.json";
internal static async Task<IEnumerable<Song>> Load()
{
// implementation
}
internal static Stream OpenData()
{
// implemenation
}
}
またはinternal
アクセス修飾子を使用している間、それは、Load()
1つのファイルと別でOpenData()
で定義されていることが可能である1つのファイルに定義?これは可能ですか?どうやって?
同じアセンブリ内のファイル内:https://msdn.microsoft.com/en-us/library/7c5ka91b.aspx –
@Stanley:同じプロジェクトにコンパイルされるため、同じアセンブリ内にある必要があります([共有プロジェクト](https://developer.xamarin.com/guides/cross-platform/application_fundamentals/shared_projects/)を参照してください)。 – grabner
'internal'は可視性変更子です。クラスを複数のファイルに分割することとは関係ありません。そのキーワードは 'partial'です。しかし、あなたが描いている "クラスの定義"のようなものはありません。最も近いものは「部分的メソッド」ですが、それらは 'void'を返さなければならず、常にprivateメソッドです。 –