他是一个二叉树,数据结构,可以用Lambda表达式快速声明,是用来动态拼装表达式目录树
详诉下内存中的堆和栈栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。
堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配堆内存的大小。
Ajax调用的时候,get、post有什么区别?Get和Post都是向服务器发送的一种请求,只是发送机制不同。
- GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中,这种区别对用户是不可见的
2、GEt传输数据容量小,不安全,post传输数据内容大,更加安全;
返回类型 ActionrResult 的方法可以重载吗? 返回的类型有哪几种?不能被重载
1.返回ViewResult视图结果,将视图呈现给网页
2.返回PartialViewResult部分视图结果,主要用于返回部分视图内容
3.返回ContentResult用户定义的内容类型
4.返回JsonResult序列化的Json对象
属性是面向对象编程的基本概念,提供了对私有化字段的访问封装,在c#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。
特性可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用 反射 这项技术查询特性。
特性具有以下属性:
1.特性向程序添加元数据。 元数据 是程序中定义的类型的相关信息。 所有 .NET 程序集都包含一组指定的元数据,用于描述程序集中定义的类型和类型成员。 可以添加自定义特性来指定所需的其他任何信息。
2.可以将一个或多个特性应用于整个程序集、模块或较小的程序元素(如类和属性)。
3.特性可以像方法和属性一样接受自变量。
4.程序可使用反射来检查自己的元数据或其他程序中的元数据。
自定义特性:
可通过定义特性类创建自己的自定义特性,特性类是直接或间接派生自 Attribute 的类,可快速轻松地识别元数据中的特性定义。
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
Func(有返回值),Action(无返回值)为C#内置的委托,自定义委托标明delegate
事件是委托的一种封装,声明一个事件不过类似于声明一个私有的委托类型的变量而已,以防止其它对象从外部任意修改委托。
事务:是指一个工作单元,它包含了一组数据操作命令,所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。
锁:是在多用户环境中对数据的访问的限制,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。
索引像书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据
索引包含:
聚集索引(主键索引):在数据库里面,所有行数都会按照主键索引进行排序。
非聚集索引:就是给普通字段加上索引。
联合索引:就是好几个字段组成的索引,称为联合索引。
优点:
1.索引使查询数据效率快
2.可以保证数据库表中每一行的数据的唯一性
缺点:
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2.索引需要占物理空间
存储过程是一组预编译的SQL语句,
优点:
1.更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
2.减少网络流量
3.更好的安全机制,可设定只有某此用户才具有对指定存储过程的使用权。
声明:来自网络跟自己的理解



