主键与唯一索引
摘要:唯一索引 唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据 将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在employee表中的职员姓氏(lname)列上,创建了唯一索引,则所有职员不能同姓。 主键 主键索引是唯一索引的特殊类型,数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义一个主键 将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。 它们的一些比较: (1)...
阅读全文
c# 的static
摘要:1.static使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。例如,下面的类声明为 static,并且只包含 static 方法。特点: 不能通过实例引用静态成员。然而,可以通过类型名称引用它。 尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只...
阅读全文
。net内存机制包括堆和栈
摘要:堆栈(栈) 详见《c#高级编程》 第7章 内存管理和指针速度快,存取值类型数据,分配时向下分配,内存指针始终指向最高的地址,编译器根据变量自己的生命周期分配或释放。托管堆(堆)速度慢,存储引用类型的实例,分配时向上分配,这与栈正好相反。垃圾回收机制。可以显示调用system.GC.Collect()方法,来调用垃圾回收器进行回收工作。但是垃圾回收器不能释放未托管的资源,如文件句柄、网络连接、数据库...
阅读全文
const和readonly
摘要:constconst 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。例如: const int x = 0;public const double gravitationalConstant = 6.673e-11;private const string productName = "Visual C#"; 常数声明的类型指定声明引入的成员类型。常数表达式必须产...
阅读全文
c#引用类型和值类型的关系
摘要:存在位置:值类型通常分配在堆栈里,引用类型的实例通常分配与托管堆里,而在栈里保存实例的引用。实例化方式:引用类型必须使用new进行实例化,值类型不是必须。效率:值类型存取速度快,引用类型速度慢。处理方式:栈的内存分配是自动释放;而堆在.NET中会有GC来释放
阅读全文
c#反射
摘要:反射能够在运行过程中检查和处理程序元素的功能。反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现 有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。 3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。
阅读全文
c# 泛型
摘要:泛型: 泛型将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。优点:1.性能,避免了使用object的情况下的装箱和拆箱,降低了性能开销。2.类型安全,因为在客户端调用时类型已经确定,所以在编译期间就能3.重用二进制代码:可以定义一次,用许多不同的类型进行实例化。并且可以在一种。net语言中定义,在另一种。net语言中使用。4.一般用在集合的情况。还是从性能考虑。
阅读全文
c#类和结构体的关系
摘要:类:类是 C# 中功能最为强大的数据类型,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。结构体:结构体是轻量型的类,使用开销相对于类较小。两者的关系:1.数据类型:类和结构体都是数据类型,类是引用类型,结构体是值类型。2.继承性:类可以继承和被继承,而结构体隐式继承于object,不可以继承(除接口以外)和被继承3.构造函数:类和结构体都有默认(无参)构造函数,只不过...
阅读全文