Delete 代码说明

原创 2007年09月28日 15:50:00

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Globalization;
using NetBpm.Util.Client;
using System.Reflection;
using System.Xml;
using System.Data.OleDb;

namespace ConsoleApplication1
{
    class Program
    {
        //代理代理,就是代表某个类上的方法,当然就要知道该方法的原型
        //        就象你代理家电产品,而不是汽车。
        //        如果代码中与代理的函数类型不匹配的话,会报错。
        //delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。
        //与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的引用。
        //它所实现的功能与C/C++中的函数指针十分相似。
        //它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。
        //但与函数指针相比,delegate有许多函数指针不具备的优点。
        //    首先,函数指针只能指向静态函数,而delegate既可以引用静态函数,又可以引用非静态成员函数。
        //在引用非静态成员函数时,delegate不但保存了对此函数入口指针的引用,而且还保存了调用此函数的类实例的引用。
        //    其次,与函数指针相比,delegate是面向对象、类型安全、可靠的受控(managed)对象。
        //也就是说,runtime能够保证delegate指向一个有效的方法,你无须担心delegate会指向无效地址或者越界地址。

        //// 步骤1,声明delegate对象
        private delegate string MyDelegate1(string sss);
        private delegate void MyDelegate(string sss);

        static void Main(string[] args)
        {
            // 步骤2,创建delegate对象
            MyDelegate md = new MyDelegate(C1.PrintString);
            // 步骤3,调用delegate
            md("bax");

            MyDelegate1 md1 = new MyDelegate1(C1.PrintString1);
            string strRet = md1("bax");
            Console.WriteLine("Main:" + strRet);
        }

        public void Fun1(string sssss)
        {
            Console.WriteLine("Fun1:" + sssss);
        }
       
    }

    class C1
    {
        //必须加static
        public static void PrintString(string str1)
        {
            Console.WriteLine("public void PrintString:" + str1);
        }

        //必须加static
        public static string PrintString1(string str1)
        {
            Console.WriteLine("public string void PrintString:" + str1);
            return "public string void PrintString:" + str1;
        }
    }
   
}


public void PrintString:bax
public string void PrintString:bax
Main:public string void PrintString:bax 

相关文章推荐

Delete Number( 代码 )

  • 2009年05月16日 17:36
  • 24KB
  • 下载

C++使用Mysql的详细步骤及各个常用方法的代码演示:select,insert,update,delete

1.mysql的初始化initConnection:1)mysql_init():初始化数据库2)mysql_real_connect()(不推荐用Mysql_connect()):连接数据库详细代码...
  • Fouse_
  • Fouse_
  • 2017年08月02日 14:49
  • 147

FORM中ON-INSERT ON-UPDATE ON-DELETE ON-LOCK代码生成程序

create or replace package cux_plsql_generator_pkg is   /*==========================================...

关于as3.0代码里delete后是否需要null

我看有的引擎代码里面 delete后并没有 设置null。我开始和大多数人也有一样的疑问1.delete后是必须null么?2.不null是不是有特殊考虑,或者特殊应用?特别是在游戏引擎里面。3.以下...

C#屏蔽系统热键Ctrl+Alt+Delete的代码尝试。

最近在做一款小软件,需要锁定用户的输入,包括系统热键(Ctrl+Alt+Delete),在网络中寻找良久,发现这些不错的代码。 经过仔细整理,现将这些代码公布,有兴趣的拿去用用。 搜集的过程有些艰...
  • llw01
  • llw01
  • 2013年07月15日 15:45
  • 1733

内存问题:(代码区,全局栈区,堆,局部栈区)free malloc new delete

(1)代码测试: #include int add(int a,int b) { return a+b; } int a1 =1;//全局栈区 static int a2 =2;//全局栈区...

C++ new delete执行时机和重载说明

以下代码取自Thinking C++ #include #include //using namespace std; void* operator new(size_t sz) { print...

Android学习笔记九:SQLiteDatabase中query、insert、update、delete方法参数说明

1、SQLiteDataBase对象的query()接口: public Cursor query (String table, String[] columns, String selection...

SQLiteDatabase类的query(),insert(),update(),delete()方法参数说明

1、SQLiteDataBase对象的query()接口: public Cursor query (String table, String[] columns, String selection...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delete 代码说明
举报原因:
原因补充:

(最多只允许输入30个字)