摘要:System.Collections命名空间包含可使用的集合类和相关的接口,提供了集合的基本功能。该命名空间下的.NET非泛型集合类如下所示:— System.Collections.ArrayList:数组集合类,使用大小可按动态增加的数组实现Ilist接口。— System.Collections.BitArray:布尔集合类,管理位值的压缩数组,该值为布尔值。— System.Collections.Queue:队列,表示对象的先进先出集合。— System.Collections.Stack:堆栈,表示对象的简单的后进先出集合。— System.Collections.Hashtabl
阅读全文
摘要:浅析C#中new、override、virtual关键字的区别OO思想现在已经在软件开发项目中广泛应用,其中最重要的一个特性就是继承,最近偶简单的复习了下在C#中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来,方便大家查阅。一、在C#中,new这个关键字使用频率非常高,主要有3个功能: a) 作为运算符用来创建一个对象和调用构造函数。b) 作为修饰符。c) 用于在泛型声明中约束可能用作类型参数的参数的类型。在本文中,只具体介绍new作为修饰符的作用,在用作修饰符时,new关键字可以在派生类中隐藏基类的方法,也就说在使用派生类的方法是调用的方法是New关键字新定义出来的
阅读全文
摘要:也谈接口和抽象类区别好象这是一个老生常谈的问题,最近有个学生问我他们的区别,于是我就又想起这个话题。有不少的文章在描述这两者,但好象都没有怎么从初学者的浅显角度来看。其实这两者有很多相识之处,当然也有很多不同之处。要理解它们,应该先从面向对象思想开始。面向对象思想里面,最基本的就是封装,继承和多态。所谓封装,说的小,方法(函数)也就是对一种操作的封装,说的大,用类来描述一个具体的对象。那么在面向对象程序中应该说对封装还有一层新的定义,即将类的描述抽象化,也就是说描述类的外貌而不去考虑它的实际。那么我们回过头来看抽象类,它必须被继承使用,描述的其实是一种继承关系,即"is a"
阅读全文
摘要:关于C#静态构造函数的几点说明静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 classSimpleClass{//StaticconstructorstaticSimpleClass(){//}} 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。 2、是在创建第一个类...
阅读全文
摘要:GetType和typeof的区别typeof: The typeof operator is used to obtain the System.Type object for atype.运算符,获得某一类型的System.Type对象。Type t = typeof(int);GetType: Gets the Type of the current instance.方法,获取当前实例的类型。 int i = 10;Console.WriteLine(i.GetType());区别:Typeof()是运算符而GetType是方法GetType()是基类System.Object的方法,
阅读全文
摘要:用Blend 或VS 2010的设计视图打开一个用户控件,如果出现错误(最常见的是空引用错误),而debug时程序运行正常,那很可能是由于设计时的一些限制造成控件无法在设计器中正常打开。如何避免呢?通过 System.ComponentModel.DesignerProperties.IsInDesignTool 判断当前状态是否是设计时,在设计时避免构造函数与Loaded事件处理方法中执行那些代码即可,例如:public partial class ProductsView : UserControl{ public ProductsView() { InitializeComponent(
阅读全文
摘要:装了WP7的SDK,会自动安装Visual Studio Express 2010 For Windows Phone,相当于免费的Visual Studio.遗憾的是,这个Express版本的Visual Studio只有英文版.而国内的用户一般都同时安装了Visual Studio的其他中文版本(专业版/旗舰版),我这里安装了VS 2010 中文专业版.但是即使安装了WP7 SDK,专业版在新建项目的时候还是没有增加Windows Phone 7应用程序的模板,我们这里需要自动手动添加一下. 首先打开D:\Program Files (x86)\Microsoft Visual Stu..
阅读全文
摘要:Silverlight中所谓的布局容器,其实都是继承自Panel类,然后重写两个方法:MeasureOverride:计算元素应该渲染的尺寸ArrangeOverride:在具体的位置渲染元素demo:using System;using System.ComponentModel;using System.Windows;using System.Windows.Controls;using System.Windows.Threading;namespace LayoutDemo{ public class TestPanel2 : Panel { public ...
阅读全文