随笔分类 - C#基础
C#基础
摘要:上周去了一家大型的互联网公司去面试!四个面试官提的问题整理下!以后会注明答案!1.关于垃圾回收的过程!GC的过程 其中包含:什么是根,Finalize与Dispose的区别,什么时候用到!IDispose 接口中有什么哪些方法!Finalize方法里面可以释放托管资源吗?2.什么时候使用...
阅读全文
摘要:线程池管理: 线程池管理是指在多线程应用程序的初始化过程中创建线程的集合,当需要线程时,为新任务重用这些线程,而不是创建新线程的过程。创建一个线程,线程会产生空间(内存占用)和时间(运行)的开销;需要线程池的原因:线程池管理中的问题:ThreadPool 类ThreadPool class提供了一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。线程池允许在后台运行多个工作,而不需要为每个任务频繁地创建和销毁单独的线程,从而减少了开销。
阅读全文
摘要:首先新建一个Person类 ,假设通过事件来检测Person类中的属性Name的变化; private string name; public string Name { get { return this.name; } set { if (value != this.name) { WhenValueChange(); } thi...
阅读全文
摘要:《C#线程参考手册》(C# Threading Handbook)是由清华出版社在2003年出版的一本关于C#线程编程的大作!第一章 定义线程进程:"当启动应用程序时,系统会为该应用程序分配所需的内存以及其他资源。内存和资源的物理分离叫做进程!应用程序可以启动多个进程。" 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本域(text region),数据区域(data region),堆栈区域(stack region).文本域(text region) , 用来存储处理器执行的代码。数据区域(data region), 存储变量和进程执行期间使用的动态
阅读全文
摘要:今天做了个小程序放在服务器上的运行数据查询的时候出现 “关于未能加载文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序”的错误提示!当时第一反应是由于版本不对造成的,由于本机测试是通过的(本机 32位WIN7) 服务器(64位 windowServer2003),立即替换成64位的Oracle.DataAccess.dll ,重新运行还是出现错误!果断ctrl+c,ctrl+v百度,找到以下解决方案:1.如果碰巧您
阅读全文
摘要:摘自:http://www.cnblogs.com/lema/archive/2012/11/27/2790599.html//今天DateTime.Now.Date.ToShortDateString();//昨天,就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDateString();//明天,同理,加一DateTime.Now.AddDays(1).ToShortDateString();//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止DateTime.Now.AddD
阅读全文
摘要:项目介绍 这节将要把《一步一步学Linq to sql(三):增删改》中留言簿的例子修改为使用WCF的多层构架。我们将会建立以下项目:l A,网站项目 WebSite:留言簿表现层l B,类库项目 Contract:定义数据访问服务的契约l C,类库项目 Service:定义数据访问服务l D,类库项目Entity:留言簿实体l E,控制台项目Host:承载数据访问服务项目之间的引用如下:l A引用B和D;l B引用D和System.ServiceModel程序集l C引用B、D、System.ServiceModel以及System.Data.Linq程序集l D引用System.Data.
阅读全文
摘要:外部映射文件 我们可以使用sqlmetal命令行工具来生成外部映射文件,使用方法如下:1、开始菜单 -》 VS2008 -》VS工具 -》VS2008命令行提示2、输入命令:D:\Program Files\Microsoft Visual Studio 9.0\VC>sqlmetal /conn:server=xxx;database=Northwind;uid=xxx;pwd=xxx /map:c:\northwind.map /code:c:\northwind.cs3、这样,我们就可以在C盘下得到一个xml映射文件和C#的实体类代码4、把.cs文件添加到项目中来(放到App_Co
阅读全文
摘要:论坛表结构 为了演示继承与关系,我们创建一个论坛数据库,在数据库中创建三个表:1、 论坛版块分类表 dbo.Categories:字段名字段类型可空备注CategoryIDintnot nullidentity/主键CategoryNamevarchar(50)not null2、 论坛版块表 dbo.Boards:字段名字段类型可空备注BoardIDintnot nullidentity/主键BoardNamevarchar(50)not nullBoardCategoryintnot null对应论坛版块分类表的CategoryID3、 论坛主题表 dbo.Topics:字段名字段类型可空
阅读全文
摘要:检测并发 首先使用下面的SQL语句查询数据库的产品表:select * from products where categoryid=1 查询结果如下图: 为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序: var query = from p in ctx.Products where p.CategoryID == 1 select p; foreach (var p in query) p.UnitsInStock = Convert.ToInt16(p.UnitsInStock - 1); ctx.SubmitChanges(); // 在这里
阅读全文
摘要:延迟执行 IQueryable query = from c in ctx.Customers select c; 这样的查询句法不会导致语句立即执行,它仅仅是一个描述,对应一个SQL。仅仅在需要使用的时候才会执行语句,比如: IQueryable query = from c in ctx.Customers select c; foreach (Customer c in query) Response.Write(c.CustomerID); 如果你执行两次foreach操作,将会捕获到两次SQL语句的执行: IQueryable query = from c in ctx.Custom
阅读全文
摘要:普通存储过程 首先在查询分析器运行下面的代码来创建一个存储过程:create proc sp_singleresultsetasset nocount onselect * from customers 然后打开IDE的服务器资源管理器,之前我们从表中拖动表到dbml设计视图,这次我们从存储过程中找到刚才创建的存储过程,然后拖动到设计视图。在方法面板中可以看到已经创建了一个sp_singleresultset的方法,如下图: 然后打开Northwind.designer.cs,可以找到下面的代码: [Function(Name="dbo.sp_singleresultset"
阅读全文
摘要:select描述:查询顾客的公司名、地址信息查询句法:var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName, 地址 = c.Address };对应SQL:SELECT [t0].[CompanyName], [t0].[Address]FROM [dbo].[Customers] AS [t0]描述:查询职员的姓名和雇用年份查询句法:var 构建匿名类型2 = from emp in ctx.Employees select new { 姓名 = emp.LastName + emp.FirstName,
阅读全文
摘要:示例数据库字段名字段类型允许空字段说明IDuniqueidentifier表主键字段UserNamevarchar(50)留言用户名PostTimedatetime留言时间Messagevarchar(400)√留言内容IsRepliedbit留言是否回复Replyvarchar(400)√留言管理员回复 在数据库中创建一个名为GuestBook的数据库,在里面创建一个tbGuestBook的表,结构如上表。生成实体类 右键点击网站项目,选择添加新项,然后选择“Linq to sql Classes”,命名为GuestBook。然后打开App_Code里面的GuestBook.dbml。设计视
阅读全文
摘要:什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。 要学好LINQ查询语法,就不得不先理解C# 3.0的一些新特性,下面一一简单介绍。隐含类型局部变量var age = 26;var username = "zhuye";var userlist = new [] {&
阅读全文
摘要:DataContext DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。 DataContext提供了以下一些使用的功能:l 以日志形式记录DataContext生成的SQLl 执行SQL(包括查询和更新语句)l 创建和删除数据库DataContext是实体和数据库之间的桥梁,那么首先我们需要定义映射到数据表的实体。定义实体类using System.Data.Linq.Mapping;[Table(Name = "Customers")]
阅读全文
摘要:本篇文章涵盖一下几部分内容:1. 什么是异步编程,为什么会需要异步编程2. .NET下的异步编程及其发展3. .NET线程同步机制及线程间数据封送4. 异步模式5. 线程安全及异常处理6. 线程取消什么是异步编程,为什么会需要异步编程这个世界上资源是受限的。但资源限制和懒惰一样促进了工业和科技的发展。在计算机方面举个例子,计算机非得是二进制吗?对计算机来说二进制最好吗?不是,这是由于当时工业水平限制,把电压分成两份表示0和1比分成三份更加方便且可靠;虚拟内存管理,Cache等技术都是由当时硬件条件所限逼出来的技术,同样异步编程和分布式编程也是。生活中的好多事物都不是线性的,拿学生时代的一个常.
阅读全文
摘要:很大程度上来讲,LINQ的工作方式很像SQL。查询源定义、join、select和where子句都是相当标准的,而Group/By/Into子句则正是我们这里要仔细说明的。SQL总是返回矩阵式数据集,与它不同的是,LINQ具备了返回层次化数据的能力,这也给它自己带来了更多新的挑战。举一个例子,将客户按照所属country和city进行分组查询,在SQL中,可能会通过在客户端手动分组或者执行1+N+(N*M)次查询来实现,一个查询用来获取所有的国家,一个查询用来获取每个国家的所有城市,然后再逐个查询出每个国家的每个城市下所有的客户列表。而在LINQ中,它可以通过一个带有一系列子查询的查询语句一次
阅读全文
摘要:差集在几何数学中的定义:一般地,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,我们把集合{x∣x∈A,且x∉B}叫做A与B的差集,记作A-B(或A\B),即A-B={x|x∈A且x∉ B}(或A\B={x|x∈A且x ∉B},同理 B-A={x∣x∈B且x∉A} 叫做B与A的差集通俗点讲就是A-B 是属于A的但不属于B的那部分集合;在.NET中 List<T>.Except()来实现集合的差集;如:List<string> A=new List(){"A","
阅读全文
摘要:枚举提供成组的常数值,它们有助于使成员成为强类型以及提高代码的可读性。在 C#中,使用 enum 来声明枚举。 所有的枚举类型都是从System.Enum抽象类派生的,后者又是从System.ValueType派生,因此所有的枚举类型都是值类型。 enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常数组成的独特类型。每种枚举类型都有基础类型,该类型可以是除 char 以外的任何整型。枚举元素的默认基础类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。基本语法: enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sa.
阅读全文

浙公网安备 33010602011771号