随笔分类 -  C#基础

摘要:今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" 或者 SqlClient Class , 你在执行一个很费时的SQL 操作时候,可能就会碰到下面的超时异常。-------... 阅读全文
posted @ 2014-05-01 09:08 cpcpc 阅读(1173) 评论(0) 推荐(0) 编辑
摘要:[转:http://blog.csdn.net/woaixiaozhe/article/details/7873582]1.说明:Dictionary对象本身不支持序列化和反序列化,需要定义一个继承自Dictionary, IXmlSerializable类的自定义类来实现该功能。感觉完全可以把这样... 阅读全文
posted @ 2014-04-21 17:08 cpcpc 阅读(2074) 评论(0) 推荐(0) 编辑
摘要:设置:HttpCookie cookie = new HttpCookie("cookieName"); cookie.Value = "name1"HttpContext.Current.Response.Cookies.Add(cookie); 读取:HttpContext.Current.Request.Cookies["cookieName"].Value判断cookie是否存在:if(HttpContext.Current.Request.Cookies["cookieName"]==null){//do 阅读全文
posted @ 2012-09-10 17:44 cpcpc 阅读(75414) 评论(3) 推荐(10) 编辑
摘要:C#读取web.config文件信息web.config<?xml version="1.0"?><!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --><configuration> <appSettings> <add key="name" value="name1"/> </appSettings></configuration>C#读取 阅读全文
posted @ 2012-09-10 17:38 cpcpc 阅读(19020) 评论(1) 推荐(2) 编辑
摘要:转自:http://www.cnblogs.com/multiplesoftware/archive/2011/12/21/2295386.html,原文名:非常好玩的C#/.NET 基础 -- 安全有效引发事件最近在网上看到一篇很好的文章, 讨论如何安全有效的引发事件.也许你不一定要用到下面相同的解决方案, 但是至少你应该知道在引发事件时候需要考虑的问题.引发事件的问题引发事件是一个非常容易的事情, 但是的确也有它的误区. 让我们举个例子. 假设我们写个消息接收器, 每当我们收到一个新消息, 我们引发一个包含了新消息的事件 MessageReceived.安装我们通常的方法,就是:publi 阅读全文
posted @ 2012-08-09 10:37 cpcpc 阅读(431) 评论(1) 推荐(1) 编辑
摘要:基于.NET开发ActiveX控件,参考文章:http://hi.baidu.com/1987raymond/blog/item/15134ccf6fffc131f8dc6117.html(文章一),http://www.cnblogs.com/ArthurYan/archive/2008/12/04/1347276.html(文章二)具体的步骤上面的两篇文章都写的很详细,我在这里就不多啰嗦了。这里主要总结一下我根据上面两篇文章做的Demo1,添加ActiveX控件,在控件里编辑自己需要实现的内容;2,用户控件继承IObjectSafety接口,同事也用到了COM Interoperabili 阅读全文
posted @ 2012-08-06 16:15 cpcpc 阅读(811) 评论(0) 推荐(0) 编辑
摘要:线程间通信 我们看下面的图图1 我们来看线程间通信的原理:线程(Thread B)和线程(Thread A)通信, 首先线程A 必须实现同步上下文对象(Synchronization Context), 线程B通过调用线程A的同步上下文对象来访问线程A,所有实现都是在同步上下文中完成的.线程B有两种方式来实现线程间的通信. 第一种:调用线程A的同步上下文对象,阻碍当前线程,执行红色箭头调用,直到黄色箭头返回(同步上下文执行完毕)才释放当前线程. (1->2->3->5) 第二种: 调用线程A的同步上下文对象(实际上是在开启一个新线程去执行,1->2->3-> 阅读全文
posted @ 2012-07-02 09:30 cpcpc 阅读(5600) 评论(9) 推荐(5) 编辑
摘要:来自 http://www.cnblogs.com/name-lh/archive/2007/04/28/731528.html#2240157 阅读全文
posted @ 2012-06-20 16:55 cpcpc 阅读(218) 评论(0) 推荐(0) 编辑
摘要:?? 运算符(C# 参考)?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。View Code 1 class NullCoalesce 2 { 3 static int? GetNullableInt() 4 { 5 return null; 6 } 7 8 static string GetStringValue() 9 {10 return null;11 }12 13 ... 阅读全文
posted @ 2012-04-19 14:58 cpcpc 阅读(613) 评论(0) 推荐(0) 编辑
摘要:如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。paramsparams关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。示例:字面意思比较难懂,所以看示例很有用。 1 // keywords_params.cs 2 3 using System; 4 5 class App 6 { 7 public static void UseParams(p... 阅读全文
posted @ 2011-09-05 20:32 cpcpc 阅读(245) 评论(0) 推荐(0) 编辑
摘要:在C#中,ref的意思是按引用传递。可以参考C++:1 int a = 10, b = 20; 2 void swap(int x, int y) 3 { 4 int temp = x; 5 x = y; 6 y = temp; 7 } 如果简单的调用这个swap,比如:swap(a, b),那么你根本没办法交换这两个变量的值,因为x和y都是形参,在swap返回的时候,x和y都被释放了。但如果是这样定义swap:1 void swap (int& x, int& y) 2 { 3 int temp = x; ... 阅读全文
posted @ 2011-09-05 20:29 cpcpc 阅读(438) 评论(0) 推荐(0) 编辑
摘要:从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的函数,其中那个申明时定义的类叫申明类,那个执行时实例化的类叫实例类。如:飞禽 bird = new 麻雀();那么飞禽就是申明类,麻雀是实例类。具体的检查的流程如下1、当调用一个对象的函数时,系统会直接去检查这个对象申明定义的类,即申明类,看所调用的函数是否为虚函数;2、如果不是虚函数,那么它就直接执行该函数。而如果有virtual关键 阅读全文
posted @ 2011-09-05 20:27 cpcpc 阅读(524) 评论(0) 推荐(0) 编辑
摘要:类(Class)面向对象思想来源于对现实世界的认知。现实世界缤纷复杂、种类繁多,难于认识和理解。但是聪明的人们学会了把这些错综复杂的事物进行分类,从而使世界变得井井有条。比如我们由各式各样的汽车抽象出汽车的概念,由形形色色的猫抽象出猫的概念,由五彩斑斓的鲜花抽象出花的概念等。汽车、猫、鲜花都代表着一类事物。每一类事物都有特定的状态,比如汽车的品牌、时速、马力、耗油量、座椅数,小猫的年龄、体重、毛色,鲜花的颜色、花瓣形状、花瓣数目,都是在描述事物的状态。每类事物也都有一定的行为,比如汽车启动、行驶、加速、减速、刹车、停车,猫捉老鼠,鲜花盛开。这些不同的状态和行为将各类事物区分开来。面向对象编程也 阅读全文
posted @ 2011-09-05 20:26 cpcpc 阅读(600) 评论(0) 推荐(0) 编辑
摘要:1,从第一个元素开始复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从第一个元素开始)。长度指定为 32 位整数。Visual Basic(声明)Public Shared Sub Copy ( _ sourceArray As Array, _ destinationArray As Array, _ length As Integer _)Visual Basic(用法)Dim sourceArray As ArrayDim destinationArray As ArrayDim length As IntegerArray.Copy(sourceArray, des 阅读全文
posted @ 2010-07-19 15:55 cpcpc 阅读(16388) 评论(0) 推荐(0) 编辑
摘要:yield关键字yield return 语句返回集合的一个元素,并移动到下一个元素上. yield break可停止迭代. using System; using System.Collection; namespace Wrox.ProCSharp.Arrays { public class HelloCollection { public IEnumerator GetEnumerator() { yield return "Hello"; yield return "World"; } } } 包含yield语句的方法或属性也称为迭代块.迭代块必 阅读全文
posted @ 2010-05-04 09:52 cpcpc 阅读(209) 评论(0) 推荐(0) 编辑
摘要:http://www.connectionstrings.com/ 所有的数据库连接语句 阅读全文
posted @ 2010-04-27 13:50 cpcpc 阅读(151) 评论(0) 推荐(0) 编辑
摘要:偶然看到一道面试题,题目如下:view plaincopy to clipboardprint?1 public class A2 {3 public static int X;4 static A()5 {6 X = B.Y + 1;7 }8 }9 public class B10 {11 public static int Y = A.X + 1;12 static B()13 { }14 }15 class Program16 {17 static void Main(string[] args)18 {19 Console.WriteLine("X={0},Y={1}&quo 阅读全文
posted @ 2010-04-16 09:17 cpcpc 阅读(2000) 评论(0) 推荐(1) 编辑