和往常一样,开篇还是介绍下最近情况了。今天是农历12月24,我们那边今天是过小年。总算是进了年关了,也给大家摆个早年了。不过最近火车成了大问题,能不能顺利回家还是个问题。自己也没啥心情看书了。哎~~还是不能堕落了。而且住的附近无线网用不了了,很久没有写了。书到是看到最后几章了。不过越到后面就越觉得有些复杂了。特别是有些地方以前很少接触用的也少,比如特性 ,枚举,字符的本地化这些。而且目前有好多笔记没写。所以决定用的不多的和很复杂的地方暂时就不去深研了。毕竟是第一轮学习。所以就把实际用的比较多的拿出来写下。其他那些就大概的照本宣科好了。

一 字符

(今天来做个标记,免得说好长时间没写了,哈哈~~)

事件其实也是属于类型设计里的内容,不过因为他比较重要,也比较难理解,我就把他单独拿出来学习。

 

1 .下面是一个我们在程序中最常见的代码

 

private void button1_Click(object sender, System.EventArgs e)
 {
          //按妞被点击后执行的操作;    
 }

他的意思是当你点击一个按钮时,他就会执行这个方法里的代码,产生相应的操作。这个时候我们就可以说‘单击’button1这个事件发生的时候,他会自动去执行这个方法。这看起来很简单。点一个按钮,然后执行代码。这在这种基于驱动的程序中很常见。但有个问题不知道大家有没有想过。

这段代码写在那?一般是写在一个from类里,我点这个按钮属于button类。我实际实在button对象里调用了form对象里的方法。那为什么在点按钮的时候他会执行这个方法呢?

说简单点,就是其实就是在一个对象在执行一个方法时调用其他对象的方法。按事件来说就是一个对象的某个事件被触发时,通知其他对象,其他对象执行相应的一些操作。这里就是button的click事件触发后,通知form对象,执行button1_click()方法。那么当事件触发后是如何通知其他对象的呢?

// button1
// 登记方法到button对象
this.button1.Click += new System.EventHandler(this.button1_Click);

在程序中可以看到button1在设置时有这样一句话,他的基本意思就是把button1_click()方法登记到button1.Click对事件象上,这样当触发click事件时就会调用button1_click()方法。也就达到了通知的目的。其中button1.Click又是一个EventHandler类型,这是一个委托类型!什么是委托类型?

继续阅读

好久没有写BLOG了,BLOG一直有点问题。最近一段时间也有点堕落,书看的不多,上个月底 一直在看关于 类之间的继承,多态 。虚方法的继承,隐藏,重写,方法表,内存结构等。还在CSDN上看了不少帖子。这些东西有空还是会总结一下的。

新年了,希望有新的气象。有好多事都会有大的变化。目标,计划都有了,需要的就是自己不断的坚持,好好努力,按自己的路线走下 去。也祝大家新年快乐把。

———————————————————————————————————————————–

(接上篇)

疑问:基元类型为什么不和Decimal一样提供ToXXX()方法呢?他内部是否实现了这些方法?

解答:通过用Reflector,我看了下他们

 

1. Int32里是类似下面的方法,可以发现实际是调用了Convert.ToInt16里的实现 并且是受保护的方法。内部也没有转换操作符 。
short   IConvertible.ToInt16 (IFormatProvider   provider) 
{ 
        return   Convert.ToInt16(this.m_value); 
} 
2. decimal里面也与这样的受保护的实现方法
short   IConvertible.ToInt16 (IFormatProvider   provider) 
{ 
        return   Convert.ToInt16(this); 
} 

继续阅读