SQL 面向对象(委托)
委托:
也称为代理,事件也是一种委托;
定义在类的最外面
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 面向对象(委托)的更多相关文章
- C#编程语言与面向对象——委托
委托(delegate)也可以看成是一种数据类型,可以用于定义变量,但它是一种特殊的数据类型,所定义的变量能接收的数值只能是个函数,更确切地说,委托类型的变量可以接收一个函数的地址. 简单地说 委托变 ...
- 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 缺点 ...
- Oracle笔记 十三、PL/SQL面向对象之package
--将方法和过程用包定义 create or replace package pkg_emp as --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno e ...
- Oracle笔记 十二、PL/SQL 面向对象oop编程
------------------------抽象数据类型----------- --创建地址类型,一定要加as object,还可以在类型中加过程或方法 create or replace typ ...
- 面向对象 委托变量和this的使用
委托方法: this的使用:
- SQL面向对象抽象类
抽象类:抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西:一般抽象类中只放置抽象方法,只规定了返回类型和参数:例: 人 - 有吃饭,睡觉方法: 男人 - 继承人抽象类,必须实现吃饭,睡觉的 ...
- SQL记录-PLSQL面向对象
PL/SQL面向对象 PL/SQL允许定义一个对象类型,这有助于在Oracle的数据库中设计的面向对象.对象类型可以包装复合类型.使用对象允许实现数据的具体结构现实世界中的对象和方法操作它.对象有属性 ...
- PL/SQL的安装
一.下载PLSQLDeveloper 网址:https://www.allroundautomations.com/bodyplsqldevreg.html 还需要一个激活码 二.PL/SQL的安装 ...
- PHP中MySQL操作
本次使用的demo是MySQL的示例数据库employees,点击下载地址,注意在导入的时候,在employees.sql文件中,将source改成你当前的目录. PHP中的demo代码可以在ideo ...
随机推荐
- x5设置经典门户登录
runtime\UIServer\index.jsp java.lang.String url = request.getContextPath() + "/portal2/proces ...
- mysql查询昨天本周上周上月
昨天 $yestoday = date("Y-m-d 00:00:00",strtotime('-1day'));$today = date("Y-m-d 00:00:0 ...
- java new synchronized
java provides the synchronized keyword for synchronizing thread access to critical sections. Because ...
- 关于Java中文乱码与日期格式
关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogi ...
- [daily][optimize] 一个小python程序的性能优化 (python类型转换函数引申的性能优化)
前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了 ...
- FW nexus docker
原文地址: http://www.cnblogs.com/wzy5223/p/5410990.html Nexus 3.0 可以创建三种docker仓库: 1. docker (proxy) ...
- 使用dnspod进行简单的HTTP dns解析(防劫持)
https://www.dnspod.cn/httpdns/guide https://www.dnspod.cn/misc/D%2B免费版本接口说明.pdf 最简单的get接口去请求dnspod提供 ...
- node中定时器的“先进”用法
var DSQ = setInterval(function(){ console.log('zzq'); },1000); setTimeout(function(){ clearInterval( ...
- MongoDB聚合查询
1.count:查询记录条数 db.user.count() 它也跟find一样可以有条件的 db.user.count({}) 2.distinct:用来找出给定键的所有不同的值 db.user.d ...
- 10 Ways to Inspire Your Team
Inspire. Just the word itself causes us to pause and think. We may remember our own personal heroes ...