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++中静态模板代码膨胀的问题,可以说泛型是一种动态模板。这样理解准确吗?呵呵,最起码,我现在是这么理解的。
未完,待续...
浙公网安备 33010602011771号