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 ...
随机推荐
- 【git】删除某个文件的所有历史记录,批量删除远程分支
删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ...
- There is no tracking information for the current branch
There is no tracking information for the current branch. Please specify which branch you want to mer ...
- node.js express的安装过程
1.配置nodejs的环境变量之后执行 npm install -g express 命令: 2.如果版本为4.x需要再次执行 npm install -g express-generato ...
- 比较java与c语言中数字转换成字符的不同
java java中将数字转换成字符非常方便,只要用一个"+"然后在跟一个空格行了.比如,你输入一个122 ,就会变成"122 ". import java.u ...
- UItableView自定义标题(headerView)重用问题
在实现类似QQ列表的功能时,这样自定义了一个标题headerView 在实现类似QQ列表的功能时,这样自定义了一个标题headerView - (UIView *)tableView:(UITable ...
- Magento添加一个下拉登陆菜单Create Magento Dropdown Login in a few minutes
Dropdown login forms are not a feature many online stores use, but in some cases they could be quite ...
- Java学习-026-类名或方法名应用之二 -- 统计分析基础
前文讲述了类名或方法的应用之一调试源码,具体请参阅:Java学习-025-类名或方法名应用之一 -- 调试源码 此文主要讲述类名或方法应用之二统计分析,通过在各个方法中插桩(调用桩方法),获取方法的调 ...
- mysql日期加减
mysql日期加减一.MySQL 为日期增加一个时间间隔:date_add().1. 示例:set @dt = now();select date_add(@dt, interval 1 day); ...
- 内置对象Global和Math对象
Global对象Math对象 1.Global对象Global.属性方法或者Global.方法()是无效的,web浏览器将Global作为window对象的一部分加一实现.uri编码——了解2.eva ...
- sdut2169:Sequence(dp)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2169 #include <iost ...