07 2017 档案

自定义类型的强制转换
摘要:C#支持两种类型转换方式:隐式转换和显示转换。 1.隐式转换:只要保证值不会发生任何变化,类型转换就可以自动(隐式)进行。 隐式转换不能出现字节丢失,只能从较小数据类型转换为较大数据类型。 自定义类型的转换:方法是把类型强制转换运算符定义为相关类的一个成员运算符(有继承关系的类不能这么做)。 阅读全文

posted @ 2017-07-23 22:51 萨尔

泛型
摘要:泛型的优点 1.性能 2.类型安全 泛型类List<T>中,泛型类型 T 定义了允许使用的类型。 3.二进制代码的重用 泛型类定义一次,可以使用不同的类型实例化。 4.代码的扩展 值类型使用泛型类,编译器会为每个值类型生成一个新类,因为值类型对内存大小的要求不同。 引用类型使用泛型类,共享一个本地类 阅读全文

posted @ 2017-07-23 15:47 萨尔 阅读(141) 评论(0) 推荐(0)

接口
摘要:/* 1.接口只能包含方法、属性、索引器、事件的声明。 2.接口方法的声明就像抽象方法一样,不提供实现。 3.接口不能实例化。 4.接口不能有构造函数。 5.接口不能有字段。 6.接口不能包含运算符重载。 7.接口不允许声明关于成员的修饰符,包括可访问性修饰符、抽象、虚拟等其它所有修饰符。 8.实现接口的类,必须给出所有接口成员的实现。 9.接口的实现中不能有静态的东西。 10.接口函数可以实现... 阅读全文

posted @ 2017-07-23 14:37 萨尔 阅读(136) 评论(0) 推荐(0)

隐藏方法不能实现多态性
摘要:/* 隐藏方法不能实现多态性 */ class Base{} class Derived : Base{} //baseObj.Func()方法调用的是基类版本 Base baseObj = new Derived(); baseObj.Func(); 阅读全文

posted @ 2017-07-23 03:55 萨尔 阅读(245) 评论(0) 推荐(0)

结构
摘要:【结构】 1.结构和类的区别是它们在内存中的存储方式、访问方式(类是存储在堆上的引用类型,而结构是存储在栈上的值类型)和它们的一些特征(如结构不支持继承)。 2.结构和类在语法上的区别是,结构使用 struct 关键字替代 class 来声明结构。 3.结构总是继承于 System.ValueTyp 阅读全文

posted @ 2017-07-23 03:14 萨尔 阅读(121) 评论(0) 推荐(0)

静态
摘要:静态类 静态类不能实例化 静态类不能包含实例成员 静态类不能有实例构造函数 静态类默认继承自System.Object根类,不能显式指定任何其他基类 静态类是密封的,不能被继承 静态函数 静态函数可以被重载 静态函数不能被重写,因为它们属于类,不属于任何实例,而虚函数的概念只对实例成员有意义 静态函 阅读全文

posted @ 2017-07-23 03:13 萨尔 阅读(155) 评论(0) 推荐(0)

类的修饰符
摘要:静态类: 静态方法:属于类本身,不属于类的具体实例。可以被继承,适用于隐藏方法。 虚函数提供了方法的实现,并指示可以(不必须)在子类中重写。 虚函数的概念只针对类的实例成员函数有意义,静态函数不行。 抽象类:不能实例化 抽象函数:不提供函数的具体实现,必须在子类中重写。 抽象函数本身也是虚拟的,尽管 阅读全文

posted @ 2017-07-22 16:39 萨尔 阅读(283) 评论(0) 推荐(0)

虚方法、隐藏方法、抽象方法、密封方法、派生类中访问基类成员
摘要:1.抽象类 1.抽象类不能实例化。 2.抽象类可以包含非抽象成员。 3.类中一旦包含了抽象成员,类就必须使用 abstract 关键字显示的声明为抽象类。 2.密封类 1.密封类不能被继承。 3.虚方法 1.把一个基类函数声明为 virtual ,就可以在任何派生类中重写该函数。 2.派生类在重写方 阅读全文

posted @ 2017-07-22 16:39 萨尔 阅读(201) 评论(0) 推荐(0)

扩展方法
摘要:有许多扩展类的方法: 1.如果有类的源代码,继承就是给对象添加新功能的好方法。 2.如果没有类的源代码,可以使用扩展方法。 扩展方法: 1.扩展方法写着静态类中。 2.扩展方法也是静态的。但是调用时,和实例方法一样,使用对象调用。 3.如果扩展方法的名字和类中方法的签名相同,则优先类中原来的方法。 阅读全文

posted @ 2017-07-22 14:23 萨尔 阅读(137) 评论(0) 推荐(0)

类工厂模式(TDB)
摘要:rt 阅读全文

posted @ 2017-07-21 23:47 萨尔 阅读(144) 评论(0) 推荐(0)

单利模式(TBD)
摘要:RT 阅读全文

posted @ 2017-07-21 23:47 萨尔 阅读(183) 评论(0) 推荐(0)

构造函数
摘要:1.没有提供构造函数,系统会提供一个无参构造函数。提供了构造函数,系统就不会踢狗默认构造函数。 2.私有构造函数 仅有私有构造函数,类就不能在外部被实例化。它下下面两种情况下是有用的: 1.类仅当作某些静态成员或静态属性的容器,因此它永远不需要实例化。这样就像静态类一样。 2.希望类仅能通过调用某个 阅读全文

posted @ 2017-07-21 21:28 萨尔 阅读(160) 评论(0) 推荐(0)

装箱与拆箱(TDB)
摘要:装箱:把值类型转换为引用类型 拆箱:把引用类型转换为值类型 只能对之前装箱的变量进行拆箱。需要强制转换。 阅读全文

posted @ 2017-07-21 20:50 萨尔 阅读(188) 评论(0) 推荐(0)

主线程、UI线程(TBD)
摘要:rt 阅读全文

posted @ 2017-07-21 11:32 萨尔 阅读(130) 评论(0) 推荐(0)

比较对象的相对性
摘要:考虑在处理类和结构的实例时,“相等”意味着什么? 1.比较引用类型的相等性 有四种不同的方法来比较对象的想等性 比较值类型的相等性 比较引用类型的四种方法,也可以用来比较值类型,但有部分区别 比较 Equals()、ReferenceEquals()、== 阅读全文

posted @ 2017-07-21 11:26 萨尔 阅读(161) 评论(0) 推荐(0)

深拷贝与浅拷贝(TBD)
摘要:待续 阅读全文

posted @ 2017-07-21 11:25 萨尔 阅读(130) 评论(0) 推荐(0)

创建UI的线程才能访问UI,那么怎样才算访问UI呢
摘要:只有创建UI元素的线程(主线程又叫UI线程)才能访问UI元素。在UI线程中工作,不会有这个问题。 在后台线程中,如果直接访问UI元素,会抛出 “调用线程无法访问此对象,因为另一个线程拥有该对象” 异常。 在后台线程中,集合控件绑定在数据集上,增加或减少数据集会引起UI重绘,会抛出 “该类型的 Col 阅读全文

posted @ 2017-07-21 10:17 萨尔 阅读(282) 评论(0) 推荐(0)

多层级的数据绑定效果
摘要:当绑定到 A . B 时,A、B就成了一个绑定链路,链路上前面断了,后面都会失败。 当绑定到 A . B 时,修改 A、B的值 阅读全文

posted @ 2017-07-21 09:38 萨尔 阅读(119) 评论(0) 推荐(0)

导航