随笔分类 -  C#

摘要://列标题居中 dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //单元格内容居中 foreach (DataGridViewColumn item 阅读全文
posted @ 2017-08-29 13:01 黄星宇 阅读(14156) 评论(1) 推荐(4)
摘要:虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢?1. 虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。如://抽象方法public abstract class Animal{ public abstract void Sleep(); public abstract void Eat();}//虚方法public class Animal{ public virtual void Sleep(){} public virtual void Eat(){}}2. 抽象方法只能在抽象类中声明,虚方法不是。其实如果类包含抽象方 阅读全文
posted @ 2012-12-07 11:28 黄星宇 阅读(206) 评论(0) 推荐(0)
摘要:我们都知道,C#中有“接口”这个概念,所谓的“接口”就是定义一套标准,然后由实现类来具体实现其中的方法,所以说“接口,是一组类的抽象”。同样道理,我们可以将“委托”理解为“方法的抽象”,也就是说定义一个方法的模板,至于这个方法具体是怎么样的,就由方法自己去实现。我们知道接口的最大好处就是可以实现多态,同理,“委托”是可以实现方法的多态,当我们想调用某个具体方法的时候,我们不直接调用这个方法,而是去调用这个委托。当然,我们必须在具体方法和委托之间建立某种关联。定义和使用委托分三个步骤:1、委托声明。2、委托实例化。3、委托调用。一、定义委托定义委托的语法如下:<访问修饰符> dele 阅读全文
posted @ 2012-12-06 14:35 黄星宇 阅读(268) 评论(0) 推荐(0)
摘要:1.将构造函数声明为私有(private)2.利用虚函数,虚函数通常用在继承中 阅读全文
posted @ 2012-11-16 09:58 黄星宇 阅读(318) 评论(0) 推荐(0)
摘要:简单答案:1.父类:public virtual string ToString(){return "a";}子类:public override string ToString(){return "b";}2.同一类中或父子关系类中皆可:public string ToString(){return "a";}public string ToString(int id){return id.ToString();}override是用于重写基类的虚方法,这样在派生类中提供一个新的方法重载是提供了一种机制, 相同函数名通过不同的返回值 阅读全文
posted @ 2012-11-16 09:49 黄星宇 阅读(556) 评论(0) 推荐(0)
摘要:区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。区别四,在抽象类中,新增一个方法的话,继承类中可 阅读全文
posted @ 2012-11-16 09:33 黄星宇 阅读(221) 评论(0) 推荐(0)
摘要:哈希表描述在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.哈希表操作在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);在哈希表中去除某个key/value键值对:HashtableObject.Remove(k 阅读全文
posted @ 2012-11-10 16:28 黄星宇 阅读(199) 评论(0) 推荐(0)
摘要://验证Email地址 bool IsValidEmail(string strIn) { return Regex.IsMatch(strIn, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$"); }// 验证输入汉字 public bool IsChinese(string str_chinese){ return System.Text.RegularExpressions.Regex.IsMatch(str_ 阅读全文
posted @ 2012-11-10 16:17 黄星宇 阅读(210) 评论(0) 推荐(0)