🗊Презентация Структуры, перечисления

Нажмите для полного просмотра!
Структуры, перечисления, слайд №1Структуры, перечисления, слайд №2Структуры, перечисления, слайд №3Структуры, перечисления, слайд №4Структуры, перечисления, слайд №5Структуры, перечисления, слайд №6Структуры, перечисления, слайд №7Структуры, перечисления, слайд №8Структуры, перечисления, слайд №9Структуры, перечисления, слайд №10Структуры, перечисления, слайд №11Структуры, перечисления, слайд №12Структуры, перечисления, слайд №13Структуры, перечисления, слайд №14Структуры, перечисления, слайд №15Структуры, перечисления, слайд №16Структуры, перечисления, слайд №17Структуры, перечисления, слайд №18Структуры, перечисления, слайд №19Структуры, перечисления, слайд №20Структуры, перечисления, слайд №21

Содержание

Вы можете ознакомиться и скачать презентацию на тему Структуры, перечисления. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Структуры, перечисления
Лекция №11
Описание слайда:
Структуры, перечисления Лекция №11

Слайд 2





Структуры
Структура — тип данных, аналогичный классу, но имеющий ряд важных отличий от него
Описание слайда:
Структуры Структура — тип данных, аналогичный классу, но имеющий ряд важных отличий от него

Слайд 3





Отличие структур
структура является значимым, а не ссылочным типом данных;
структура не может участвовать в иерархиях наследования, она может только реализовывать интерфейсы;
в структуре запрещено определять конструктор по умолчанию, поскольку он определен неявно и присваивает всем ее элементам значения по умолчанию (нули соответствующего типа);
в структуре запрещено определять деструкторы.
Описание слайда:
Отличие структур структура является значимым, а не ссылочным типом данных; структура не может участвовать в иерархиях наследования, она может только реализовывать интерфейсы; в структуре запрещено определять конструктор по умолчанию, поскольку он определен неявно и присваивает всем ее элементам значения по умолчанию (нули соответствующего типа); в структуре запрещено определять деструкторы.

Слайд 4





Почему структуры, а не классы?
Иногда прямой доступ к объектам как к значениям простых типов оказывается полезно иметь, например, ради повышения эффективности программы. Ведь каждый доступ к объектам (даже самым мелким) по ссылке связан с дополнительными издержками на расход вычислительных ресурсов и оперативной памяти.
Описание слайда:
Почему структуры, а не классы? Иногда прямой доступ к объектам как к значениям простых типов оказывается полезно иметь, например, ради повышения эффективности программы. Ведь каждый доступ к объектам (даже самым мелким) по ссылке связан с дополнительными издержками на расход вычислительных ресурсов и оперативной памяти.

Слайд 5





Синтаксис структуры
[ атрибуты ] [ спецификаторы ] struct имя_структуры [ : интерфейсы ]
 {  тело_структуры [ ; ]}
Пример:
public struct Book { 
public decimal price; 
public string title; 
public string author; }
Описание слайда:
Синтаксис структуры [ атрибуты ] [ спецификаторы ] struct имя_структуры [ : интерфейсы ]  {  тело_структуры [ ; ]} Пример: public struct Book { public decimal price; public string title; public string author; }

Слайд 6





Спецификаторы доступа
Из спецификаторов доступа допускаются только public, internal и private (последний — только для вложенных структур).
Почему не protected???
Описание слайда:
Спецификаторы доступа Из спецификаторов доступа допускаются только public, internal и private (последний — только для вложенных структур). Почему не protected???

Слайд 7





Тело структры
Тело структуры может состоять из констант, полей, методов, свойств, событий, индексаторов, операций, конструкторов и вложенных типов.
Описание слайда:
Тело структры Тело структуры может состоять из констант, полей, методов, свойств, событий, индексаторов, операций, конструкторов и вложенных типов.

Слайд 8





