C#ÖÐÈçºÎÀí½â¡¾·´Éä¡¿¼¼Êõ
ÄãÊ×ÏÈÒªÀí½âһϸÅÄ
Ò» ÀàÐÍ(Type) ¶ÔÏóÊÇʲô
±ÈÈç object x; xÊǶÔÏó£¬object¾ÍÊÇËüµÄÀàÐÍ£¬ÔÚ³ÌÐòÖÐÈçºÎÃèÊöÀàÐÍÕâ¸ö¸ÅÄîÄØ£¿
¾ÍÊÇType(System.Type)¡£Òª»ñȡij¸öÀàµÄÀàÐÍ¿ÉÒÔÓÃtypeof()²Ù×÷·û
object a;object b; DataTable t;
aType = typeof(object);Type bType = typeof(object);tType = typeof(DataTable);
aType==bType!=tType;
¶þ ³ÌÐò¼¯(Assembly) ¾ÍÊÇÄãIDEÉú³ÉµÄ.exe»ò.dllÎļþµÄÔËÐÐʱ¾Í½Ð³ÌÐò¼¯¡£
ËùÓеĴúÂë¶¼ÔÚ³ÌÐò¼¯ÖС£Äã¿ÉÒÔͨ¹ýAssembly.Load()ϵÁк¯Êý¶¯Ì¬¼ÓÔØ³ÌÐò¼¯£¨ÕâÒ»²½ÊǶ¯Ì¬£«ÔØ´úÂëµÄǰÌᣬÒòΪËùÓеĴúÂë¶¼ÔÚ³ÌÐò¼¯ÖУ©¡£
Èý ¶¯Ì¬¼ÓÔØ
ÎÒÃÇÆÕͨµ÷ÓôúÂëÊÇ: ¶ÔÏóÃû.·½·¨Ãû(²ÎÊýÁбí);
class a
{ void func(int x)
{
}
public static void Main(string[] args)
{
//´´½¨¶ÔÏó a a1 = new a();
//µ÷Óú¯Êý a1.func(1);
}
}
Ó÷´É䶯̬µ÷ÓôúÂëÊÇ
//¼ÓÔØ³ÌÐò¼¯ System.Reflection.Assembly asm = Assembly.LoadFile(assemblyPath);
//»ñÈ¡ÀàÐÍ Type aType = asm.GetType("Ãû×Ö¿Õ¼ä.ÀàÃû");
//»ñȡûÓвÎÊýµÄ¹¹Ô캯Êý System.Reflection.ConstructorInfo conn = t.GetConstructor(new Type[0]);
//µ÷ÓÃûÓвÎÊýµÄ¹¹Ô캯Êý£¬Invoke·µ»ØobjectËüÆäÊÇaÀà object a1 = conn.Invoke(new object[0]);
//»ñÈ¡²ÎÊýÀàÐÍΪint,º¯ÊýÃûΪfuncµÄ·½·¨ MethodInfo method = t.GetMethod("func",new Type[]{typeof(int)});
//ÔÚa1Éϵ÷ÓÃfunc·½·¨£¬²ÎÊýΪ1 method.Invoke(a1,new object[]{1});
¶¯Ì¬µ÷Ó㨺óÒ»ÖÖ·½·¨£©±È¾²Ì¬µ÷Óøü¸´ÔÓ£¬¶øÇÒЧÂÊ´ó¸ÅµÍ20±¶£¨ÍøÉÏÓиö¸çÃǺÃÏñ²âÊÔ¹ý£©¡£Ö»ÓÐÔÚÌØÊâµÄʱºò²Åµ÷Óö¯Ì¬¼ÓÔØ¶¯Ì¬µ÷Ó㣣±ÈÈ磬ÄãµÄÖ÷³ÌÐòÆô¶¯µÄʱºò×ÓÄ£¿é»¹Ã»ÓУ¬Òª¸ù¾ÝµÇ½ÐÅÏ¢ÏÂÔØ×ÓÄ£¿é´úÂë²¢µ÷ÓÃ×ÓÄ£¿é´úÂ룬¾ÍÖ»ÄÜÓö¯Ì¬£«ÔØÀ´ÊµÏÖÁË.
ËÄ ÔªÊý¾Ý .netÉú³ÉµÄIL´úÂëÖбêÃ÷ÁËÔÚÕâ¸ö(exe,dll)ÎļþÖÐËùÓеÄclass(Àà) method£¨·½·¨£©Attribute£¨ÊôÐÔ£© Property£¨ÀàÊôÐÔ£©µÄÇ©ÃûºÍµ÷Ó÷½·¨ÐÅÏ¢£¬ÕâЩÐÅÏ¢¾Í½Ð×öÔªÊý¾Ý¡£ËùνµÄReflection·´É䣬¾ÍÊÇÀûÓÃÔªÊý¾Ý£¬¿
Ïà¹ØÎĵµ£º
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃÇ ......
²úÆ·¼¸ÄêǰʹÓÃASP£¬ºóÀ´Éý¼¶µ½.Net 1.1£¬ÔÙÉý¼¶µ½2.0£¬Ò»Ö±¶¼ÓÐÓÃXSLTת»»XMLÉú³ÉÍøÒ³µÄ·½Ê½£¬ÉÔ΢ÕûÀíÏ¡£
XML file:
<?xml version="1.0" encoding="utf-8" ?>
<ric>
<catalog>
<book price ......
ίÍкÍʼþÔÚ .Net FrameworkÖеÄÓ¦Ó÷dz£¹ã·º£¬È»¶ø£¬½ÏºÃµØÀí½âίÍкÍʼþ¶ÔºÜ¶à½Ó´¥C#ʱ¼ä²»³¤µÄÈËÀ´Ëµ²¢²»ÈÝÒס£ËüÃǾÍÏñÊÇÒ»µÀ¼÷¶ù£¬¹ýÁËÕâ¸ö¼÷µÄÈË£¬¾õµÃÕæÊÇÌ«ÈÝÒ×ÁË£¬¶øÃ»ÓйýÈ¥µÄÈËÿ´Î¼ûµ½Î¯ÍкÍʼþ¾Í¾õµÃÐÄÀï±ð£¨bi裩µÃ»Å£¬»ìÉí²»×ÔÔÚ¡£±¾ÎÄÖУ¬ÎÒ½«Í¨¹ýÁ½¸ö·¶ÀýÓÉdzÈëÉîµØ½²ÊöʲôÊÇίÍС¢ÎªÊ²Ã´ÒªÊ¹Ó ......
·½·¨Ò»£º±éÀúÕýÔÚÓÐÏàͬÃû×ÖÔËÐеÄÀý³Ì
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace DHPSS.COM
{
/// <summary>
/// c#³ÌÐòÖ»ÔËÐÐÒ»´Î£¬C#Àý³ÌÖ»ÔËÐÐÒ»´Î
/// http://blog.csdn.net/nnsw ......
1. ¼òÊö private¡¢ protected¡¢ public¡¢ internal ÐÞÊηûµÄ·ÃÎÊȨÏÞ¡£
´ð . private : ˽ÓгÉÔ±, ÔÚÀàµÄÄÚ²¿²Å¿ÉÒÔ·ÃÎÊ¡£
protected : ±£»¤³ÉÔ±£¬¸ÃÀàÄÚ²¿ºÍ¼Ì³ÐÀàÖпÉÒÔ·ÃÎÊ¡£
public : ¹«¹²³ÉÔ±£¬ÍêÈ«¹«¿ª£¬Ã»ÓзÃÎÊÏÞÖÆ¡£
internal: ÔÚͬһÃüÃû¿Õ¼äÄÚ¿ÉÒÔ·ÃÎÊ¡£
2 .ÁоÙASP.N ......