1. 简单解释一下private、protected、public、internal修饰符访问权限。
private : 私有成员只能在类内部访问。
受保护: 受保护成员。可在此类和继承类中访问。
public : 公共会员,完全公开,无访问限制。
inside: 可在当前程序集中访问。
2. ADO.NET的5个关键对象
Connections:主要是打开程序和数据库之间的连接。除非使用连接对象打开数据库,否则无法从数据库检索数据。 Close和Dispose的区别是Close后可以打开,但Dispose后就不能使用了。
命令:主要用于向数据库发出指令,例如查询、添加、修改、删除数据,或者调用数据库内的存储过程。该对象构建在Connection 对象之上。也就是说,Command 对象连接到数据源。
DataAdapter:主要执行数据源和DataSet之间的数据传输,可以通过Command对象发出命令并将检索到的数据放入DataSet对象中。该对象基于Command 对象,并提供许多与DataSet 一起使用的函数。
DataSet:该对象保存从数据库查询到的数据,可以将其视为临时存储区域(缓存),允许您查看位于内存中的整个数据库。 DataSet除了存储多个表之外,还可以通过DataAdapter对象捕获主键等数据表结构以及记录数据表之间的关系。 DataSet 对象可以说是ADO.NET 中最重的对象。该对象构建在DataAdapter 对象之上,并且不具备与数据源通信的能力。即,使用DataAdapter 对象作为DataSet。使用对象在数据源和DataAdapter 对象桥之间传输数据。一个DataSet包含多个DataTable,一个DataTableTable包含多个DataRow。
DataReader:如果您只需要顺序读取数据而不执行任何其他操作,则可以使用DataReader 对象。 DataReader 对象只是从数据源向下按顺序一一读取数据。数据存储在数据库服务器上,并且永远不会一次全部加载到程序的内存中。这些数据是只读的,不允许进行其他操作。 DataReader 在读取数据时一次只能读取一项,并且是只读的,这使得它非常高效并且节省资源。使用DataReader 对象不仅可以提高效率,还可以通过不必发回所有数据来减少网络负载。
ADO.NET使用Connection对象连接到数据库,使用Command或DataAdapter对象执行SQL语句,将结果返回给DataReader或DataAdapter,并使用获得的DataReader或DataAdapter对象执行SQL语句。结果。
3.列出一些在ASP.NET页面之间传递值的方法。
使用查询字符串,例如1.id=1; 响应。
2.使用会话变量
3.使用Server.Transfer
4.Cookie传值
4. C#中的委托是什么?是事件委托吗?事件和委托之间的关系。
委托可以将一种方法替换为另一种方法作为参数。
委托可以理解为指向函数的指针。
委托和事件之间没有比较,因为委托是类型,而事件是对象。委托对象(由委托实现的事件)和事件(由标准事件方法实现)的区别如下:事件是使用委托在内部实现的。对于事件来说,外界只能“注册+=,取消注册-=”,外界无法取消其他注册者,外界也无法主动触发事件,无法使用Delegate进行上述控制。于是,事件语法就诞生了。事件用于阉割委托实例,类似于使用自定义类阉割列表的方式。事件只能自行添加和删除,但不能赋值。事件中只能使用+=、-=。=是不允许的。附加点的附加答案:事件内部有一个私有委托和两个方法(添加和删除)。
5. 超控与过载的区别
重载是具有相同名称的方法。不同的参数或参数类型会被多次重载,以满足不同的需求。重载是一个面向过程的概念。
重写意味着重写基类中的函数。重写是一个面向对象的概念
6. C# 中的索引器只能基于数字进行索引吗?是否允许使用多个索引器参数?
参数的数量和类型是任意的。对附加点的附加回答:如果使用反射器反编译,您将看到索引器的内部本质上是set_item 和get_item 方法。
基础知识:
索引语法:
public string this[string s],定义通过get和set块检索和赋值的逻辑
一个索引可以包含多个参数和任何参数类型。
索引可以重新加载。
如果只有get 没有set ,那么它是只读索引。
索引实际上是两个方法:set_Item 和get_Item。
7. 属性和公共字段有什么区别?
调用set方法设置属性的值,然后使用get方法读取该值。必须是一个设定值吗?
属性可以控制非法值的设置和获取过程。例如,年龄禁止使用负值,但不能这样设置该字段。通常,用get读取的值是用set设置的值,但在极端情况下,用get读取的值可能是除用set设置的值之外的值。公共年龄{get{return 100;}set{}}。附加点的附加答案:如果使用反射器反编译,您将看到内部属性本质上是set_*** 和get_*** 方法。
8、三层架构
通常意义上的三层架构将整个业务应用分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。
区分层次的目的是“高内聚、低内聚”的思想。
表现
以上#.Net面试题相关内容摘自网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92882.html