随笔分类 -  其它 / 面向对象

摘要:namespace test{ #region 使用反射实现的抽象工厂 internal static class ReflectionFactory { private static String _windowType; private static String _styleType; static ReflectionFactory() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"f:/test.xml"); XmlNode xmlNode = xmlDoc.ChildNodes[0]; _wind 阅读全文
posted @ 2011-06-10 15:59 张占岭 阅读(711) 评论(0) 推荐(0) 编辑
摘要:返回目录今天再说说委托在.net中的发展吧,从1.1,2.0到3.0是有不同的,主要表现在定义,调用上,而使用上还是一样的.在 1.0 的C# 版本中,声明委托的唯一方法是使用命名方法。 C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。 不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。 有一种情况下,匿名方法提供了 Lambda 表达式中所没有的功能。 您可使用匿名方法来忽略参数列表。 这意味着匿名方法可转换为具有各种签名的委托。 这对于 Lambda 表达式来说是不可能的。下面实例中,我叫一个 阅读全文
posted @ 2011-06-09 15:01 张占岭 阅读(456) 评论(0) 推荐(0) 编辑
摘要:返回目录MSDN是这样定义委托的:委托是一种定义方法签名的类型。 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 您可以通过委托实例调用方法。下面这个委托及事件主要完成显示按钮名称和值的功能 1 /// 2 3 /// 自定义委托 4 5 /// 6 7 class SelfDelegate 8 9 {10 11 /// 12 13 /// 显示工具控件信息14 15 /// 16 17 /// 18 19 internal delegate void ... 阅读全文
posted @ 2011-06-09 14:16 张占岭 阅读(624) 评论(0) 推荐(0) 编辑
摘要:本类继承了IEnumerable接口这后,支持了简单的遍历,方法将内部的消息输出,提供了两种索引器对它进行读取,数值为索引的和字符为索引的.namespace Entity.Commons{ /// <summary> /// 通用消息序列类 /// </summary> public class VMessage : IEnumerable<string> { /// <summary> /// 是否完成 /// </summary> public bool IsComplete { get; set; } /// <summ 阅读全文
posted @ 2011-05-31 16:44 张占岭 阅读(468) 评论(2) 推荐(0) 编辑
摘要:今天的主角是ref和out这两个参数!Ref和out它们是方法中的参数修饰符,有什么作用呢,其实可以这样理解,它们加上参数后会使用地址进行传递,说的明白点就是当定义变量a后,把它再作为ref或out参数进行传递到子方法,然后它的计算结果还会返回到这个变量之中.#region ref and out reference public class RefOrOut { public void Ref(ref int a) { a = a + 1; } public void Out(out int b) { b = 0; b = b + 1; } }#endregion调用代码:RefOrOut 阅读全文
posted @ 2011-05-26 15:29 张占岭 阅读(514) 评论(0) 推荐(0) 编辑
摘要:接口与抽象类这两个家伙是被人们说的最多的东西了,在概念上我不想再多说了,我只是想把它们俩个在项目的应用上简单来说两句.接口,规定了一些必须被实现的行为,即只要是继承了接口,那么接口里的所有方法你都要继承,当然,如果有些方法对于你没有任何实现的价值,你也可以不去实现它,你抛一个这样的异常出来: /// <summary> /// 人类的行为 /// </summary> public interface PeopleEvent { /// <summary> /// 走路 /// </summary> void Walk(); /// <su 阅读全文
posted @ 2011-05-25 17:47 张占岭 阅读(366) 评论(0) 推荐(0) 编辑
摘要:一,人类的起源,及人类的爬,走,跑是怎么炼成的.1 类和结构,继承和方法复写及扩展方法及部分类面向对象最重要的元素之一,它是对外部世界的抽象,我们来看一个最标准的类: /// <summary> /// 一个人 /// </summary> public class People { /// <summary> /// 默认构造函数,建议要有一个 /// </summary> public People() { } /// <summary> /// 只初始化人的姓名 /// </summary> /// <para 阅读全文
posted @ 2011-05-24 17:18 张占岭 阅读(535) 评论(0) 推荐(0) 编辑
摘要:1: static string ReturnInfoByEnum(OperatorResult enums) 2: { 3: string res = null; 4: switch (enums) 5: { 6: case OperatorResult.Finish: 7: res = "操作成功"; 8: break; 9: case OperatorResult.Fail:10: res = "操作失败";11: break;12: default:13: break;14: }15: return res;16: }1: #region 通过枚 阅读全文
posted @ 2011-05-23 17:23 张占岭 阅读(432) 评论(1) 推荐(0) 编辑
摘要:namespace Entity { /// <summary> /// 用户登录消息 /// </summary> public class UserLoginMessage : IEntity { List<string> message = new List<string>(); /// <summary> /// 列表 /// </summary> public List<string> List { get { return this.message; } } public IDataEntity E 阅读全文
posted @ 2011-05-19 16:48 张占岭 阅读(708) 评论(0) 推荐(0) 编辑
摘要:/// <summary> /// 文件上传的模块 /// </summary> public enum FileModelType { /// <summary> /// 头像 /// </summary> User, /// <summary> /// 产品图像 /// </summary> Product, /// <summary> /// 店铺banner /// </summary> ShopBanner, } /// <summary> /// 上传警告 /// </ 阅读全文
posted @ 2011-05-19 16:40 张占岭 阅读(643) 评论(2) 推荐(0) 编辑
摘要:首先,类和结构都是用来创建对象的,都可以包含字段和方法,都需要用new实例化。 类中可以初始化非常量字段值,但是结构中不可以初始化非常量字段值。 结构是值类型,使用结构可以提高性能,类是引用类型。 结构不支持继承 阅读全文
posted @ 2011-05-19 16:39 张占岭 阅读(400) 评论(1) 推荐(0) 编辑
摘要:从一个简单的程序中你能看到什么?(面向对象的真帝) 阅读全文
posted @ 2011-05-19 16:37 张占岭 阅读(424) 评论(1) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2011-05-19 16:34 张占岭 阅读(487) 评论(0) 推荐(0) 编辑
摘要:静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数class Program { static void Main(string[] args) { static_construct sc = new static_construct(); //这里它执行了普通构造方法和静态构造方法 static_construct sc2 = new static_construct(); //这里静态构造方法就不会被执行了,它只在第一个类实例时被执行 Console.WriteLine(static_construct.A) 阅读全文
posted @ 2011-05-18 14:22 张占岭 阅读(417) 评论(0) 推荐(0) 编辑
摘要:// 摘要: // 支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务。这是 .NET Framework 中所有类的最终基类;它是类型层次结构的根。 [Serializable] [ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDual)] public class Object { // 摘要: // 初始化 System.Object 类的新实例。 [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] pub 阅读全文
posted @ 2011-05-03 16:44 张占岭 阅读(895) 评论(0) 推荐(0) 编辑
摘要:virtual { 有方法体 }abstract {不能有方法体}C#的方法引入了virtual、override、sealed、abstract四种修饰符来提供不同的继承需求。类的虚方法是可以在该类的继承C#的方法引入了virtual、override、sealed、abstract四种修饰符来提供不同的继承需求。类的虚方法是可以在该类的继承类中改变其实现的方法,当然这种改变仅限于方法体的改变,而非方法头(方法声明)的改变。被子类改变的虚方法必须在方法头加上override来表示。当一个虚方法被调用时,该类的实例——亦即对象的运行时类型(run-time type)来决定哪个方法体被调用。看 阅读全文
posted @ 2010-03-17 15:22 张占岭 阅读(740) 评论(0) 推荐(0) 编辑
摘要:enum,就是枚举类型,它是struct,int,single,double一样,都属于值类型,从ValueType类型中派生,存储在栈中。它在被创建时,不需要分配内在空间,所以对程序的性能是有好处的。为啥要引入enum呢?一个原因,就是让程序更加安全,添加程序的可读性,提高开发的效率。啥时用呢?当... 阅读全文
posted @ 2010-03-17 14:37 张占岭 阅读(6137) 评论(1) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { zzl z=new zzl(); Console.WriteLine("zzl class a={0}",z.a()); zzl2 z2=new zzl2(); Console.WriteLine("zzl2 class a={0}" 阅读全文
posted @ 2010-03-17 09:51 张占岭 阅读(1323) 评论(0) 推荐(0) 编辑