Особые отличия в объявлении тела структуры
структуры не могут быть абстрактными (abstract), к тому же по умолчанию они бесплодны (sealed);
методы структур не могут быть абстрактными и виртуальными;
Переопределяться могут только методы, унаследованные от базового класса object;
параметр this интерпретируется как значение, поэтому его можно использовать для ссылок, но не для присваивания;
при описании структуры нельзя задавать значения полей по умолчанию.
Описание слайда:
Особые отличия в объявлении тела структуры структуры не могут быть абстрактными (abstract), к тому же по умолчанию они бесплодны (sealed); методы структур не могут быть абстрактными и виртуальными; Переопределяться могут только методы, унаследованные от базового класса object; параметр this интерпретируется как значение, поэтому его можно использовать для ссылок, но не для присваивания; при описании структуры нельзя задавать значения полей по умолчанию.

Слайд 9





Пример
struct Complex
    { public double re, im;
        public Complex( double re_, double im_ )
        {            re = re_; im = im_;       // можно использовать this.re, this.im        }
        public static Complex operator + ( Complex a, Complex b )        {
            return new Complex( a.re + b.re, a.im + b.im );}
        public override string ToString()
        {
            return ( string.Format( "({0,2:0.##};{1,2:0.##})", re, im ) );
        }
Описание слайда:
Пример struct Complex     { public double re, im;         public Complex( double re_, double im_ )         {            re = re_; im = im_;       // можно использовать this.re, this.im        }         public static Complex operator + ( Complex a, Complex b )        {             return new Complex( a.re + b.re, a.im + b.im );}         public override string ToString()         {             return ( string.Format( "({0,2:0.##};{1,2:0.##})", re, im ) );         }

Слайд 10





Complex a = new Complex( 1.2345, 5.6 );
Complex a = new Complex( 1.2345, 5.6 );
Console.WriteLine( "a = " + a );
Complex b;
b.re = 10; b.im = 1;
Console.WriteLine( "b = " + b );
Complex c = new Complex();
Console.WriteLine( "c = " + c );
  c = a + b;
  Console.WriteLine( "c = " + c );
Описание слайда:
Complex a = new Complex( 1.2345, 5.6 ); Complex a = new Complex( 1.2345, 5.6 ); Console.WriteLine( "a = " + a ); Complex b; b.re = 10; b.im = 1; Console.WriteLine( "b = " + b ); Complex c = new Complex(); Console.WriteLine( "c = " + c );   c = a + b;   Console.WriteLine( "c = " + c );

Слайд 11





Стандартные структуры
Point Пространство имен:  System.Drawing
Сборка:  System.Drawing (в System.Drawing.dll)
Rectangle  Пространство имен:  System.Drawing
Сборка:  System.Drawing (в System.Drawing.dll)
Описание слайда:
Стандартные структуры Point Пространство имен:  System.Drawing Сборка:  System.Drawing (в System.Drawing.dll) Rectangle  Пространство имен:  System.Drawing Сборка:  System.Drawing (в System.Drawing.dll)

Слайд 12





Перечисления
Перечисление (enumeration) — это определяемый пользователем целочисленный тип.
Описание слайда:
Перечисления Перечисление (enumeration) — это определяемый пользователем целочисленный тип.

Слайд 13





Перечисления
Когда вы объявляете перечисление, то специфицируете набор допустимых значений, которые могут принимать экземпляры перечислений. Но мало того — этим значениям еще должны быть присвоены имена, понятные для пользователей. Если где-то в коде попытаться присвоить экземпляру перечисления значение, не входящее в список допустимых, компилятор выдаст ошибку.
Описание слайда:
Перечисления Когда вы объявляете перечисление, то специфицируете набор допустимых значений, которые могут принимать экземпляры перечислений. Но мало того — этим значениям еще должны быть присвоены имена, понятные для пользователей. Если где-то в коде попытаться присвоить экземпляру перечисления значение, не входящее в список допустимых, компилятор выдаст ошибку.

Слайд 14





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

Слайд 15





Объявление
enum имя {список_перечисления};
Пример:
enum UI : long { Name, Family, ShortName = 5, Age, Sex } 
class Program { static void Main() { 
UI user1; 
for (user1 = UI.Name; user1 <= UI.Sex; user1++) Console.WriteLine("Элемент: \"{0}\", значение {1}",user1,(int)user1); 
Console.ReadLine(); } }
Описание слайда:
Объявление enum имя {список_перечисления}; Пример: enum UI : long { Name, Family, ShortName = 5, Age, Sex } class Program { static void Main() { UI user1; for (user1 = UI.Name; user1 <= UI.Sex; user1++) Console.WriteLine("Элемент: \"{0}\", значение {1}",user1,(int)user1); Console.ReadLine(); } }

Слайд 16





Объявление
Описание слайда:
Объявление

Слайд 17





Перечисления как флаги
Тип перечисления можно использовать для определения битовых флагов, благодаря чему экземпляр типа перечисления может хранить любую комбинацию значений, определенных в списке перечислителя. (Конечно, некоторые комбинации могут не иметь смысла или могут быть недопустимы в коде программы).
Описание слайда:
Перечисления как флаги Тип перечисления можно использовать для определения битовых флагов, благодаря чему экземпляр типа перечисления может хранить любую комбинацию значений, определенных в списке перечислителя. (Конечно, некоторые комбинации могут не иметь смысла или могут быть недопустимы в коде программы).

Слайд 18





Перечисления как флаги
[Flags]enum Days{    
None = 0x0,    
Sunday = 0x1,    
Monday = 0x2,    
Tuesday = 0x4,    
Wednesday = 0x8,    
Thursday = 0x10,    
Friday = 0x20,    
Saturday = 0x40}
Описание слайда:
Перечисления как флаги [Flags]enum Days{ None = 0x0, Sunday = 0x1, Monday = 0x2, Tuesday = 0x4, Wednesday = 0x8, Thursday = 0x10, Friday = 0x20, Saturday = 0x40}

Слайд 19





Перечисления как флаги
Чтобы установить флаг на перечислении, используйте побитовый оператор OR, как показано в следующем примере.
 //инициализируется при помощи или
meetingDays = Days2.Tuesday | Days2.Thursday; 
// Добавить в существующее можно тоже при помощи или
meetingDays = meetingDays | Days2.Friday; 
Console.WriteLine("Meeting days are {0}", meetingDays);
// на выходе Tuesday, Thursday, Friday 
// вычеркнуть можно при помощи XOR.
meetingDays = meetingDays ^ Days2.Tuesday;
Console.WriteLine("Meeting days are {0}", meetingDays);
// на выходе Thursday, Friday
Описание слайда:
Перечисления как флаги Чтобы установить флаг на перечислении, используйте побитовый оператор OR, как показано в следующем примере.  //инициализируется при помощи или meetingDays = Days2.Tuesday | Days2.Thursday;  // Добавить в существующее можно тоже при помощи или meetingDays = meetingDays | Days2.Friday;  Console.WriteLine("Meeting days are {0}", meetingDays); // на выходе Tuesday, Thursday, Friday  // вычеркнуть можно при помощи XOR. meetingDays = meetingDays ^ Days2.Tuesday; Console.WriteLine("Meeting days are {0}", meetingDays); // на выходе Thursday, Friday

Слайд 20





Перечисления как флаги
// Проверить входит ли в флаг в перечисление AND.
 bool test = (meetingDays & Days2.Thursday) == Days2.Thursday; 
Console.WriteLine("Thursday {0} a meeting day.", test == true ? "is" : "is not"); 
// На выходеThursday is a meeting day.
Описание слайда:
Перечисления как флаги // Проверить входит ли в флаг в перечисление AND. bool test = (meetingDays & Days2.Thursday) == Days2.Thursday; Console.WriteLine("Thursday {0} a meeting day.", test == true ? "is" : "is not"); // На выходеThursday is a meeting day.

Слайд 21





Использование методов System.Enum для получения и обработки значений перечислений

string s = Enum.GetName(typeof(Days), 4);
Console.WriteLine(s); 
Console.WriteLine("The values of the Days Enum are:");
foreach (int i in Enum.GetValues(typeof(Days)))    Console.WriteLine(i); 
Console.WriteLine("The names of the Days Enum are:");
foreach (string str in Enum.GetNames(typeof(Days)))    Console.WriteLine(str);  
Описание слайда:
Использование методов System.Enum для получения и обработки значений перечислений string s = Enum.GetName(typeof(Days), 4); Console.WriteLine(s);  Console.WriteLine("The values of the Days Enum are:"); foreach (int i in Enum.GetValues(typeof(Days))) Console.WriteLine(i);  Console.WriteLine("The names of the Days Enum are:"); foreach (string str in Enum.GetNames(typeof(Days))) Console.WriteLine(str);  



Похожие презентации
Mypresentation.ru
Загрузить презентацию