c类库,委托,var ,运算符 is 和 as 。
类库(Class Library) 格式 .dll 文件
类库 就是类的仓库
c#代码被编译过以后的文件,不可阅读,不可修改,只能调用。
类库是一个综合性的面向对象的可重用类型集合,这些类型包括:接口、抽象类和具体类。
类库可以解决一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)
还可以解决多种专用开发任务(控制台应用程序、桌面应用程序、WEB应用程序等)。
特点:保密性好,可以动态加载。
写类库
新建项目——类库——用C#编写代码(类一定是 public )——生产,生产解决方案——classlibrary/bin/Debug——.dll文件
引用外部类
将类库文件粘贴到在解决方案文件对应的文件夹下,解决方案资源管理器选择显示所有文件,右键点击类库文件,选择包括在项目中,在使用该类库前先引用命名空间。
在解决方案管理器下引用上右键选择添加引用,浏览找到该类库文件,确认添加,然后在引入的类库上右键属性看一下复制本地是不是True若不是则改为True
通用变量: var
is 和 as 运算符:
is 是判断某个对象是否是某种类型,返回bool值
某对象 is 某类型 如果匹配上 返回true,
否则false
as 是将某个对象转换成某种类型,返回的是对象或是null
如果转换成功了, 返回对象
如果转换失败了, 不会报错,而是返回一个null值
委托:delegate
——方法的指针
当我们用delegate关键字声明委托时,编译器自动为我们生成类。
委托是一个类,它定义了方法的类型,
事件也是一种委托,但是是一种特殊的委托
使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,
可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
委托使用:
定义一种委托类型
委托执行时要调用方法
定义一个委托实例
委托实例的调用
声明:[class类的外面,命名空间里面]
public delegate int FirstDel(int a, int b);
创建委托变量:【委托不能被实例化,因为不是类】定义委托的时候要根据函数来定义
委托的返回类型,参数类型必须和方法的返还类型参数类型一致,才可以指向到该方法上去
结构
在类下面,min 函数上面定义委托
public delegate int FirstDel ( int a , int b )
————————— min 函数 —————————
-- FirstDel 与 JiaJian 的格式一样
JiaJian jj = new JiaJian ( ); 返回值相同 都是 int
FirstDel td = jj.JiaFa 参数相同 都是两个 int
................
td = jj . JianFa
—— 先设立了 JiaJian 类 包含 JiaFa 、JianFa 两个方法
c类库,委托,var ,运算符 is 和 as 。的更多相关文章
- 类库、委托、is as运算符、泛型集合
类库: 说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的. 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. 1.C#源代码 ...
- C#基础回顾(三)—索引器、委托、反射
一.前言 ------人生路 ...
- Kotlin 委托(2)变量委托是什么、自定义变量委托
1.委托是什么? 1.1 官网示例 在每个变量委托的实现的背后,Kotlin 编译器都会生成辅助对象并委托给它. 假设委托如下, class C { var prop: Type by MyDeleg ...
- 委托 lambda表达式浅显理解
方法不能跟变量一样当参数传递,怎么办,C#定义了委托,就可以把方法当变量一样传递了,为了简单,匿名方法传递,省得再声明方法了:再简单,lambda表达式传递,比匿名方法更直观. public dele ...
- 【C#】委托
一.委托的基本的写法 internal class Program { private static void Main(string[] args) { ChainDelegate(); Conso ...
- 普通委托到泛型委托到Linq
private delegate bool delTest(int a); private void button1_Click(object sender, EventArgs e) { var a ...
- javascript事件委托,事件代理,元素绑定多个事件之练习篇
<ul id="parent-list"> <li id="post-1">item1</li> <li id=&qu ...
- 关于js模拟c#的Delegate(委托)实现
这是我的第一篇博文,想来讲一讲js的函数.我的标题是js模拟c#的Delegate. 一.什么是Delegate(委托) 在jquery中有delegate函数,作用是将某个dom元素的标签的事件委托 ...
- C#6.0语言规范(十五) 委托
委托启用其他语言(如C ++,Pascal和Modula)已使用函数指针进行寻址的方案.但是,与C ++函数指针不同,委托是完全面向对象的,与成员函数的C ++指针不同,委托封装了对象实例和方法. 委 ...
- fanc委托在项目中使用
一,上代码 using System; namespace FuncDemo { class Program { static void Main(string[] args) { //无参数的fan ...
随机推荐
- 剑指offer--20.矩形覆盖
链接:https://www.nowcoder.com/questionTerminal/72a5a919508a4251859fb2cfb987a0e6来源:牛客网 @DanielLea 思路分析: ...
- url字符串中含中文的转码方法
凡是用get方法的,url里含中文的,都需要调用上面的函数进行编码.要不然会被当成二进制截断. //URL编码 +(NSString*)urlEncode:(NSString *)str { int ...
- nodejs 安装 cnpm 命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
- Linux查看硬件信息(北桥芯片组、南桥、PCI接口、CPU等)
Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) 查看MCH(北桥) 查看ICH(南桥) 查看CPU 查看pci接口设 ...
- BZOJ3170:[TJOI2013]松鼠聚会
题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=3170 通过分析可以发现,题目所说的两点之间的距离就是切比雪夫距离. 两点之间欧几里得距离:\( ...
- 安装部署ELK系统监控Azure China的NSG和WAF Log
ELK是一个开源的产品,其官网是:https://www.elastic.co/ ELK主要保护三个产品: Elasticsearch:是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展.高可 ...
- Azure CLI的Query
Azure CLI 2.0是基于Python的命令行.其命令直观,使用非常方便. 其输出有四种模式: --output -o : Output format. Allowed values: json ...
- OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】
错误例子: 错误原因:查询的变量是自己随便命名的,不是数据库表中已有的字段, 因此,在进行OracleParameter(":rownum",10)时,在数据库中无法自动进行字段匹 ...
- 蓝桥杯 历届试题 PREV-1 核桃的数量
历届试题 核桃的数量 时间限制:1.0s 内存限制:256.0MB 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑 ...
- Lib之过?Java反序列化漏洞通用利用分析
转http://blog.chaitin.com/ 1 背景 2 Java反序列化漏洞简介 3 利用Apache Commons Collections实现远程代码执行 4 漏洞利用实例 4.1 利用 ...