委托:
也称为代理,事件也是一种委托;
定义在类的最外面

1、定义委托
关键字:delegate
函数签名:签名和函数保持一致
定义委托的时候要根据函数来定义
public delegate int First(int a,int b);
指向的方法的返回类型,需要参数必须一致!

2、定义委托变量,指向方法

委托不能被实例化,因为不是类;

First f = new JiaFa; //新建委托变量,指向方法,注意!!方法不需要小括号!!

第二次可以使用+=

public int JiaFa(int a,int b)
{
return a+b;
}

调用:
f(5,3);

可以理解为函数的指针,委托指向哪个函数,则这个委托就代表哪个函数
可以让函数当做参数一样进行传递

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
//单列模式
//控制一个类只能实例化一个对象 //class Test
//{
// public string name;
//} //数据访问类
class DBDA
{
public string host;
public string database; //静态成员,用来存储该类的对象
public static DBDA db = null; //让该类不能被实例化
private DBDA()
{
} //提供一个造对象的方法,控制只能造一个对象
public static DBDA DuiXiang()
{
if (db == null)
{
db = new DBDA();
} return db;
}
} //定义委托
public delegate void SuiBian(string s); class Program
{
static void Main(string[] args)
{
// Test t1 = new Test();
//Test t2 = new Test(); //DBDA db = DBDA.DuiXiang();
//db.host = "localhost";
//DBDA db1 = DBDA.DuiXiang(); //委托
//把方法参数化
SuiBian s = China; s += America; //+=是绑定方法 -=去掉一个方法 //事件
//事件就是一种特殊的委托 //调用语音方法
Speak(s); Console.WriteLine();
Console.ReadLine(); //面向对象三大特性
//设计模式
} //语音功能的方法
static void Speak(SuiBian yu)
{
yu("张三"); //if (n == 0)
//{
// America();
//}
//else if (n == 1)
//{
// China();
//}
//else if (n == 2)
//{
// HanYu();
//} } //语音包
public static void America(string s)
{
Console.WriteLine(s+"hello");
}
public static void China(string s)
{
Console.WriteLine(s+"你好");
}
public static void HanYu(string s)
{
Console.WriteLine(s+"bjdkaj");
} }
}

SQL 面向对象(委托)的更多相关文章

  1. C#编程语言与面向对象——委托

    委托(delegate)也可以看成是一种数据类型,可以用于定义变量,但它是一种特殊的数据类型,所定义的变量能接收的数值只能是个函数,更确切地说,委托类型的变量可以接收一个函数的地址. 简单地说 委托变 ...

  2. SQL 面向对象

    1.面向过程 int a = 10;int b =5;int c = a+b; int r1 = 10;int r2 = 5;double c = r1*r1*3.14 - r2*r2*3.14 缺点 ...

  3. Oracle笔记 十三、PL/SQL面向对象之package

    --将方法和过程用包定义 create or replace package pkg_emp as --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno e ...

  4. Oracle笔记 十二、PL/SQL 面向对象oop编程

    ------------------------抽象数据类型----------- --创建地址类型,一定要加as object,还可以在类型中加过程或方法 create or replace typ ...

  5. 面向对象 委托变量和this的使用

    委托方法: this的使用:

  6. SQL面向对象抽象类

    抽象类:抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西:一般抽象类中只放置抽象方法,只规定了返回类型和参数:例: 人 - 有吃饭,睡觉方法: 男人 - 继承人抽象类,必须实现吃饭,睡觉的 ...

  7. SQL记录-PLSQL面向对象

    PL/SQL面向对象 PL/SQL允许定义一个对象类型,这有助于在Oracle的数据库中设计的面向对象.对象类型可以包装复合类型.使用对象允许实现数据的具体结构现实世界中的对象和方法操作它.对象有属性 ...

  8. PL/SQL的安装

    一.下载PLSQLDeveloper 网址:https://www.allroundautomations.com/bodyplsqldevreg.html 还需要一个激活码 二.PL/SQL的安装 ...

  9. PHP中MySQL操作

    本次使用的demo是MySQL的示例数据库employees,点击下载地址,注意在导入的时候,在employees.sql文件中,将source改成你当前的目录. PHP中的demo代码可以在ideo ...

随机推荐

  1. 原生js实现跑马灯抽奖效果

    目前好多的微信活动都有一些抽奖活动,其中就有跑马灯. <!DOCTYPE html> <html> <head> <title>跑马灯效果</ti ...

  2. 《linux内核设计与实现》读书笔记第五章——系统调用

    第5章 系统调用 操作系统提供接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行. 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 该层主要作用有三个: 为用户空间提供了 ...

  3. 后台获取前台runat=server的select的值

    <li> <asp:Label ID="Lpro" runat="server" Text="省份:" CssClass= ...

  4. sqlserver 通过convert取得指定格式的时间

    http://msdn.microsoft.com/zh-cn/library/ms187928(v=sql.105).aspx CONVERT(NVARCHAR(10),Created,112) 不 ...

  5. Python之集合(set)

    一种语言它越便捷,开发效率越高,初学阶段就会越困难.因为语言的设计者帮你造了大量的轮子,你就要掌握如何使用这些轮子.所以,对初学Python来说,记忆的东西很多. 进入正题. 集合就像是抛弃了值(va ...

  6. Qt获取组合键

    CTRL+Enter发送信息的实现 在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送. 在QT4中,所有的事件都继承与QEvent这个 ...

  7. Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例

    这个实例在windows.OS X.IOS和Android等平台运行正常.本文参考这个网站提供的方法:http://zarko-gajic.iz.hr/firemonkey-mobile-androi ...

  8. android提供ToolBar实现划动菜单的陷阱

    代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android: ...

  9. 再谈CocoaPods

    1. 简介 java语言的第三方库管理工具是Maven,Node.js的第三方库管理工具是npm,而ios的第三方库管理工具是CocoaPods. CocoaPods 的原理是将所有的依赖库都放到名为 ...

  10. ArcGIS Engine开发之旅05---空间数据库

    原文:ArcGIS Engine开发之旅05---空间数据库 1  Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统 ...