programowanie urz dze mobilnych wyk ad iv n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Programowanie urządzeń mobilnych – wykład IV PowerPoint Presentation
Download Presentation
Programowanie urządzeń mobilnych – wykład IV

Loading in 2 Seconds...

play fullscreen
1 / 37

Programowanie urządzeń mobilnych – wykład IV - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

Programowanie urządzeń mobilnych – wykład IV. KIS Paweł Fiderek. Zdarzenia. public event EventHandler<EventArgs > Bang;. Bang( this , EventArgs.Empty );. Obsługa zdarzeń. NullReferenceExcepion. if (Bang != null) Bang(this, EventArgs.Empty );. EventHandler < EventArgs > temp = Bang;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Programowanie urządzeń mobilnych – wykład IV' - harlan-knowles


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
zdarzenia
Zdarzenia

public eventEventHandler<EventArgs> Bang;

Bang(this, EventArgs.Empty);

obs uga zdarze
Obsługa zdarzeń

NullReferenceExcepion.

if (Bang != null) Bang(this, EventArgs.Empty);

slide4

EventHandler<EventArgs> temp = Bang;

if (temp != null) temp(this, EventArgs.Empty);

EventHandler<EventArgs> temp = Bang;

if (temp != null)

{

var list = ev.GetInvocationList();

foreach (EventHandler<EventArgs> d in list)

{

try

{

d.Invoke(this, EventArgs.Empty);

}

catch (Exception) { }

}

}

wyjatki
Wyjatki

Wyjątki maja następujące własności:

  • wyjątki to typy, które dziedziczą z klasy System.Exception,
  • wyjątki, które mogą być zgłaszane należy objąć sekcja try,
  • wyjątki są zgłaszane przez stosowanie słowa kluczowego throw,
  • w momencie zgłoszenia wyjątku, kontrola sterownia jest przekazywana do pierwszej
  • obsługi wyjątku określonej słowem catch,
slide6

jeśli nie ma obsługi zgłoszonego wyjątku, program zostaje zatrzymany i wyświetlany jest komunikat o błędzie,

  • nie należy przechwytywać wyjątku, który nie jest możliwy do obsłużenia i wprowadzenia, poprzez to aplikacja przechodzi w stan nieokreślony.
  • W przypadku przechwycenia System.Exception najlepiej zgłosić ten wyjątek ponownie na końcu bloku catch,
  • warto w bloku wyjątku podawać nie tylko typ wyjątku ale ta reprezentująca wyjątek może dostarczyć dodatkowych informacji o powodach wystąpienia sytuacji krytycznej,
slide7

obiekty wyjątku zawierają szczegółowe informacje o błędzie, min. stan stosu wywołań oraz tekstowy opis błędu,

  • kod w sekcji finally jest wykonywany nawet w przypadku zgłoszenia wyjątku, blok finally warto stosować do zwalniana użytych zasobów, np.: zamykania otwartych strumieni i plików,
  • wyjątki zarządzane w platformie .NET są implementowane z użyciem struktury wyjątków Win32/Win64, jednak nie można ich traktować jako wyjątków systemowych.
slide8

try

{

}

catch(nazwa_wyjątku1)

{

}

slide9

catch(nazwa_wyjątku2)

{

}

finalny

{

}

slide10

class Pokaz

{

public staticvoidMain()

{

int[] tablica = newint[10];

try

{

for (int i = 0; ; i++)

{

tablica[i] = i;

Console.WriteLine(i);

}}

catch(IndexOutOfRangeException)

{

Console.WriteLine(„Nastąpiło właśnie przepełnienie indeksu”);

}}}

najcz stsze przyczyny rzucanych wyj tk w
Najczęstsze przyczyny rzucanych wyjątków
  • ArraryTypeMismatchException – Typ wartości jaki chcemy przypisać jest niezgodny z typem docelowym
  • DivideByZeroException – Próba dzielenia przez zero
  • IndexOutOfRangeException – Przekroczenie indeksu
  • InvalidCastException – Niepoprawne rzutowanie w czasie rzeczywistym
  • OutOfMemoryException – Porażka wywołania new z powodu braku wolnej pamięci
  • OverflowException – Arytmetyczne przepełnienie
