Le sujet dans lequel je suis actuellement est le partage de code. Il est suggéré d'utiliser le modificateur d'accès internal
pour partager le code entre plusieurs fichiers. Mais est-ce? Ou est-ce que je me trompe? Je ne peux pas poster le lien, car la source n'est pas accessible à tout le monde.Est-ce que le modificateur d'accès `internal` peut être utilisé pour diviser une classe sur plusieurs fichiers?
Est-il possible d'avoir la définition d'une classe dans un fichier (comme une interface, ou une classe abstraite) et de l'implémenter dans un autre fichier (et d'utiliser ici internal
)?
Voici un pseudo code (qui ne fonctionne évidemment pas). Définition dans un seul fichier:
internal static class SongLoader
{
internal async static Task<IEnumerable<Song>> Load();
internal async static Task<Stream> OpenData();
}
mise en œuvre dans un autre fichier:
internal static class SongLoader
{
internal const string Filename = "songs.json";
internal static async Task<IEnumerable<Song>> Load()
{
// implementation
}
internal static Stream OpenData()
{
// implemenation
}
}
Ou est-il possible d'avoir Load()
définis dans un fichier et OpenData()
dans un autre, tout en utilisant internal
modificateur d'accès? Est-ce possible? Comment?
dans les fichiers dans le même assembly: https://msdn.microsoft.com/fr-fr/library/7c5ka91b.aspx –
@Stanley: Oui, il doit être dans le même assembly car il est compilé dans le même projet (Voir [Projets partagés] (https://developer.xamarin.com/guides/cross-platform/application_fundamentals/shared_projects/)). – grabner
'internal' est juste un modificateur de visibilité. Cela n'a rien à voir avec la division d'une classe en plusieurs fichiers. Le mot-clé pour cela est «partial». Mais il n'y a pas de «définition d'une classe» que vous décrivez. Les choses les plus proches sont les "méthodes partielles", mais elles doivent renvoyer "void" et ce sont toujours des méthodes privées. –