SlideShare a Scribd company logo
Платформата Microsoft .NET и
езикът на програмиране C#
Индексатори и свойства
Достъпване на полета на класа
 директен публичен достъп
 get / set методи
 свойства
 обектно ориентирано
Директен публичен достъп
public class Book {
public decimal price;
}
Book book1 = new Book();
book1.price = 12.34M;
Console.WriteLine(book1.price);
get / set методи
public class Book {
private decimal price;
public void SetPrice(decimal price) {
this.price = price;
}
public decimal GetPrice() {
return price;
}
}
Book book1 = new Book();
book1.SetPrice(12.34M);
Console.WriteLine(book1.GetPrice());
Свойства
public class Book {
private decimal price;
public decimal Price {
set {
this.price = price;
}
get {
return price;
}
}
}
Book book1 = new Book();
book1.Price = 12.34M;
Console.WriteLine(book1.Price);
Oбектно ориентирано
public class Book {
private decimal price;
public Book(decimal price) {
this.price = price;
}
public decimal CalculateTotalPrice(int books) {
return price * books;
}
}
Book book1 = new Book(12.34M);
Console.WriteLine(book1.CalculateTotalPrice(1));
Автоматично генериране на свойства
public class Book {
public decimal Price {set; get;}
}
Book book1 = new Book();
book1.Price = 12.34M;
Console.WriteLine(book1.Price);
Инициализиране
public class Book {
public decimal Price {set; get;} = 3.14М;
}
Book book1 = new Book();
Console.WriteLine(book1.Price);
Индексатори
Позволяват използването на клас подобно на масив с [ ]
Пример за индексатор
public class Bookshelf {
private Book[] books = new Book[10];
public Book this[int number] {
get {
if (number >= 0 && number < books.Length) {
return books[number];
}
throw new ArgumentException(“Not a valid bookshelf position");
}
set {
if (number >= 0 && number < books.Length) {
books[number] = value;
} else {
throw new ArgumentException(“Not a valid bookshelf position");
}
}
}
}
Пример за индексатор
Bookshelf bookshelf1 = new Bookshelf();
bookshelf1[2] = new Book(12.34M);
bookshelf1[12] = new Book(22.34M);
Console.WriteLine(bookshelf1[2].CalculateTotalPrice(1));

More Related Content

PPTX
.NET/C#_4
PPTX
.NET/C#_12
PPTX
.NET/C#_10
PPTX
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
PDF
Oop lab-10шаблонни
PDF
C++ OpenFest 2015
PPTX
.NET/C#_19
PPTX
.NET/C#_3
.NET/C#_4
.NET/C#_12
.NET/C#_10
Курс по програмиране на C# 2013 - 9. Делегати. Събития. Ламбда функции
Oop lab-10шаблонни
C++ OpenFest 2015
.NET/C#_19
.NET/C#_3

Viewers also liked (14)

PPTX
.NET/C#_9
PPTX
.NET/C#_13
PPTX
.NET/C#_11
PPTX
.NET/C#_1
PPTX
.NET/C#_15
PPTX
.NET/C#_2
PPTX
.NET/C#_16
PPTX
.NET/C#_6
PPTX
.NET/C#_20
PPTX
.NET/C#_18
PPTX
.NET/C#_17
PPTX
.NET/C#_7
PPTX
.NET/C#_5
PPTX
.NET/C#_14
.NET/C#_9
.NET/C#_13
.NET/C#_11
.NET/C#_1
.NET/C#_15
.NET/C#_2
.NET/C#_16
.NET/C#_6
.NET/C#_20
.NET/C#_18
.NET/C#_17
.NET/C#_7
.NET/C#_5
.NET/C#_14
Ad

More from RaynaITSTEP (20)

PPTX
Project management professional
PDF
Project management it step
PPT
Lean startup
PPTX
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
PPTX
PPTX
PPTX
PDF
monitoring and diagnostics
PDF
network security
PDF
networking
PDF
data security
PDF
configuring disk sand drivers
PDF
boot process
PDF
install update and migration to windows 10
PDF
virtualization
PPTX
Фотошоп за деца_4
PDF
Структурни кабелни системи
PDF
Android introduction
PPTX
Adobe Illustrator - Урок 2
PPTX
Adobe Illustrator - Обобщение
Project management professional
Project management it step
Lean startup
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
monitoring and diagnostics
network security
networking
data security
configuring disk sand drivers
boot process
install update and migration to windows 10
virtualization
Фотошоп за деца_4
Структурни кабелни системи
Android introduction
Adobe Illustrator - Урок 2
Adobe Illustrator - Обобщение
Ad

.NET/C#_8