DotNet сорок знаний

1, перечисление: сущность это класс ,
если для первого перечисления присвоить целочисленное значение, то задняя часть перечисления в порядке возрастания
нумерации может быть преобразованы в целое сильных значений он представляет
C # Перечисление постоянные ( IL могут видеть буквальный источник) с отражателем ,
так как целочисленное значение имеет соответствующий перечень, поэтому переключатель ИНТ видеть его , как
не определяет методы, свойства, события
множество перечисление имеет такое же значение, когда значение сильный поворот, возвращается последний из перечисления
2, IEnumerable интерфейсы до
  тех пор , как реализует этот интерфейс, вы можете использовать Еогеасп к траверсе. Еогеасп Суть цикла является вызов этого интерфейса , чтобы вернуть итератор, вызовите метод итератора MoveNext () может достичь цикла.

  Источник:

Скопируйте код
{
IEnumerator GetEnumerator (); // возвращает итератор
}

общедоступный интерфейс IEnumerator
{
BOOL MoveNext ();
Объект Current {GET}
аннулированию Reset ();
}
скопировать код
  выше легко увидеть:

  IEnumerable интерфейс, включающий GetEnumerable процесс (приобретение объекта итератора), метод MoveNext (проверка на следующий элемент цикла), процесс GetCurrent (переработано, чтобы получить текущий элемент)

3, совокупность
  основных понятий
    набора представляет собой контейнер может содержать кучу вещей. Он разделен на множество необщего и общего сбора

    ArrayList-- реальные данные, которые хранятся в массиве Object [], что соответствует общей List <T>

    HashTable-- необщего набор пар ключ-значение, которое соответствует общей Dictionary <TKey, TValue>

  Динамические массивы и различия, преимущества и недостатки родовые коллекции:

      Динамические массивы не имеют каких-либо ограничений на элементы, которые вы хотите добавить что-нибудь. Основная причина в том, потому что это внутренний массив хранения данных типа Object.

      С общим типом элемента является набором ограничений (существует ограничение на внутренней стороне добавленного элемента)

      Общий сбор, чтобы избежать упаковки, распаковка снижение производительности, в то время как добавление элементов для проверки параметров Тип

  Общие методы
    добавления (), AddRange (), Insert (), InsertRange (), удалить (), RemoveAt ()

    Reverse () - реверсивный элементов в коллекции

4, хэш - таблица
  внутренние механизмы:
    Хеш, набор пар ключ-значение, которое является массив структур внутреннего ведро []. Есть три вещи: ключи, значения хэш - ключ код

    Данные, хранящиеся в главном: частное ведре [] ведрах;

структура ведро Частной
{
общественного объект Key,
общественный объект Val,
общественное ИНТ hash_coll;
}
  операция доступа:

    Принцип хранения: значение индекса рассчитывается в соответствии с ключом хэша. Когда мы элемент к HashTable Добавьте элементы, хранящиеся в индексе массива, где HashTable рассчитывается на основе значения хеш-функции добавил ключ (а потому, что хэш-значение по модулю длины массива, это, конечно, не превышает текущую длину массива) ,

    Каждый объект отсчитал Hashcode не уникален. Там может быть более одного и того же объектов HashCode. Расчетный механизм:

      а, еще раз хэш

      В, режим в бутылках, два одинаковых объект хэш-код позиция равномерной загрузки

      с, когда новый, HashTable в массиве контейнера полон, местами в два раза расширение массива

    Принцип Значения: Когда мы берем элементы из HashTable где (в соответствии с ключом брать), в соответствии с хэш-значением индекса будет рассчитываться принять ключевые элементы и сравнить хеш-значение элементов в ключе и ключевых параметров в настоящее время ищет равенство, но и сравнить эти две ключевые ссылки одинаковы. Если вы удовлетворены, то определяется, чтобы найти элементы, которые должны быть приняты.

5, общий сбор
  ссылочных пространств имен: System.Collections.Generic

  Список <T> - T тип хранения

  Словарь <K, V>

. 6, List <T> и ArrayList сравнение производительности
  ArrayList сохраненные типы коробочный значение необходимо догадку, хранится ссылочный тип требует тип преобразования, и List <T> , очевидно , не нужны эти дополнительные расходы, высокая производительность очевидно

