温伟的程序生活,一步一个脚印
自己会努力,做真正独一无二的温伟!无论前方有多难,我都不会放弃... 每一篇日志,都是我的积累,全是我的原创!

cs-->dll
cs类   public后   类名.方法 就可以用,因为是同一个命名空间下的
namespace myconsole
{
    class dllhello
    {
        public static string strhello(string name)

dll库   引用其他命名空间的方法,要命令提示到所在的文件夹下,命令:csc /t:library /out:dllname.dll csname.cs   后在这个目录下生成了DLL文件,引用dllname.dll后,using namespacez(他的名称空间);   dllname.方法  就可以用

C#委托
我自己的理解,就是一句话,委托,就是委托名委托了类的方法。
首先,声明。声明一个委托对象可以理解为声明一个数据类型,public delegate void MyDelegate(string input);带参数的数据类型,这个参数的个数和类型是要和被委托的方法一样的。
其次,在新建委托的时候,委托名 委托对象=new 委托名(要委托的方法--类.方法),不带参数,但是要知道参数类型是一模一样的,而这句话所在的方法也是委托的(创建一个委托对象并将上面的方法包含其中);
最后,用委托的时候,委托将作为一个普通方法的参数;通过委托对象调用包含在其中的方法
如果没有委托调用方法为:类.方法(参数)==现在有了委托调用方法为:委托对象(参数)
而对委托链的理解很简单,具有相同参数的一系列方法可以委托给一个委托,即委托链,委托链的执行就是一系列具有相同参数的方法的一起执行。加法表示将这个方法加进来,减法就是排除这个方法不要执行他。                                         
namespace myconsole
{
    class Program
    {
        public delegate void Del(person p);    
        static void Main(string[] args)
        {
            Console.Write(myconsole.dllhello.strhello("wenwei"));
            person pw = new person("wenwei ");
            person ps = new person("shiti ");
            eat e=new eat();
            run r = new run();
            Del peat = new Del(e.eating);
            Del peatover = new Del(e.eatover);
            Del prun = new Del(r.runing);
            Del del = prun - peatover+peat;
            del(pw);             调用委托
            Console.ReadKey();
        }          
    }
    class person
    {
        public string name;
        public person(string n)
        { this.name = n; }     
    } 
    class eat
    {       
        public void eating(person p)
        {
            Console.Write(p.name.ToString() + "is Eating!\n");
        }
        public void eatover(person p)
        {
            Console.Write(p.name.ToString() + "is eated!\n");
        }
    }
    class run
    {
        public void runing(person p)
        {
            Console.Write(p.name.ToString() + "is Runing!\n");
        }
    }
 
}
事件是委托的概念,
事件的声明

1.声明一个委托
public delegate void EventHandler(object sender, System.EventArgs e);

2.声明一个事件
public event EventHandler Changed;

 

泛型:我个人的理解,泛型是解决C++中静态模板代码膨胀的问题,可以说泛型是一种动态模板。这样理解准确吗?呵呵,最起码,我现在是这么理解的。

未完,待续...

posted on 2009-01-09 16:29  winvay  阅读(309)  评论(0)    收藏  举报