类库、委托、is as运算符、泛型集合
类库:
说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的。
如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目。
1、C#源代码文件,包括在自己的项目中
2、类库,.dll
优点:你写的方法别人看不到实现过程,保密性强
缺点:如果你写的方法有错误,别人无法更改
---------------------------------------------------------
委托:
可以理解为 函数的指针
delegate - 定义关键词
//声明委托类型
public delegate int FirstDel(int aaa, int bbb);
//创建委托变量,赋值,函数指向
FirstDel f1 = new JiaJian().Jia;
int c = f1(10, 20);
-----------------------------------------------------------
var:万能类型
object:所有类型的基类
as:类型转换,如果转换不成功,不会报错,而是返回一个null
is:判断某个变量/对象,是不是某一种类型,返回bool值
泛型集合: List<T>
不固定长度,固定类型的一种集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 加减法;//引用所需要的类,然后再进行实例化
using ClassLibrary1; namespace 类库_委托_is_as运算符_泛型集合
{
class Program
{
//委托,关键词delegate
//声明委托类型
public delegate int FirstDel(int a1, int b1); public void a2(FirstDel f, int a)
{
} static void Main(string[] args)
{
int one = ;
int two = ;
//写一个加减运算方法,可以另外写一个项目和类,在该项目中进行引用即可 //右键项目,选择倒数第二个文件资源管理器,把需要添加的类复制粘贴到需要的项目中,
//或者可以点击解决方案中的显示所有文件,续重需要添加的类,单击即可 //实例化,一定要先引用所需要的那个类
//使用方式一:普通方式
jiajian j = new jiajian();
int c = j.jia(one, two);
Console.WriteLine(c); //使用方式二:匿名对象使用方式,可以简化代码
int h = new jiajian().jia(, );
Console.WriteLine(h); //一、类库的使用,先引用 //右键项目,选择倒数第二个文件资源管理器,bin文件夹,debug文件夹,后缀为.dll的文件就是类库,
//复制到需要的项目文件夹中的bin文件夹,中的debug文件夹。
//用记事本打开的话,现实的是乱码,因为被编译加密了。 int d = new chengchu().chengfa(one, two);
Console.WriteLine(d); //二、委托,函数的指针
//创建委托变量,赋值,函数指向
//委托没有办法被实例化,可一直想一个函数,但结构必须一样
FirstDel f1 = new jiajian().jia;//定义了一个FirstDel f1这样一个委托变量,把jia这个方法指向到f1身上
int g = f1(, );//被指向后f1就代表这个方法,并可以使用
Console.WriteLine(g); new Program().a2(f1, ); //三、知识点补充
//1、is和as运算符
object ob = new jiajian();//单独拿出ob不知道其类型,但需要转换成相应类型使用,
//chengchu cc = (chengchu)ob;//以前都是用强转,语法上不报错。但运行时报错
if (ob is chengchu)//is的意思是判断一下某个变量或对象是不是某一种类型,返回的是bool类型(true或false)
{
chengchu cc = ob as chengchu;//用as这样写如果装换不成功,程序运行时不会报错,
//返回的是null(其他的int,string等类型都是正常转换)
} //2、泛型集合 List<T> :List是集合 T表示是任意类型
//不固定长度,但是固定类型的一种集合 List<chengchu> list = new List<chengchu>();//这样写,list集合里面只能放chengchu类型,
//放其他类型报错,取出来的也不用类型转换,都是chengchu类型 Console.ReadLine();
}
}
}
面向对象思维导图整理
类库、委托、is as运算符、泛型集合的更多相关文章
- C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
常用类库StringBuilder StringBuilder高效的字符串操作 当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作. String 对象是不可变的. 每次使用 System. ...
- 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合
1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...
- C#—类库、委托、is和as运算符、泛型集合
类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...
- 多态、类库、委托、is和as运算符、泛型集合
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...
- 类库,委托,is和as运算符,泛型集合
类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs 类库是.dll 新建项目为类库,在debu ...
- 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...
- 面向对象--类库、委托、is和as运算符、泛型集合
类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...
- 类库,委托,as.is,var,泛型集合
类库: 就是让别人调用你写的方法,并且不让别人看到你是怎么实现的.(比如说一些核心文件) 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. ...
- 面向对象——is和as运算符、泛型集合 List<T>
二:is和as运算符: (1) is运算符 is 运算符用于检查对象是否与给定类型兼容.如果兼容返回true,否则返回false; 一般用于查看某个类是否实现了某个接口,或者是不是某个类的子类; 例如 ...
随机推荐
- 一种在视频OBJECT标签上放置均分四个区域的框选方法
一般在视频区域中做框样式,作应由视频插件自己来实现,但是出于其它一些原因自己琢磨了一个使用HTML标签来实现框选区域的方法,按照行外应该属于笨方法,虽然有点笨,可能在其他方面有借鉴意义,在这里拿出来跟 ...
- apache php env build
from http://blog.csdn.net/yincg/article/details/8782364 1.1 系统说明Centos 6.2 (最小化安装)1.2 软件说明httpd-2.4. ...
- MySql 首记
1.连接数据: 格式是: -P 端口号 -h mysql主机名\ip -u root (用户) -p 2.显示数据库: show databases; 3.选择数据库: use databas ...
- Oracle中的自动增长字段
Oracle中的自动增长字段 Oracle 中不像MYSQL 和MSSQLServer 中那样指定一个列为自动增长列的方式,不过在Oracle中可以通过SEQUENCE序列来实现自动增长字段. 在Or ...
- JSP知识体系大全
Jsp动态网页 Web页面之间有3种关系: 包含 请求转发 重定向 l Jsp的运行原理:(3个) Jsp页面不能直接运行 1.容器调用jsp引擎编译jsp文件 成一个java文本(Servle ...
- 18. 星际争霸之php设计模式--观察者模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- html5,表单与label标签配套使用
<form action=""><input type="checkbox" name="dx" value=" ...
- cxf(3.1.1) 异常Caused by: java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml]
Caused by: java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml] ...
- chrome表单自动填充去掉input黄色背景解决方案
设置css代码如下: input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset; } 参考文章:http://bl ...
- minicom 使用教程
因为现在电脑基本不配备串行接口,所以,usb转串口成为硬件调试时的必然选择.目前知道的,PL2303的驱动是有的,在dev下的名称是ttyUSB#. minicom,tkterm都是linux下应用比 ...