7, используя попробовать блок времени
  работы в сети (розетка), операции с файлами (IO связанные), операции с базами данных, операции деления (время деление на ноль), операция литая

8, программные документы Форма для Windows
  designer.cs дизайн классов и классов приема является связь между классом двух братьев (частично)

9, класс Path
  ChangeExtension (суффикс изменения файла, «Редактировать» , чтобы поддержать уровень строки, на самом деле не переименовывая файлы)

    Combine-- два пути в один путь пути автоматической обработки [сепараторы]

    GetDirectoryName-- получить имя пути файла

    GetExtension-- получить расширение файла

    GetFileName-- получить путь к файлу имя файла

    GetFileNameWithoutExtension-- получить удаление расширения имени файла

    GetFullPath-- получить полный путь к файлу, вы можете получить абсолютный путь относительного пути

    GetTempFileName-- получить уникальное имя временного файла

    GetTempPath-- получить путь временной папки

    ............

10, работающие папки, каталоги
  Delete-- удалять каталоги рекурсивно удалить [] указывает , является ли рекурсивной

  Exists-- определить, существует ли каталог

  move-- ход

  GetDirectories + прибудет подкаталоги каталога

  GetFiles-- получить файлы в каталоге

  ............

11, файловые операции
  File-- управления файлами, статические классы, общее функционирование документа. Копирование, удаление. ножницы

  AppendAllText-- содержание текста будет добавлен путь к файлу в [Если файл не существует, создайте]

  Exists-- определить, есть ли путь к файлу

  ReadAllLines-- читать текстовый файл в массив строк

  ReadAllText-- читать текстовый файл в строку

  WriteAllText-- Сохраните текстовое содержимое в пути к файлу, он переписывает старое содержимое

  Copy-- копия файла [Истинные означает, что если файл существует «крышка», если не так, сообщило ненормально, когда существует файл]

  Создайте файл Create--

  Delete-- Если файл не существует ошибка

  DirectoryInfo-- папка «класс» используется для описания объекта папки

  GetParent-- получить каталог родительского каталога

  Папка FileInfo--, объект папка для описания

  Следует отметить:

    Возвращает путь текущего файла ехе, выполняемого Assembly.GetExecutingAssembly (). Место, не используйте Directory.GetCurrentDirectory (), потому что программа для получения текущего рабочего каталога, путь может стать

    Изменить текст при кодировании, полученный путем кодирования GetEncoding

12, поток файла
  FileStream-- любого типа

  StreamWriter-- строка записи

  StreamReader-- строка для чтения

13, по существу , используя заявление
  по существу попытка {......} наконец участок_программы

  Используя все классы, которые вы хотите ключевые слова используют, чтобы освободить ресурсы, должны реализовывать IDisposable интерфейс

  Закрыть, чтобы выполнить Dispose () и восстановленные объекты

  Использование Использования операторного блока не ловит исключение, потому что, используя только попробовать ...... наконец работу, и нет никакого подвоха блока, поэтому используя блок операторов также добавить свои собственные попробовать ...... поймать блок поймать исключение

14, сериализации и десериализации
  сериализации характеристики

  Binary форматировщик

  Сериализация: двоичный объект форматировщик в поле и значение «текст» способом сохранить в виде текста

    [Сериализуемый]

    Метод класса BinaryFormatter

      Serialize-- графа сериализации объекта в потоке

      Deserialize-- сериализованы предметы, сделанные из потока, возвращенный объект десериализации получен

    Сериализация Примечание:

      а, умирают сериализовать тип должен быть помечен как: [Serializable]

      б, тип родительского класса также должны быть помечены как: [Serializable], когда есть отраженный параметр должен быть «ли Глядя родительский объект класса»

      с, должны также помечены все члены типа такого типа: [Serializable]

      д, сериализация только поле номера последовательности в классе (сериализовать некоторую информацию о состоянии только)

  Десериализация: двоичный форматировщик, сначала создать идентичный объект, а затем установите значение, чтобы увидеть «текст» в области сохранения поля. В соответствии с текстом (поля, значения полей, имена классов) во имя информации класса, создавая новый объект с использованием методов отражения, и установите значение поля на новый объект

рекомендация

отwww.cnblogs.com/Mr-Prince/p/12104607.html