FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.
Email: Нажмите что бы посмотреть
public class CacheString {
private string message = "";
public void add(string message){
this.message = message;
}
public string get(){
return this.message;
}
}
Простые классы Cache и Generic-класс Cache
public class CacheAny
private T t;
public void add(T t){
this.t = t;
}
public T get(){
return this.t;
}
}
class Gen
{
public T t;
public U u;
public Gen(T _t, U _u)
{
t = _t;
u = _u;
}
}
List
list.Add(44);//нет упаковки – элементы
//сохраняются в List
int il=list[0];// распаковка не нужна
foreach (int i2 in list)
{ Console.WriteLine(i2);
}
ArrayList list = new ArrayList();
list.Add(44); // вставка целого
list.Add("mystring"); // вставка строки
list.Add(new MyClass ()) ; // вставка объекта
foreach (int i in list) {
Console.WriteLine(i);
}// возникнет ошибка во время выполнения!!!
List
list.Add(44) ;
list.Add("mystring"); // ошибка компиляции
list.Add(new MyClass()); // ошибка компиляции
Классы-коллекции
Классы-коллекции
public interface ICloneable {
object Clone(); - создает новый объект–копию
}
Интерфейс ICollection
Интерфейс ICollection реализуют все необобщенные и некоторые обобщенные классы-коллекции
В коллекции, реализующей интерфейс IList:
определена операция индексирования с целым индексом;
в коллекцию можно вставлять элементы.
IList реализован в коллекциях, к элементам которых можно обращаться по индексу, в коллекцию можно добавлять элементы (реализован в ArrayList).
Интерфейс IList
Обобщенный интерфейс IList public interface Интерфейс ICollection
IList
{ T this [int index] { get; set; }
int IndexOf (T item);
void Insert (int index, T item);
void RemoveAt (int index);
}
public interface IEnumerator {
object Current {get;}
bool MoveNext();
void Reset();
}
public interface IEnumerable {
IEnumerator GetEnumerator();
}
Следующие обычные(необобщенные) интерфейсы определены в пространстве имен System.Collections.
Интерфейсы для итераторов
Классы-словари (хэш-таблицы)
В обобщенных коллекциях-словарях каждый элемент (пара ключ-значение) хранится в объекте KeyValuePair < TKey,TValue>.
public struct KeyValuePair < TKey,TValue>
{ public KeyValuePair ( TKey key, TValue value );
public TKey Key { get; }
public TValue Value { get; }
}
Структуры для элементов коллекций
Интерфейс IDictionary
Hashtable
HybridDictionary
ListDictionary.
DictionaryBase
SortedList
Интерфейс IDictionary
Хэш-функция
Методы класса позволяют выполнять быстрые операции объединения, пересечения, проверки совпадения двух коллекций.
public bool SetEquals( IEnumerable Коллекция HashSet
// коллекции совпадают;
publi bool Overlaps( IEnumerable
// в коллекциях есть хотя бы один совпадающий элемент;
public void ExceptWith( IEnumerable
// коллекции все элементы, которые есть в другой коллекции;
public void UnionWith( IEnumerable
// коллекцию элементы из другой коллекции (только несовпадяающие);
public void IntersectWith( IEnumerable
// коллекции только элементы, которые есть и в другой коллекции;
Работа с итератором
static void ShowColl bool CmpSortedSet(SortedSet
(SortedSet
Console.WriteLine(s);
foreach (char ch in ss)
Console.Write(ch + " ");
Console.WriteLine("\n");
}
if (a == b) return true;
if ((a == null) || (b == null) || (a.Count != b.Count))
return false;
SortedSet
e1 = a.GetEnumerator(),
e2 = b.GetEnumerator();
while (e1.MoveNext() && e2.MoveNext())
if (e1.Current != e2.Current)
return false;
return true;
}
Forml.Text = "This is Form 1";
aForm.FormBorderStyle = FormBorderStyle.Fixed3D;
aForm.Size = new Size(300, 200);
aForm.Opacity = 0.5;
Application.Run(new Form1());
aForm.Visible = false;
this.button2.Click -= new
System.EventHandler(this.button1_Click);
this.button2.Click += new
System.EventHandler(this.button1_Click);
listBoxl.Items.Add("Limtu");
listBox1.Items.AddRange(new String[] {"Первый", "Второй", "Третий"});
listBox1.Items.Insert(2, "Третьим будешь?");
listbox1.Items.Remove(“string removed");
listBox1.Items.RemoveAt(2);
Graphics myGraphic = this.CreateGraphics();
//draw lines or outlined shapes using a Pen
myGraphic.DrawLine(myPen,X1,Y1,X2,Y2) ;
//draw filled shapes using a Brush
myGraphic.FillRectangle(myBrush,X1,Y1,X2,Y2);
//draw text using a Font and a Brush
myGraphic.DrawString(myText,myFont,myBrush,X1,Y1);
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.Red, 5);
g.DrawRectangle(p, 10, 10, 100, 100);
}
Graphics g = this.CreateGraphics();
Pen р = new Pen(Coloг.Red, 5);
p.DashStyle = DashStyle.Dot;
g.DrawLine(p, 50, 25, 400, 25);
Graphics g = this.CreateGraphics();
Brush b = new SolidBrush(Color.Maroon);
// Создать массив точек points
g.FillPolygon(b, points)
Потоки выполнения
Процессы
Когда следует использовать потоки выполнения ?