delegacje
Delegacje
  • Bardzo często spotkamy się w naszych programach z sytuacją, w której nasz program wykonuje jakieś działanie, ale nie wie jakich obiektów a nawet metod ma w tym celu użyć. Na przykład: naciśnięcie przycisku ma poinformować inny obiekt, że przycisk został przyciśnięty. Ale jaki to obiekt? Nie wiadomo, dlatego najlepszym rozwiązaniem jest połączenie tego przycisku z delegatem, który następnie w czasie wykonywania się programu wywoła odpowiednią metodę.
  • Możemy powiedzieć więcej, delegacje i zdarzenia są ściśle powiązane ze sobą, ponieważ delegat potrafi obsługiwać zdarzenie.
konstrukcja delegacji
Konstrukcja delegacji

public delegatetypname(params);

Typ - typ zwracanej przez delegaturę wartości np. in, string lub void;

Name - nazwa delegacji wykorzystywana potem do jej wywołania;

Params – parametry delegatury, muszą być zgodne z parametrami funkcji której delegacja dotyczy;

delegacje przyk ad u ycia
Delegacje – przykład użycia

public classDelegaty

{

public delegateintMojDelegat(int a, int b);

public intDodaj(int a, int b)

{

return a + b;

}

slide15

public intOdejmij(int a, intb)

{

return a - b;

}

public intPomnoz(int a, int b)

{

return a * b;

}

public int Podziel(int a, int b)

{

return a / b;

}

}

slide16

classGlowna

{

staticvoidMain()

{

Delegaty d = newDelegaty();

Delegaty.MojDelegat dodawanie = newDelegaty.MojDelegat(d.Dodaj);

intwynikDodawania = dodawanie(4, 6);

System.Console.WriteLine("Wynik dodawania wynosi: {0}.", wynikDodawania.ToString());

slide17

Delegaty.MojDelegat odejmowanie = newDelegaty.MojDelegat(d.Odejmij);

intwynikOdejmowania = odejmowanie(22, 11);

System.Console.WriteLine("Wynik odejmowania wynosi: {0}.",

wynikOdejmowania.ToString());

………………………………………………………………………

//analogicznie dla mnożenia i dzielenia

}

delegacje zdarze
Delegacje zdarzeń

public delegatevoidEventHandler(objectsender, EventArgs e);

public classPrzycisk

{

public eventEventHandler Klikniecie;

}

w tki w windows mobile
Wątki w Windows Mobile

usingSystem.Threading;

………………………….

privatevoidproc()

{

…………….

}

………………

Threadname= newThread(proc);

……………………..

klasa thread w a ciwo ci
Klasa Thread - właściwości
  • IsAlive
  • IsBackground
  • IsThreadPoolThread
  • ManagedThreadId
  • Name
  • Piority
  • ThreadState
klasa thread metody
Klasa Thread - metody
  • Abort()
  • Interrupt()
  • Join()
  • Start()
klasa thread w a ciwo ci statyczne
Klasa Thread - właściwości statyczne
  • CurrentContext
  • CurrentPrincipal
  • CurrentThread
klasa thread metody statyczne
Klasa Thread - metody statyczne
  • BeginCriticalRegion()
  • EndCriticalRegion()
  • GetDomain()
  • GetDomainID()
  • ResetAbort()
  • Sleep()
  • SpinWait()
  • VolatileRead()
  • VolatileWrite()
klasa thread typ wyliczeniowy threadstate
Klasa Thread - Typ wyliczeniowy ThreadState
  • Aborted
  • AbortRequested
  • Background
  • Running
  • Stopped
  • StopRequested
  • Unstarted
  • WaitSleepJoin
priorytet wyj tk w
Priorytet wyjątków
  • Highest
  • AboveNormal
  • Normal
  • BelowNormal
  • Lowest