随笔分类 - C#
摘要:静态类与非静态类基本相同,但存在一个区别:静态类不能实例化。也就是说,不能使用new关键字创建静态类类型的变量。因为没有实例变量,所以要使用类名本身访问静态类的成员。例如,如果名为UtilityClass的静态类有一个名为MethodA的公共方法,则按下面的示例所示调用该方法:C#UtilityClass.MethodA();对于只对输入参数进行运算而不获取或设置任何内部实例字段的方法集,静态类可以方便地用作这些方法集的容器。例如,在 .NET Framework 类库中,静态类System.Math包含的方法只执行数学运算,而无需存储或检索特定Math类实例特有的数据。就是说,通过指定类名称
阅读全文
摘要:转自:http://technet.microsoft.com/zh-cn/magazine/ms228285(VS.90).aspx创建项目之后,可以使用“项目设计器”执行各种任务,例如更改可执行文件的名称、自定义生成过程、添加对 DLL 的引用或加强安全设置。可以通过以下三种方式访问“项目设计器”:在“项目”菜单上单击“属性”。在“解决方案资源管理器”中右击“属性”项,然后单击“打开”。在“解决方案资源管理器”中右击此项目,然后单击“属性”。“项目设计器”将显示在编辑器/设计器窗口,如下图所示:在“项目设计器”中,对各种项目属性进行分组,包含在 12 个页面中。“项目设计器”属性页与“Wi
阅读全文
摘要:转自:http://www.cnblogs.com/luminji/archive/2010/09/17/1829380.htmlC#笔记21:多线程之线程同步中的锁定lock、Monitor1:什么是锁2:如何选择锁定对象3:如何锁定集合4:Monitor1:什么是锁 lock 语句可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。2:如何选择锁定对象 提供给 lock 关键字的参数必须为基于引用类型的对象,该对象用来定义锁的范围。在上面的示例中,锁的范围限定为此函数,因为函数外不存在任何对对象 lockThis 的引用。如果确实存在此类
阅读全文
摘要:转自:http://www.cnblogs.com/luminji/archive/2011/05/03/2034890.html所谓线程同步,就是多个线程之间在某个对象上执行等待(也可理解为锁定该对象),直到该对象被解除锁定。C#中对象的类型分为引用类型和值类型。CLR在这两种类型上的等待是不一样的。我们可以简单的理解为在CLR中,值类型是不能被锁定的,也即:不能在一个值类型对象上执行等待。而在引用类型上的等待机制,则分为两类:锁定和信号同步。锁定,使用关键字lock和类型Monitor。两者没有实质区别,前者其实是后者的语法糖。这是最常用的同步技术;本建议我们讨论的是信号同步。信号同步机制
阅读全文
摘要:转自:http://bbs.csdn.net/topics/360140208这个问题被问到相当多,很多网友都知道用属性,用委托。但是具体怎么做却不清楚。我在网上看到很多文章,虽然提出的方案可行,但是实现的都不好,于是自己动手写了一个例子给大家。希望这个例子足够简单完整。我将标题设定为“最佳实践”,意味着我觉得窗体传值应该有一个统一的,标准的模式给大家套用。我认为我提供的模式比较优雅,但是更优雅的设计是采用MVC。因为那样会大大增加例子的复杂度,不适合新手,没有给出。为了实现这个例子,你需要准备2个窗口,一个叫MainForm,上面至少需要一个richTextBox,两个工具栏按钮。另一个叫M
阅读全文
摘要:Stack,后进先出不允许遍历。命名空间:System.Collections构造函数:Stack();Stack(int32);Stack(ICollection);属性:Conut 元素的个数.IsSynchronized 表示是否对栈中的数据进行同步访问SyncRoot 获取用于同步对Stack访问的对象。方法:(个人认为比较重要的方法)Clear清除栈中的数据。Contains 判定某个对象是否在栈中。GetType 获得当前实例的TypePeek 返回STACK顶部对象但不删除Pop 移除并返回位于顶部的对象Push 将对象插入Stack顶部ToArray 将Stack复制到新的数组
阅读全文
摘要:代码很简单,写成控件,定义一个角度的属性,然后改动属性重绘。 public UserControl1() { InitializeComponent(); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); this.SetStyle(ControlStyles.ResizeRedraw, true); ...
阅读全文
摘要:属性值类型:System.Windows.Forms.AutoCompleteSourceAutoCompleteSource值之一。这些选项为AllSystemSources、AllUrl、FileSystem、HistoryList、RecentlyUsedList、CustomSource和None。默认值为None。备注使用AutoCompleteCustomSource、AutoCompleteMode和AutoCompleteSource属性可以创建一个TextBox,它通过将所输入的前缀与所维护的源中的所有字符串的前缀进行比较来自动完成输入字符串。这对于频繁地有 URL、地址、文
阅读全文
摘要:原文地址:http://www.cnblogs.com/wisdomforce/archive/2010/05/17/1737174.html1、概念描述 is是C#中用于类型兼容性判断的操作符,检查一个对象是否兼容于其他指定的类型,如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。is的规则如下: 检查对象类型的兼容性,并返回结果,true或者false; 不会抛出异常; 如果对象为null,则返回值永远为false。如下例说明 System.Boolean b1 = (o is System.Object);//b1 为true System...
阅读全文
摘要:原文地址:http://www.cnblogs.com/wisdomforce/archive/2010/05/30/1747426.html1.泛型的概念泛型可将具体类型的指定推迟到客户端代码声明并实例化类的时候。使用泛型类型可以组嗲限度的重用代码、保护类型的安全以及提高程序的性能。泛型最常见的用途是创建类集合。NET Framework类库在System.Collections.Generic命名空间中包含几个泛型集合类。应尽可能的使用这些类来代替普通的类,如System.Collections命名空间中的ArrayList等集合类。2.泛型的优点 通过创建泛型类,可以创建一个编译时类型安
阅读全文
摘要:接口可是实现多继承,接口提供了一种约定,规定继承于接口的所有类必须实现接口中定义的属性和方法,继承于接口的子类,在实现接口属性和方法时,不需要像抽象类使用override关键字,实现接口分为隐式实现接口和显示实现接口。接口中只能定义属性和方法,而且接口中定义的属性和方法不可以添加访问修饰符,子类如果实现接口的属性和方法,此属性和方法的访问修饰符必须是public.interface ICar{ string Color{get;set;} void Run();}隐式实现接口:interface ICar{ void Run();}class Car:ICar{ public void Run
阅读全文
摘要:访问修饰符public 无限制private 类内部访问protected类和它的派生类可以访问internal位于同一个程序集内可以访问对象构造器对象构造器又叫实例构造器或构造方法,对象构造器用来初始化对象的状态,如果类没有定义构造器,则编译器会自动生成一个无参的对象构造器,如果类已经定义了类型的对象构造器,则边一起不会自动为类生成一个无参的对象构造器。类的对象构造器中可以使用this关键字调用本类中定义的其他对象构造器。例如:class Car { public string carName; public string carColor; ...
阅读全文
摘要:StringBuilder的构造函数public StringBuilder();public StringBuilder(int capacity);public StringBuilder(string Value);public StringBuilder(int capacity,int MaxCapacity);public StringBuilder(string Value,int capacity);public StringBuilder(string value,int startIndex,int length, int capacity);capacity:String
阅读全文
摘要:char结构在C#中是Unicode字符比较重要的方法:IsDigit 指定某个Unicode字符是否属于十进制数字类别IsLetter 是否输入字母类别IsLower 是否输入小写字符类别IsNumber 是否输入数字IsPunctuation 是否属于标点符号类别IsSeparator 是否输入分隔符类型IsUpper 是否输入大写字母IsWhiteSpace 是否属于空白类型ToLower 转化为小写ToString 转化为字符串表示ToUpper 转化为大写转义字符\n 回车换行\t 横向跳到下一个制表位置\v 竖向跳格\b 退格\r 回车\f 换页\\ 反斜线\' 单引号符s
阅读全文
摘要:值类型一边都存储在现成堆栈中。访问值类型时一般都是直接访问其实例。每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响到其他变量。复制值类型的变量时,复制的是变量的值,而不是变量的地址。值类型的变量不能为Null,必须具有一个确定的值。值类型主要由两大部分组成,分别为结构和枚举。而结构又分为值类型,布尔类型和用户自定义结构等三类,数值类型包括整数型,浮点数,decimal等。checked 用于检测是否存在溢出,如果发现溢出则抛出异常。枚举类型中变量之间用的是逗号enum color { red, blue, ...
阅读全文

浙公网安备 33010602011771号