Windows Mobile ¿ª·¢ÃæÊÔÌâ
ºÅÒ»Ñù¡£
12.C#Ϊʲô²»ÄÜÓÃÀà½øÐжàÖØ¼Ì³Ð,ËüÓÃʲô´úÌæÁË?
´ð£ºC#ÖÐÊÇûÓÐÀàµÄ¶àÖØ¼Ì³ÐÕâ¸ö¸ÅÄî.ҪʹÓöàÖØ¼Ì³Ð±ØÐëҪͨ¹ý½Ó¿ÚInterfaceÀ´Íê³É¡£
13.ÀàºÍ½á¹¹ÓÐʲô²»Í¬ºÍÏàͬµã?
£¨1£©¡¢Àࣺ
¶ÔÏóÊÇʲô©o¶ÔÏó¾ÍÊÇÕâ¸öÊÀ½çµÄÈ«²¿©oÈË©pÖ²Îï©pÐÇÌåµÈµÈ
ÀàÊÇʲô©oÀàÊǶԶÔÏóµÄÒ»¸ö³éÏó©o°ÑÓй²Í¬ÌØÕ÷ÐÐΪµÄ¶ÔÏó³éÏóÔÚÒ»Æð¾ÍÊÇÀà©oÄ¿µÄÊÇΪÁ˸üºÃµÄÔË×ö¹ÜÀíÕâЩ¶ÔÏó
¶ÔÏóÊÇÀàµÄÒ»¸öʵÀý¡£
£¨2£©¡¢½á¹¹£º ¿ÉÒÔ°ÑËü¿´×öÊÇÇáÁ¿¼¶±ðµÄÀà Çø±ð£º
a)¡¢½á¹¹ÊÇÖµÀàÐÍ£¨ÖµÀàÐÍÔÚÕ»ÉÏ·ÖÅ䵨ַ£©©oÀàÊÇÒýÓÃÀàÐÍ£¨ÒýÓÃÀàÐÍÔÚ¶ÑÉÏ·ÖÅ䵨ַ£© ¶ÑÕ»µÄÖ´ÐÐЧÂÊÒª±È¶ÑµÄÖ´ÐÐЧÂʸߣ¬¿ÉÊǶÑÕ»µÄ×ÊÔ´ÓÐÏÞ£¬²»Êʺϴ¦Àí´óµÄÂß¼¸´ÔӵĶÔÏó¡£ËùÒԽṹ´¦Àí×÷Ϊ»ùÀàÐͶԴýµÄС¶ÔÏ󣬶øÀà´¦Àíij¸öÉÌÒµÂß¼
b)¡¢½á¹¹²»Äܼ̳У¨ËäÈ»½á¹¹Ã»ÓÐÃ÷È·µÄÓÃsealedÉùÃ÷£¬¿ÉÊǽṹÊÇÒþʽµÄsealed.£© Àà³ý·ÇÏÔʾµÄÉùÃ÷sealed·ñÔòÀà¿ÉÒÔ¼Ì³ÐÆäËûÀàºÍ½Ó¿Ú£¬×ÔÉíÒ²Äܱ»¼Ì³Ð
c)¡¢ÄÚ²¿½á¹¹£º ½á¹¹£º
ûÓÐĬÈϵĹ¹Ô캯Êý£¬µ«ÊÇ¿ÉÒÔÌí¼Ó¹¹Ô캯Êý ûÓÐÎö¹¹º¯Êý
ûÓÐabstractºÍsealed(ÒòΪ²»Äܼ̳Ð) ²»ÄÜÓÐprotectedÐÞÊηû ¿ÉÒÔ²»Ê¹ÓÃnew³õʼ»¯
ÔڽṹÖгõʼ»¯ÊµÀý×Ö¶ÎÊÇ´íÎóµÄ
Àࣺ
ÓÐĬÈϵĹ¹Ô캯Êý ÓÐÎö¹¹º¯Êý
¿ÉÒÔʹÓÃabstractºÍsealed ÓÐprotectedÐÞÊηû ±ØÐëʹÓÃnew³õʼ»¯
14.ʲôÊÇ·´Éä,Çë¾ÙÀý˵Ã÷?
´ð£º ³ÌÐò¼¯£¨Assembly£©°üº¬Ä£¿é£¨Module£©£¬¶øÄ£¿é°üº¬ÀàÐÍ£¨Class£©£¬ÀàÐÍÓÖ°üº¬³ÉÔ±¡£·´ÉäÔòÌṩÁË·â×°³ÌÐò¼¯¡¢Ä£¿éºÍÀàÐ͵ĶÔÏó¡£Äú¿ÉÒÔʹÓ÷´É䶯̬µØ´´½¨ÀàÐ͵ÄʵÀý£¬½«
Windows Mobile ¿ª·¢ÃæÊÔÌâ
ÀàÐͰ󶨵½ÏÖÓжÔÏ󣬻ò´ÓÏÖÓжÔÏóÖлñÈ¡ÀàÐÍ¡£È»ºó£¬¿ÉÒÔµ÷ÓÃÀàÐ͵ķ½·¨»ò·ÃÎÊÆä×ֶκÍÊôÐÔ¡£·´Éäͨ³£¾ßÓÐÒÔÏÂÓÃ;£º
(1)¡¢Ê¹Óà Assembly ¶¨ÒåºÍ¼ÓÔØ³ÌÐò¼¯£¬¼ÓÔØÔÚ³ÌÐò¼¯Çåµ¥ÖÐÁгöµÄÄ£¿é£¬ÒÔ¼°´Ó´Ë³ÌÐò¼¯ÖвéÕÒÀàÐͲ¢´´½¨¸ÃÀàÐ͵ÄʵÀý¡£
(2)¡¢Ê¹Óà Module Á˽âÈçϵÄÀàËÆÐÅÏ¢£º°üº¬Ä£¿éµÄ³ÌÐò¼¯ÒÔ¼°Ä£¿éÖеÄÀàµÈ¡£Äú»¹¿ÉÒÔ»ñÈ¡ÔÚÄ£¿éÉ϶¨ÒåµÄËùÓÐÈ«¾Ö·½·¨»òÆäËûÌØ¶¨µÄ·ÇÈ«¾Ö·½·¨¡£
(3)¡¢Ê¹Óà ConstructorInfo Á˽âÈçϵÄÀàËÆÐÅÏ¢£º¹¹Ô캯ÊýµÄÃû³Æ¡¢²ÎÊý¡¢·ÃÎÊÐÞÊηû£¨Èç public »ò private£©ºÍʵÏÖÏêϸÐÅÏ¢£¨Èç abstract »ò virtual£©µÈ¡£Ê¹Óà Type µÄ GetConstructors »ò GetConstructor ·½·¨À´µ÷ÓÃÌØ¶¨µÄ¹¹Ô캯Êý¡£
(4)¡¢Ê¹Óà MethodInfo À´Á˽âÈçϵÄÀàËÆÐÅÏ¢£º·½·¨µÄÃû³Æ¡¢·µ»ØÀàÐÍ¡¢²ÎÊý¡¢·ÃÎÊÐÞÊηû£¨Èç public »ò private£©ºÍʵÏÖÏêϸÐÅÏ¢£¨Èç abstract »ò virtual£©µÈ¡£Ê¹Óà Type µÄ GetMethods »ò GetMethod ·½·¨À´µ÷ÓÃÌØ¶¨µÄ·½·¨¡£ (5)¡¢Ê¹Óà FieldInfo À´Á˽âÈçϵÄÀàËÆÐÅÏ¢£º×ֶεÄÃû³Æ¡¢·ÃÎÊÐÞÊηû£¨Èç public »ò private£©ºÍʵÏÖÏêϸÐÅÏ¢£¨Èç static£©µÈ£»²¢»ñÈ¡»òÉèÖÃ×Ö¶ÎÖµ¡£ (6)¡¢Ê¹Óà EventInfo À´Á˽âÈçϵÄÀàËÆÐÅÏ¢£ºÊ¼þµÄÃû³Æ¡¢Ê¼þ´¦Àí³ÌÐòÊý¾ÝÀàÐÍ¡¢×Ô¶¨ÒåÊôÐÔ¡¢ÉùÃ÷ÀàÐͺͷ´ÉäÀàÐ͵ȣ»²¢Ìí¼Ó»òÒÆ³ýʼþ´¦Àí³ÌÐò¡£
(7)¡¢Ê¹Óà PropertyInfo À´Á˽âÈçϵÄÀàËÆÐÅÏ¢£ºÊôÐÔµÄÃû³Æ¡¢Êý¾ÝÀàÐÍ¡¢ÉùÃ÷ÀàÐÍ¡¢·´ÉäÀàÐͺÍÖ»¶Á»ò¿Éд״̬µÈ£»²¢»ñÈ¡»òÉèÖÃÊôÐÔÖµ¡£
(8)¡¢Ê¹Óà ParameterInfo À´Á˽âÈçϵÄÀàËÆÐÅÏ¢£º²ÎÊýµÄÃû³Æ¡¢Êý¾ÝÀàÐÍ¡¢²ÎÊýÊÇÊäÈë²ÎÊý»¹ÊÇÊä³ö²ÎÊý£¬ÒÔ¼°²ÎÊýÔÚ·½·¨Ç©ÃûÖеÄλÖõȡ£
15.ÔÚ.NETÖÐʲôÀ಻Äܱ»¼Ì³Ð£¿
´ð£ºÔÚÀàÉùÃ÷ÖÐʹÓÃsealed£¨ÃÜ·âÀࣩ¿É·ÀÖ¹ÆäËüÀà¼Ì³Ð´ËÀࣻÔÚ·½·¨ÉùÃ÷ÖÐʹÓÃsealedÐÞÊηû¿É·ÀÖ¹À©³äÀàÖØÐ´override´Ë·½·¨¡£
16¡¢
NETÐòÁл¯ºÍ·´ÐòÁл¯»ù´¡ÖªÊ¶×ܽá
.NETÐòÁл¯ºÍ·´ÐòÁл¯µÄ»ù´¡Ñ§Ï°ÐèÒªÃ÷°×ºÍÕÆÎÕʲô»ù´¡ÖªÊ¶ÄØ£¿ÏÂÃæÎÒÃǾÍ.NETÐòÁл¯ºÍ·´ÐòÁл¯µÄ¸ÅÄî¡¢´æÔڵıØÒªÐÔÒÔ¼°¼òµ¥µÄʵÏÖ·½ÃæÏòÄã½éÉÜ.NETÐòÁл¯ºÍ·´ÐòÁл¯µÄÏà¹ØÄÚÈÝ¡£
.NETÐòÁл¯ºÍ·´ÐòÁл¯µÄѧϰÖж¼»áÉæ¼°µ½Ê²Ã´¸ÅÄîÄØ£¿ÔÚÎÒÃÇѧϰ֮ǰÆäʵ»¹ÊÇÒªÃ÷°×ÎÊʲô»áÓÐ.NETÐòÁл¯£¬Ëü´æÔڵıØÒªÐÔÊÇʲô£¿ÊÇÈçºÎʵÏÖµÄÄØ£¿ÄÇôÏÂÃæÎÒÃÇÖðÒ»½éÉÜ
.NETÐòÁл¯µÄ¸ÅÄ
Windows Mobile ¿ª·¢ÃæÊÔÌâ
¡°ÐòÁл¯¡±¿É±»¶¨ÒåΪ½«¶ÔÏóµÄ״̬´æ´¢µ½´æ´¢Ã½½éÖеĹý³Ì¡£Ôڴ˹ý³ÌÖУ¬¶ÔÏóµÄ¹«¹²×ֶκÍ˽ÓÐ×Ö¶ÎÒÔ¼°ÀàµÄÃû³Æ£¨°üÀ¨°üº¬¸ÃÀàµÄ³ÌÐò¼¯£©¶¼±»×ª»»Îª×Ö½ÚÁ÷£¬È»ºóдÈëÊý¾ÝÁ÷¡£ÔÚÒÔºó¡°·´ÐòÁл¯¡±¸Ã¶ÔÏóʱ£¬´´½¨Ôʼ¶ÔÏóµÄ¾«È·¸´±¾¡£
Ò»¡¢.NETÐòÁл¯ºÍ·´ÐòÁл¯µÄ±ØÒªÐÔ
1¡¢½«¶ÔÏóµÄ״̬±£³ÖÔڴ洢ýÌåÖУ¬ÒÔ±ã¿ÉÒÔÔÚÒÔºóÖØÐ´´½¨¾«È·µÄ¸±±¾£» 2¡¢Í¨¹ýÖµ½«¶ÔÏó´ÓÒ»¸öÓ¦ÓóÌÐòÓò·¢Ë͵½ÁíÒ»¸öÓ¦ÓóÌÐòÓòÖС£
ÀýÈ磬ÐòÁл¯¿ÉÓÃÓÚÔÚ ASP.NET Öб£´æ»á»°×´Ì¬²¢½«¶ÔÏó¸´ÖƵ½ Windows ´°ÌåµÄ¼ôÌù°åÖС£Ô¶³Ì´¦Àí»¹¿ÉÒÔʹÓÃÐòÁл¯Í¨¹ýÖµ½«¶ÔÏó´ÓÒ»¸öÓ¦ÓóÌÐòÓò´«µÝµ½ÁíÒ»¸öÓ¦ÓóÌÐòÓòÖС£
¶þ¡¢ÈçºÎʵÏÖ.NETÐòÁл¯ºÍ·´ÐòÁл¯
1¡¢ÒªÊµÏÖ¶ÔÏóµÄÐòÁл¯£¬Ê×ÏÈÒª±£Ö¤¸Ã¶ÔÏó¿ÉÒÔÐòÁл¯¡£¶øÇÒ£¬ÐòÁл¯Ö»Êǽ«¶ÔÏóµÄÊôÐÔ½øÐÐÓÐЧµÄ±£´æ£¬¶ÔÓÚ¶ÔÏóµÄһЩ·½·¨ÔòÎÞ·¨ÊµÏÖÐòÁл¯µÄ¡£ÊµÏÖÒ»¸öÀà¿ÉÐòÁл¯µÄ×î¼ò±ãµÄ·½·¨¾ÍÊÇÔö¼ÓSerializableÊôÐÔ±ê¼ÇÀà¡£È磺
1. [Serializable()] 2. public class MEABlock 3. {
4. private int m_ID; 5. public string Caption; 6.
7. public MEABlock() 8. {
9. ///¹¹Ô캯Êý 10. } 11. }
¼´¿ÉʵÏÖ¸ÃÀàµÄ¿ÉÐòÁл¯¡£
2¡¢Òª½«¸ÃÀàµÄʵÀýÐòÁл¯Îªµ½ÎļþÖУ¿.NET FrameWorkÌṩÁËÁ½ÖÖ·½·¨£º £¨1£©XMLÐòÁл¯
ʹÓà XmLSerializer À࣬¿É½«ÏÂÁÐÏîÐòÁл¯¡£ ¡ô¹«¹²ÀàµÄ¹«¹²¶Á£¯Ð´ÊôÐÔºÍ×Ö¶Î
¡ôʵÏÖ ICollection »ò IEnumerable µÄÀà¡££¨×¢ÒâÖ»Óм¯ºÏ»á±»ÐòÁл¯£¬¶ø¹«¹²ÊôÐÔÈ´²»»á¡££©
Windows Mobile ¿ª·¢ÃæÊÔÌâ
¡ôXmlElement ¶ÔÏó¡£ ¡ôXmlNode ¶ÔÏó¡£ ¡ôDataSet ¶ÔÏó¡£
ҪʵÏÖÉÏÊöÀàµÄʵÀýµÄÐòÁл¯£¬¿É²ÎÕÕÈçÏÂÀý×Ó£º
12. MEABlock myBlock = new MEABlock();
13. // Insert code to set properties and fields of the object.
14. XmlSerializer mySerializer = new XmlSerializer(typeof(MEABlock)); 15. // To write to a file, create a StreamWriter object.
16. StreamWriter myWriter = new StreamWriter(\); 17. mySerializer.Serialize(myWriter, MEABlock);
ÐèҪעÒâµÄÊÇXMLÐòÁл¯Ö»»á½«publicµÄ×ֶα£´æ£¬¶ÔÓÚ˽ÓÐ×ֶβ»ÓèÓÚ±£´æ¡£Éú³ÉµÄXMLÎļþ¸ñʽÈçÏ£º
18.
19.
¶ÔÓÚ¶ÔÏóµÄ·´ÐòÁл¯£¬ÔòÈçÏ£º
21. MEABlock myBlock;
22. // Constructs an instance of the XmlSerializer with the type 23. // of object that is being deserialized.
24. XmlSerializer mySerializer = new XmlSerializer(typeof(MEABlock)); 25. // To read the file, creates a FileStream.
26. FileStream myFileStream = new FileStream(\, FileMode.Op
en);
27. // Calls the Deserialize method and casts to the object type. 28. myBlock = (MEABlock)mySerializer.Deserialize(myFileStream)
£¨2£©¶þ½øÖÆÐòÁл¯
ÓëXMLÐòÁл¯²»Í¬µÄÊÇ£¬¶þ½øÖÆÐòÁл¯¿ÉÒÔ½«ÀàµÄʵÀýÖÐËùÓÐ×ֶΣ¨°üÀ¨Ë½Óк͹«ÓУ©¶¼½øÐÐÐòÁл¯²Ù×÷¡£Õâ¾Í¸ü·½±ã¡¢¸ü׼ȷµÄ»¹ÔÁ˶ÔÏóµÄ¸±±¾¡£ ҪʵÏÖÉÏÊöÀàµÄʵÀýµÄÐòÁл¯£¬¿É²ÎÕÕÈçÏÂÀý×Ó£º
29. MEABlock myBlock = new MEABlock();
30. // Insert code to set properties and fields of the object. 31. IFormatter formatter = new BinaryFormatter(); 32. Stream stream = new FileStream(