.NET相关知识点

1. C# 抽象类和接口的区别

抽象类

(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法

(2) 抽象类不能被实例化

(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类

(4) 具体派生类必须覆盖基类的抽象方法

(5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们

接口

(1) 接口不能被实例化

(2) 接口只能包含方法声明

(3) 接口的成员包括方法、属性、索引器、事件

(4) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

相同点:

(1) 都可以被继承

(2) 都不能被实例化

(3) 都可以包含方法声明

(4) 派生类必须实现未实现的方法

区 别:

(1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。

(2) 抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。”

(3) 接口可以被多重实现,抽象类只能被单一继承

(4) 抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中

(5) 抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性;接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性

(6) 接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法

(7) 接口可以用于支持回调,而继承并不具备这个特点

(8) 抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的

(9) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法

2. ADO.NET 五大对象

1、Connection:与数据源建立连接。

2、Command:对数据源执行SQL命令并返回结果。

3、DataReader:读取数据源的数据,只允许对将数据源以只读、顺向的方式查看其中所存储的数据。其常用于检索大量数据,DataReader对象还是一种非常节省资源的数据对象。

4、DataAdapter:对数据源执行操作并返回结果,在DataSet与数据源之间建立通信,将数据源中的数据写入DataSet中,或根据DataSet中的数据绑定数据源。

5、DataSet:内存中的数据库,是数据表的集合,它可以包含任意多个数据表。

using (SqlConnection connection = new SqlConnection(connectionString))
{
	SqlCommand command = new SqlCommand();
	command.Connection = connection;
	command.CommandText = "SalesByCategory";  //CommandType 属性设置为 StoredProcedure 时,CommandText 属性应设置为存储过程的名称
	command.CommandType = CommandType.StoredProcedure; //设置执行类型为存储过程  

	SqlParameter parameter = new SqlParameter();
	parameter.ParameterName = "@CategoryName";//指定存储过程中的那个参数
	parameter.SqlDbType = SqlDbType.NVarChar;//指定数据类型
	parameter.Direction = ParameterDirection.Input;//指定参数为输入
	parameter.Value = categoryName;  

	command.Parameters.Add(parameter);  

	connection.Open();
	SqlDataReader reader = command.ExecuteReader();  

	if (reader.HasRows)//判断是否有数据行
	{
		while (reader.Read())
		{
			Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
		}
	}
	else
	{
		Console.WriteLine("No rows found.");
	}
	reader.Close();//记得关闭
	Console.ReadLine();
} 
public static DataSet ExecuteQuery(string sql)
{
	DataSet ds = new DataSet();
	SqlDataAdapter da = new SqlDataAdapter(sql,connStr);
	da.Fill(ds);
	return ds;
}

3. 委托与事件

(1)委托的定义:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法有相同的行为。委托方法可以像其它任何方法一样,具有参数和返回值。委托可以看作是对函数(方法)的的抽象,是函数的“类”,委托的实例代表一个(或多个)具体的函数,它可以是多播的。

(2)事件:事件基于委托,为委托提供了一种发布/订阅机制。在事件的订阅中使用“+=”,而事件的取消用“-=”。

(委托可以直接调用,而事件需要某些操作触发)

4. .Net Framework的编码规范

委托类型的名称都应该以EventHandler结束。

委托的原型定义:有一个void返回值,并接受两个输入参数:一个Object 类型,一个 EventArgs类型(或继承自EventArgs)。

事件的命名为 委托去掉 EventHandler之后剩余的部分。

继承自EventArgs的类型应该以EventArgs结尾。

时间: 2024-10-05 15:49:51

.NET相关知识点的相关文章

垂直搜索的相关知识点总结

垂直搜索引擎大体上需要以下技术 1.Spider 2.网页结构化信息抽取技术或元数据采集技术 3.分词.索引 4.其他信息处理技术 垂直搜索引擎的技术评估应从以下几点来判断 1.全面性 2.更新性 3.准确性 4.功能性 垂直搜索的进入门槛很低,但是竞争的门槛很高.没有专注的精神和精湛的技术是不行的.行业门户网站具备行业优势但他们又是没有技术优势的,绝对不要想像着招几个人就可以搞定垂直搜索的全部技术,作为一个需要持续改进可运营的产品而不是一个项目来说对技术的把握控制程度又是垂直搜索成功的重要因素

博客6:磁盘以及创建文件系统的相关知识点

1.linux磁盘的相关知识点  (1)I/O ports:I/O设备地址,实质上是一个缓冲器  (2)块设备:Block,存取单位是"块",例如:磁盘  (3)字符设备:char,存取单位是"字符",例如:键盘  (4)设备文件:关联至一个设备驱动程序,进而能够与之对应硬件设备进行通信(仅有元数据,而无数据)  (5)设备号码:              主设备号:major number,表示设备类型              次设备号:minor number

图像处理程序框架—MFC相关知识点

CDC:Windows使用与设备无关的图形设备环境(DC :Device Context) 进行显示 . MFC基础类库定义了设备环境对象类----CDC类.CDC与CGdiObject的关系 说道CDC类就不能不提一下GdiObject---图形对象类. 在Windows应用程序中,设备环境与图形对象共同工作,协同完成绘图显示工作.就像画家绘画一样,设备环境好比是画家的画布,图形对象好比是画家的画笔.用画笔在画布上绘画,不同的画笔将画出不同的画来.选择合适的图形对象和绘图对象,才能按照要求完成

libgdx相关知识点

Gdx.graphics.setContinuousRendering(false); 设置图像为非连续自动渲染. libgdx相关知识点,布布扣,bubuko.com

Android开发涉及有点概念&相关知识点(待写)

前言,承接之前的 IOS开发涉及有点概念&相关知识点,这次归纳的是Android开发相关,好废话不说了.. 先声明下,Android开发涉及概念比IOS杂很多,可能有很多都题不到的.. 首先由于Android是基于Linux,而Linux又是用c山寨Unix的,但是为什么Android不用开发App,其实我也不懂,我想可能是java比较简单. 同样的,IOS为啥没用java,这个我也想可能是因为IOS是封闭的吧..晕,又废话了..好,开始吧,不过这次很多要查资料了,很多名词.单词不会啊! 首先还

<c:url>标签相关知识点

一. <c:url>标签的作用主要用来产生字符串类型的url,而不是产生一个超链接,注意url(统一资源定位符)与超链接两个含义的区别. <c:url value="http://www.baidu.com" />在JSP页面中的输出形式如下: 可以看出来这在页面中就是个字符串,不是一个能点击的超链接. --------------------------------------------------------------------------------

学习记录013-NFS相关知识点

一.NFS相关知识点 1.NFS常用的路径/etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点/usr/sbin/exportfs NFS服务的管理命令,exportfs -arv 可以通过加载配置生效,也可以通过命令直接共享目录,越过/etc/exports,但是重启失效/usr/sbin/showmount 常用来在客户端,查看NFS配置及挂载结果的命令/var/lib/nfs/etab NFS配置文件的完整参数设定的文件注意:如果需要读写共享,一定要让本地目录被NF

Python开发一个csv比较功能相关知识点汇总及demo

Python 2.7 doc demo: # -*- coding: utf-8 -*- import csv with open('eggs.csv', 'wb') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) spamwriter.w

UITableView相关知识点

//*****UITableView相关知识点*****// 1 #import "ViewController.h" 2 3 // step1 要实现UITableViewDataSource协议,因为tableView不存储数据 4 @interface ViewController () <UITableViewDataSource, UITableViewDelegate> 5 6 // step0 准备要显示的数据 7 @property(nonatomic,st

测试相关知识点

android测试的研究方向: Android应用系统测试的设计 Android自动化测试Monkey工具环境搭建Monkey命令的使用ADB常用命令详解Robotium测试环境搭建Robotium工具的应用Android单元测试使用Junit对Android应用进行单元测试Android性能测试应用DDMS进行性能调试Android内存泄漏测试 测试相关知识点