Тема, в которой я сейчас живу, - это обмен кодами. Предполагается, что использование модификатора доступа internal
для обмена кодами между несколькими файлами возможно. Но так ли? Или я ошибаюсь? Я не могу опубликовать ссылку, потому что источник недоступен для всех.Может ли модификатор доступа `internal` использоваться для разделения класса на несколько файлов?
Возможно ли иметь определение класса в одном файле (например, интерфейс или абстрактный класс) и реализовать его в другом файле (и используя здесь 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
}
}
Или возможно иметь Load()
определены в одном файле и OpenData()
в другой, при использовании internal
модификатор доступа? Это возможно? Как?
внутри файлов в одной сборке: 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', и они всегда являются частными методами. –