2009年5月22日
    
 
        
        
摘要:        
可能有很多人感觉ListView默认的列头的背景太单调,缺乏个性,想变的列头的背景色!实际上可以使用ListViewDrawColumnHeader事件自己画背景色,注意仅当 OwnerDraw 属性设置为 true  且 View  属性设置为 View. Details  时才引发此事件!不多说了,大家看代码,过程很简单: private void listView1_DrawColumnHe...    
阅读全文
 
        
            posted @ 2009-05-22 09:21
周雪峰
阅读(3046)
推荐(0)
        
 
		
    
        
            
        
         
        2009年5月16日
    
 
        
        
摘要:        
获取中文字符串的Unicode值的方法实际上比较简单,中文字符最多占两个字节,知道了这个就好办了,只要用GetBytes方法取出字节序列,分两个字节分别处理就可以了!public string CharacterToCoding(string input){ string coding = ""; for (int i = 0; i<character.Length; i++ ) { byt...    
阅读全文
 
        
            posted @ 2009-05-16 19:21
周雪峰
阅读(1214)
推荐(0)
        
 
		
    
        
            
        
         
        2009年5月13日
    
 
        
        
摘要:        
实际上在C#中实现繁体和简体的相互转换还是比较容易的,一般有三种方法来实现,我这里总结一下:1,可以利用VB.NET中的StrConv方法来实现,由于C#中没有提供这样的方法,只好借用VB.NET里的方法了: 需要先添加对Microsoft Visual Basic.net runtime.dll程序集的引用  如果这样来实现转换:  //繁体转简体 MessageBox.Show(Microso...    
阅读全文
 
        
            posted @ 2009-05-13 17:47
周雪峰
阅读(2149)
推荐(0)
        
 
		
    
        
            
        
         
        2009年2月22日
    
 
        
        
摘要:        
大家都知道用lock关键字指定的锁定对象必须是引用类型,如果我们这样写: class Program { static void Main(string[] args) { B b = new B(); lock (b) //error { } ...    
阅读全文
 
        
            posted @ 2009-02-22 20:38
周雪峰
阅读(1685)
推荐(0)
        
 
		
    
        
            
        
         
        2009年2月21日
    
 
        
        
摘要:        
C#编译器是否会为值类型生成默认的构造函数呢? 答案是否定的,C#编译器并不会为值生成默认的构造函数的,这样设计一方面是基于性能方面的考虑,另外一个原因是值类型可以被隐式的创建!这一点可以通过ILDasm工具开验证,值类型确实没有生成默认的构造函数,看下面的代码: class Program { static void Main(string[] args) ...    
阅读全文
 
        
            posted @ 2009-02-21 17:06
周雪峰
阅读(2114)
推荐(0)
        
 
		
    
        
            
        
         
        2009年2月20日
    
 
        
        
摘要:        
大家都知道,抽象类是不可以实例化的,那么在抽象类中是否可以有构造函数呢? 很多初学者都有类似的疑问! 答案是肯定的,而且如果我们自己没有定义的话,编译器还会为我们生成一个默认的构造函数的,看这段代码: public abstract class MyAbstractClass { } 我们自己并没有自己定义构造函数,我们用ILDasm工具来看看生成的IL代码: .m...    
阅读全文
 
        
            posted @ 2009-02-20 14:59
周雪峰
阅读(5966)
推荐(1)
        
 
		
    
        
            
        
         
        2009年2月19日
    
 
        
        
摘要:        
问题起源于下面这段有问题的代码: class Program { static void Main(string[] args) { Distance a = new Distance(5.3); Distance b = a++; Console.WriteLine("b.Mea...    
阅读全文
 
        
            posted @ 2009-02-19 13:43
周雪峰
阅读(1771)
推荐(0)
        
 
		
    
        
            
        
         
        2009年2月18日
    
 
        
        
摘要:        
大家都知道,只有在定义事件的类中才能触发事件。 今天看到一个资料上说就是在定义事件的类的嵌套类中也不能触发事件!为了搞清楚原因,我进行了如下测试: class Program { static void Main(string[] args) { MyClass.Test t = new MyClass.Test(); ...    
阅读全文
 
        
            posted @ 2009-02-18 15:01
周雪峰
阅读(1423)
推荐(0)
        
            
        
        
摘要:        
大家都知道,一个类的私有成员只能在他的内部访问! 但是不知道大家注意到没有,实际上在C#中一个类的实例是可以访问同一个类的另外一个实例的私有成员的。 请看这段简单的代码 public class MyClass { private int i = 0; public void Function() { ...    
阅读全文
 
        
            posted @ 2009-02-18 14:22
周雪峰
阅读(2744)
推荐(2)
        
 
		
    
        
            
        
         
        2009年2月17日
    
 
        
        
摘要:        
可能很多人都没有注意到,C#中对byte类型的处理还是很特殊的。 下面我用几行简单的代码来说明问题 byte x=1; byte y=2; byte z=x+y; //error:无法将int类型转换为byte类型 可能很多人会认为这段代码没有问题,实际上第三行会产生编译错误:无法将int类型转换为byte类型! 这是为什么呢?因为C#编译器会认为byte类型和byte类型运算的结果是in...    
阅读全文
 
        
            posted @ 2009-02-17 14:24
周雪峰
阅读(4510)
推荐(2)