摘要: 1.协变和抗变 在 .NET4之前,泛型接口是不变的。 .NET4通过协变和抗变为泛型接口和泛型委托添加了一个重要的扩展。协变和抗变指对参数和返回值的类型进行转换。例如,可以给一个需要 shape参数的方法传送Rectangle参数码?下面用示例说明这些扩展的优点。 在,NET中 ,参数类型是协变的 阅读全文
posted @ 2013-08-23 19:36 罗马景行 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 1.创建一个泛型类 public class DocumentMangereList { private readonly Queue documentQueue = new Queue(); public void AddDocument(T doc) { lock (this) { documentQueue.Enqueue(doc); } } public bool IsDocumentAvailable ... 阅读全文
posted @ 2013-08-23 19:30 罗马景行 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 与类相似,结构也可以是泛型的。它们非常类似于泛型类,只是没有继承特性。.NETFramework中的一个泛型结构是Nullable。数据库中的数字和编程语言中的数字有显著不同的特征,因为数据库中的数字可以为空,而C#中的数字不能为空。Int32是一个结构,而结构的实现同值类型,所以结构不能为空。这个问题不仅存在于在数据库中,也存在于把XML数据映射到,NET类型。这种区别常常令人很头痛,映射数据也要多做许多辅助工作。一种解决方案是把数据库和XML文件中的数字映射为引用类型,因为引用类型可以为空值。但这也会在运行期间带来额外的系统开销。使用Nullable结构很容易解决这个问题。下面的代码段说明 阅读全文
posted @ 2013-08-23 19:22 罗马景行 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 1.using System;using System.Text;namespace DLL{ public class Class1 { public void showStr() { Console.WriteLine("12343"); } }}2.using System;using System.Text;using dll = DLL;public class Program{ static void Main(string[] args) { dll::Class1 c1 ... 阅读全文
posted @ 2013-08-23 19:18 罗马景行 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 1.《Sqlite权威指南》上说是这么创建数据库的:sqlite3 test.db但是我写了这条语句之后出现了下面的情况(注:安装Sqlite过程见 ...)我的sqlite3放在 E:/db/sqlite3.exe1)首先进入数据库2)输入创建数据库的语句 sqlite3 test.db3)《SQLite权威指南》是这么说的:尽管我们提供了数据库名, 但如果这个数据库并不存在, SQLite 并不会真正地创建它。 SQLite会等到你真正地向其中增加了数据库对象之后才创建它, 比如在其中创建了表或视图。 这样做的原因是给你机会在将数据库写到外部文件之前对数据库做一些永久性的设置, 如页的大小 阅读全文
posted @ 2013-08-23 18:42 罗马景行 阅读(727) 评论(0) 推荐(1) 编辑
摘要: .databases //显示所有数据库.tables //显示所有表.schema test //显示创建 test 表的 sql 语句1)备份和还原数据库.backup E:/db/Student.db //把当前连接中的缓存数据到处到本地文件.restore 'E:/db/mydb.db'//从备份文件 E:/db/mydb.db 中恢复数据到当前连接的main数据库中2).dump数据表创建语句到指定文件.output E:/db/output.txt //将命令行当前的输出重定向到 E:/db/output.txt .dump test1% //将创建 test1 表 阅读全文
posted @ 2013-08-23 18:37 罗马景行 阅读(189) 评论(0) 推荐(0) 编辑