吴佳鑫的个人专栏

当日事当日毕,没有任何借口

导航

2011年11月27日

接口与抽象类那点事

摘要: 也谈接口和抽象类区别好象这是一个老生常谈的问题,最近有个学生问我他们的区别,于是我就又想起这个话题。有不少的文章在描述这两者,但好象都没有怎么从初学者的浅显角度来看。其实这两者有很多相识之处,当然也有很多不同之处。要理解它们,应该先从面向对象思想开始。面向对象思想里面,最基本的就是封装,继承和多态。所谓封装,说的小,方法(函数)也就是对一种操作的封装,说的大,用类来描述一个具体的对象。那么在面向对象程序中应该说对封装还有一层新的定义,即将类的描述抽象化,也就是说描述类的外貌而不去考虑它的实际。那么我们回过头来看抽象类,它必须被继承使用,描述的其实是一种继承关系,即"is a" 阅读全文

posted @ 2011-11-27 14:28 _eagle 阅读(320) 评论(0) 推荐(0) 编辑

关于C#静态构造函数那点事

摘要: 关于C#静态构造函数的几点说明静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 classSimpleClass{//StaticconstructorstaticSimpleClass(){//}} 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。 2、是在创建第一个类... 阅读全文

posted @ 2011-11-27 12:02 _eagle 阅读(3590) 评论(0) 推荐(1) 编辑

2011年11月26日

GetType和typeof的区别 以及一个小实例

摘要: 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的方法, 阅读全文

posted @ 2011-11-26 23:57 _eagle 阅读(11133) 评论(3) 推荐(8) 编辑

2011年11月23日

Silverlight - 用户控件与设计时(Design Time)错误

摘要: 用Blend 或VS 2010的设计视图打开一个用户控件,如果出现错误(最常见的是空引用错误),而debug时程序运行正常,那很可能是由于设计时的一些限制造成控件无法在设计器中正常打开。如何避免呢?通过 System.ComponentModel.DesignerProperties.IsInDesignTool 判断当前状态是否是设计时,在设计时避免构造函数与Loaded事件处理方法中执行那些代码即可,例如:public partial class ProductsView : UserControl{ public ProductsView() { InitializeComponent( 阅读全文

posted @ 2011-11-23 13:27 _eagle 阅读(241) 评论(0) 推荐(0) 编辑

2011年11月10日

把VS2010 For Phone 模板加入VS2010 旗舰版中

摘要: 装了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.. 阅读全文

posted @ 2011-11-10 21:48 _eagle 阅读(1111) 评论(0) 推荐(0) 编辑

2011年11月1日

silverlight 自定义布局容器

摘要: 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 ... 阅读全文

posted @ 2011-11-01 15:03 _eagle 阅读(736) 评论(0) 推荐(0) 编辑

2011年10月12日

自定义事件

摘要: 常常有这样的需求,我们要封装一个控件,这个控件内部做一些操作,然后通知使用这个控件的外界控件,以达到一些目的。可以通过订阅这个控件的事件。http://www.cnblogs.com/BeginnerClassroom/archive/2009/01/11/1373689.html注意:事件委托可以用使用其它任何参数:比如:public delegate void ValueChangeHandler(string Value);http://blog.sina.com.cn/s/blog_5cdc2a610100e5fz.htmlhttp://developer.51cto.com/art/ 阅读全文

posted @ 2011-10-12 23:25 _eagle 阅读(216) 评论(0) 推荐(0) 编辑

2011年9月23日

silverlight鼠标事件获取point

摘要: XAML代码:<UserControl x:Class="SilverlightApplication50.EventMouse" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc= 阅读全文

posted @ 2011-09-23 08:24 _eagle 阅读(388) 评论(0) 推荐(0) 编辑

2011年9月22日

Transform详解,以及UIElement和FrameworkElement的常用属性

摘要: 介绍Silverlight 2.0 其它:RenderTransform - 呈现位置的转换(System.Windows.Media.Transform类型)TranslateTransform - 平移转换RotateTransform - 旋转转换(顺时针)ScaleTransform - 缩放转换SkewTransform - 扭曲转换MatrixTransform - 仿射矩阵变换TransformGroup - 多个 Transform 组成的复合转换RenderTransformOrigin - 位置转换的中心点Clip - 容器的剪辑区域(System.Windows.Medi 阅读全文

posted @ 2011-09-22 14:23 _eagle 阅读(1524) 评论(0) 推荐(0) 编辑

silverlight控件学习笔记二

摘要: TextBlock.xaml<UserControl x:Class="Silverlight20.Control.TextBlock" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel HorizontalAlignment="Left"> <!-- Text - Te 阅读全文

posted @ 2011-09-22 14:20 _eagle 阅读(385) 评论(0) 推荐(0) 编辑