„SzoftTechZH20130422” változatai közötti eltérés
Új oldal, tartalma: „'''1. feladat: a) osztály diagramból : c# vagy c++ vagy java kód írás b) Szöveges feladatból UML diagram 2, Event C# alkalmazás -> KeyboardManager osztály even…” |
Nincs szerkesztési összefoglaló |
||
1. sor: | 1. sor: | ||
'''1. feladat: | '''1. feladat: | ||
a) osztály diagramból : c# vagy c++ vagy java kód írás | a) osztály diagramból : c# vagy c++ vagy java kód írás | ||
b) Szöveges feladatból UML diagram | b) Szöveges feladatból UML diagram''' | ||
2, Event | |||
C# alkalmazás -> KeyboardManager osztály eventet publikál, billentyű lenyomásra és felengedésre. | '''2, Event''' | ||
'''C# alkalmazás -> KeyboardManager osztály eventet publikál, billentyű lenyomásra és felengedésre. | |||
A KeyboardSubscriber iratkozzon fel a KeyboardManager billentyű-felengedés eseményére -> konzolra írja ki, hogy melyik billentyű lett felengedve.''' | A KeyboardSubscriber iratkozzon fel a KeyboardManager billentyű-felengedés eseményére -> konzolra írja ki, hogy melyik billentyű lett felengedve.''' | ||
// ez az osztály tárolja az eseménnyel kapcsolatos változókat pl. az // eseményt kiváltó karaktert | |||
<pre> | |||
// ez az osztály tárolja az eseménnyel kapcsolatos változókat pl. az | |||
// eseményt kiváltó karaktert | |||
public class KeyArgs { | public class KeyArgs { | ||
private char _character; | private char _character; | ||
11. sor: | 16. sor: | ||
public KeyArgs(char character) { | public KeyArgs(char character) { | ||
_character = character; | _character = character; | ||
} | } | ||
} | } | ||
21. sor: | 26. sor: | ||
public event KeyEventHandler KeyDown; | public event KeyEventHandler KeyDown; | ||
// ennek a metódusnak a meghívásával tudjuk a keyup eventet | |||
// elsütni | // elsütni | ||
public void FireKeyUp(char c) | public void FireKeyUp(char c) | ||
{ | { | ||
if(KeyUp != null) | if(KeyUp != null) | ||
KeyUp(new KeyArgs(c)); | KeyUp(new KeyArgs(c)); | ||
} | } | ||
37. sor: | 43. sor: | ||
} | } | ||
} | } | ||
public class KeyBoardSubscriber | public class KeyBoardSubscriber | ||
{ | { | ||
// egy referenciát tárolunk egy KeyboardManager példányra, hogy | |||
// fel tudjunk iratkozni az eseményeire | // fel tudjunk iratkozni az eseményeire | ||
private KeyboardManager manager = new KeyBoardManager(); | private KeyboardManager manager = new KeyBoardManager(); | ||
58. sor: | 62. sor: | ||
} | } | ||
} | } | ||
3, Eseményvezérelt programozás, grafikus megjelenítés | </pre> | ||
a, UserControl fogalma, két legfontosabb szerepe a tervezés/fejlesztés során | '''3, Eseményvezérelt programozás, grafikus megjelenítés''' | ||
'''a, UserControl fogalma, két legfontosabb szerepe a tervezés/fejlesztés során''' | |||
(ez jó?) | (ez jó?) | ||
A vezérlőelem maga is egy űrlap, tartalmazhat vezérlőelemeket | A vezérlőelem maga is egy űrlap, tartalmazhat vezérlőelemeket | ||
69. sor: | 74. sor: | ||
Gyakvezér mondta sok szar megfejtést olvasott :UserControl=saját vezérlő..... | Gyakvezér mondta sok szar megfejtést olvasott :UserControl=saját vezérlő..... | ||
b, Jár-e kellemetlen következménnyel, ha eseménykezelőben a kód hosszantartó műveletet végez? Ha igen, miért? | '''b, Jár-e kellemetlen következménnyel, ha eseménykezelőben a kód hosszantartó műveletet végez? Ha igen, miért?''' | ||
Igen, mert a hosszantartó művelet ideje alatt az ablak nem tudja a hozzá beérkező üzeneteket feldolgozni, és az alkalmazás “befagy”. | Igen, mert a hosszantartó művelet ideje alatt az ablak nem tudja a hozzá beérkező üzeneteket feldolgozni, és az alkalmazás “befagy”. | ||
169. sor: | 174. sor: | ||
5, Generikus típusok | 5, Generikus típusok | ||
a, Példa generikus kényszer alkalmazására | a, Példa generikus kényszer alkalmazására | ||
<pre> | |||
class Dictionary<K,V>: IDictionary<K,V> | class Dictionary<K,V>: IDictionary<K,V> | ||
where K: IComparable<K> | where K: IComparable<K> | ||
179. sor: | 184. sor: | ||
} | } | ||
} | } | ||
</pre> | |||
b, Milyen esetben célszerű a dispose minta alkalmazása? | '''b, Milyen esetben célszerű a dispose minta alkalmazása?''' | ||
A drága,és felügyelt erőforrások felszabadítására használjuk, pl a File.Close() is dispose-t hív. | A drága,és felügyelt erőforrások felszabadítására használjuk, pl a File.Close() is dispose-t hív. | ||
193. sor: | 199. sor: | ||
c, .Net kóderedet alapú biztonsági mechanizmus lényege | c, .Net kóderedet alapú biztonsági mechanizmus lényege | ||
Adott helyről letöltött programnak milyen jogai vannak (rosszindulatú kódtól nem véd!) | |||
(CAS) code acces security | (CAS) code acces security | ||
Nincsenek felkészítve a mobil kódokra. (levélhez csatolva, netről, dokumentumban tárolva érkezhetnek a gépre) | Nincsenek felkészítve a mobil kódokra. (levélhez csatolva, netről, dokumentumban tárolva érkezhetnek a gépre) | ||
200. sor: | 207. sor: | ||
A Szerelvényekhez kell meghatározni, hogy milyen jogaik vannak. (pl: netről töltött kód nem kap írási, és olvasási jogot, csak egy bizonyos mappára-> nem árthat nekünk) | A Szerelvényekhez kell meghatározni, hogy milyen jogaik vannak. (pl: netről töltött kód nem kap írási, és olvasási jogot, csak egy bizonyos mappára-> nem árthat nekünk) | ||
Nem egyesével adnak ki jogokat, hanem biztonsági házirendet alakíthat ki a rendszergazda. | Nem egyesével adnak ki jogokat, hanem biztonsági házirendet alakíthat ki a rendszergazda. | ||
6, Robusztus ADO.NET kapcsolat alapú modell | |||
'''6, Robusztus ADO.NET kapcsolat alapú modell | |||
Írjon példakódot: beszúr rekordot egy táblába: Student(StudentID, Name, YearofBirth) | Írjon példakódot: beszúr rekordot egy táblába: Student(StudentID, Name, YearofBirth) | ||
(Nem szükséges sql paraméter használata.) | (Nem szükséges sql paraméter használata.)''' | ||
<pre> | |||
try { | try { | ||
SqlConnection conn = new SqlConnection( str_data ); | SqlConnection conn = new SqlConnection( str_data ); | ||
222. sor: | 231. sor: | ||
conn.Close(); | conn.Close(); | ||
} | } | ||
</pre> | |||
7, Bináris komponensek | |||
a, Mit értünk dinamiks linkelés alatt? 3 előnye és 1 hátránya a statikus linkeléssel szemben. | '''7, Bináris komponensek | ||
a, Mit értünk dinamiks linkelés alatt? 3 előnye és 1 hátránya a statikus linkeléssel szemben.''' | |||
Definíció: a futó program csak futásidőben tölti be a számára szükséges könyvtárakat. | |||
Előnyök: | Előnyök: | ||
237. sor: | 248. sor: | ||
-Ha az alkalmazások megosztottan használják (pl. a windows\system könyvtárból): verzió kavarodás, DLL hell. | -Ha az alkalmazások megosztottan használják (pl. a windows\system könyvtárból): verzió kavarodás, DLL hell. | ||
(DLL hell példa volt a .NET szerelvényeknél) | (DLL hell példa volt a .NET szerelvényeknél) | ||
b, C# kód -> változó típusának kiírása konzolra. | b, C# kód -> változó típusának kiírása konzolra. | ||
<pre> | |||
int asd; | int asd; | ||
Type mit = asd.GetType(); | Type mit = asd.GetType(); | ||
Console.Writeline(mit.FullName); | Console.Writeline(mit.FullName); | ||
</pre> | |||
'''c, Reflexió milyen szolgáltatásokat nyújt? Soroljon fel 3 konkrét szolgáltatást.''' | |||
* Lekérdezhetjük, hogy egy szerelvényben milyen típusok vannak | |||
* Lekérdezhetjük: az egyes típusok (osztályok, interfészek, stb). felépítését: pl. tagváltozók, tagfüggvények, event-ek, stb. listája. Be is állíthatjuk a tagváltozók értékét. Meg is hívhatjuk az egyes metódusokat | |||
* Lekérdezhetjük az egyes nyelvi elemekhez (osztályok, tagjaik, stb.) tartozó attribútumokat | |||
'''d, Attribútum definiálása és használata példakód.''' | |||
<pre> | |||
[AttributeUsage(AttributeTargets.Class)] | [AttributeUsage(AttributeTargets.Class)] | ||
class StorableClassAttribute: System.Attribute { | class StorableClassAttribute: System.Attribute { | ||
273. sor: | 282. sor: | ||
// A System.Attribute osztályból kell egy saját osztályt leszármaztatni | // A System.Attribute osztályból kell egy saját osztályt leszármaztatni | ||
// Az AttributeUsage azt határozza meg, mihez tudjuk az adott attribútumot hozzárendelni | // Az AttributeUsage azt határozza meg, mihez tudjuk az adott attribútumot hozzárendelni | ||
</pre> |