C#
文章平均质量分 83
acmilanvanbasten
这个作者很懒,什么都没留下…
展开
-
将关键字转换成GB2312的url编码形式
System.Web.HttpUtility.UrlEncode(searchKey, System.Text.Encoding.GetEncoding("GB2312"))转载 2013-03-07 22:24:43 · 706 阅读 · 0 评论 -
linq 总结
linq是插入c#和vb.net中的一种sql查询语言.sql查询语言是一个以用途目的为导向,而不是指令式的语言,因此比较人性化.结合linq,c#也能写出高效易于理解的数据处理代码.因此,每一个学习c#的朋友,都应该学好linQ.下面是我学习的一些总结,希望对大家也有点帮助.函数形式和查询语句形式linq 语言包含两种形式,一种是linq的特有查询语言,一种是函数转载 2013-12-06 09:22:40 · 746 阅读 · 0 评论 -
细说多线程1
引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用Upd转载 2013-12-06 12:53:06 · 585 阅读 · 0 评论 -
细说多线程2
五、CLR线程池的I/O线程 在前一节所介绍的线程都属于CLR线程池的工作者线程,这一节开始为大家介绍一下CLR线程池的I/O线程 I/O 线程是.NET专为访问外部资源所设置的一种线程,因为访问外部资源常常要受到外界因素的影响,为了防止让主线程受影响而长期处于阻塞状态,.NET为多个I/O操作都建立起了异步方法,例如:FileStream、TCP/IP、WebRequest、转载 2013-12-06 12:53:35 · 1139 阅读 · 0 评论 -
Sqlhelper
class MysqlHelper : IDBHelper { /// /// 连接字符串 /// private string connString; /// /// 数据库连接对象 /// private MySqlConnection conn;转载 2013-12-12 20:01:53 · 666 阅读 · 0 评论 -
C# 对象与JSON串互相转换
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Runtime.Serialization;using System.Runtime.Serialization.Json;转载 2013-12-06 09:45:47 · 547 阅读 · 0 评论 -
C# DateTime
获得当前系统时间: DateTime dt = DateTime.Now;Environment.TickCount可以得到“系统启动到现在”的毫秒值DateTime now = DateTime.Now;Console.WriteLine(now.ToString("yyyy-MM-dd")); //按yyyy-MM-dd格式输出sConsole.WriteLine转载 2013-12-17 16:10:51 · 628 阅读 · 0 评论 -
c# XML序列化与反序列化
原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWriter和BinaryReader来读写,突然想到能不能用XML来序列化?于是在网上查了些资料便写了些实践性代码,做些记录,避免以后忘记。序列化对象 public class People {转载 2014-01-02 13:56:21 · 783 阅读 · 0 评论 -
代码
1.Xml序列化成对象:public static T LoadXmlFile(string fileName) { FileStream fileStream = (FileStream) null; try { XmlSerializer xmlSerializer = new XmlSerializer(typeof (T)原创 2014-01-29 14:34:55 · 591 阅读 · 0 评论 -
异步与多线程的区别
一、异步和多线程有什么区别?其实,异步是目的,而多线程是实现这个目的的方法。异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作就没有必要异步了),可以继续自顾自的处理它自己的事儿,不用干等着这个耗时操作返回。.Net中的这种异步编程模型,就简化了多线程编程,我们甚至都不用去关心Thread类,就可以做一个异步操作出来。二、随着拥有多个硬线程CPU(超线程、双核)的普及转载 2014-04-19 21:04:50 · 1019 阅读 · 0 评论 -
减少.NET应用程序内存占用的一则实践
最近一周比较忙,主要的工作内容是在做一个叫“键盘精灵”的东西,简单来讲就是将很多数据放到内存中,对这些数据进行快速检索,然后找出根据输入条件最匹配的10条记录并予以展示。具体和下面两款炒股软件的相关功能类似:数据以文本形式存在文件中,且数据量较大,有近20万条,每一条记录有几个字段,以分隔符分割。当时使用的是6万条记录的测试数据,文本文件将近10M,这个模块加载到内存并建立缓存之后转载 2014-07-10 00:01:36 · 893 阅读 · 0 评论 -
C#委托解决界面与线程通信
/// /// 定义一个委托代理处理线程与主界面listview控件的通信 /// /// /// private delegate void SetListViewCallback(string ip, string state, int way);/// /转载 2013-12-11 21:50:53 · 1808 阅读 · 0 评论 -
同步块索引syncblock
大家都知道引用类型对象除实例字段的开销外,还有两个字段的开销:类型指针和同步块索引(SyncBlockIndex)。同步块索引这个东西比起它的兄弟类型指针更少受人关注,显得有点冷落,其实此兄功力非凡,在CLR里可谓叱咤风云,很多功能都要借助它来实现。 接下来我会用三篇来介绍同步块索引在.NET中的所作所为。 既然本章副标题是从lock开始,那我就举几个lock的示例:代码1转载 2013-11-08 13:55:35 · 4564 阅读 · 1 评论 -
c#程序性能优化
1.1 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。1.1.1 避免循环创建对象 ★如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。1.1.2 在需要逻辑分支中创建对象如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建转载 2013-11-21 09:37:47 · 741 阅读 · 0 评论 -
C#如何写类库,并调用类库中的函数
创建一个新的项目,选择类库,然后写举例如下代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Text.RegularExpressions;namespac原创 2013-02-28 22:17:24 · 11373 阅读 · 0 评论 -
C# 中的委托和事件
引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对转载 2013-02-28 22:24:56 · 509 阅读 · 0 评论 -
C#学习之接口
什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的。那么,我们来看一下如何声明和使用接口。 声明接口 声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账转载 2013-02-28 22:22:21 · 642 阅读 · 0 评论 -
C#属性
属性:get { //读属性代码 } set { //写属性代码 } public class Person{private string name;public string Name{get{return name;}set{ name=value;}}}属性可以忽略get或set访问器,但是不能两个都忽略.set访问器包含一个隐藏的参数value,转载 2013-03-01 10:41:33 · 749 阅读 · 0 评论 -
C#中操作Excel的方法
首先是如何创建、打开、读取、写入、保存的一般性代码: using System; using System.Reflection; // 引用这个才能使用Missing字段 namespace CExcel1 { class Class1 { [STAThread]转载 2013-03-01 11:45:18 · 465 阅读 · 0 评论 -
C#创建多线程应用程序
在.NET和C#中编写一个多线程应用程序将非常得容易。即使对于那些从没有用C#编写过多线程应用程序的初学者,只需遵循以下这些简单的步骤就可以实现目的。定义名称空间在.NET中,多线程功能是在System.Threading名称空间中定义的。因此,在使用任何线程类之前,必须定义 System.Threading名称空间。定义方法如下:using System.Threading;启动转载 2013-03-01 11:46:50 · 465 阅读 · 0 评论 -
C#封装
对于一个具有丰富结构化程序设计经验的程序员来说,面向对象的程序设计可能会给他们带来非常不自然的感觉。封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。在本文中,我们将详细学习属性的特性。封装的概念可以把程序按某种规则分成很多“块“,块与块之间可能会有联系,每个块都有一个可变部分和一个稳定的部分。我们需转载 2013-03-01 10:46:11 · 9004 阅读 · 0 评论 -
C#继承
C#的继承与 C++ 等语言一个重要的不同,就是只能从一个类中继承,这是开发者在权衡了从多个类C#继承的优势与劣势作出的结果。不过,可以从接口继承。另外,继承可传递。构造函数和析构函数不能被继承。初始化基类可以在派生类构造函数中添加初始化基类的代码。public class BaseClass { private int i = 0; public B转载 2013-03-01 10:52:05 · 709 阅读 · 0 评论 -
C#集合
System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。System.Collections.Specialized 命名空间包含专用的和强类型的转载 2013-03-14 15:15:53 · 575 阅读 · 0 评论 -
一个简单地MVVM模式实现,直接上码
1.代码架构2.具体代码 QueryUser.xaml: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:原创 2013-10-31 22:59:16 · 609 阅读 · 0 评论 -
在Ubuntu操作系统上安装mono和jexus搭建.NET的运行环境
mono在国内的应用已经越来越多了。现在因为商业版权问题,很多公司都不敢将其用于生产环境上,但这无法挡住mono的魅力。.net的程序猿们,如果你还不知道mono那就太可惜了。“Mono+Jexus”架构模式是Linux承载ASP.NET企业级应用的极为重要的架构方式。这种架构中,Jexus很好安装、配置,基本上就是一个下载、解压、复制的过程,但mono安装会麻烦点。这篇文章将记录下在ub转载 2014-07-10 00:03:40 · 1029 阅读 · 0 评论