本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结。
总共分三个部分:
基础篇主要争对C#初学者,巩固C#常用知识点;
中级篇主要争对WPF布局与美化,在减轻代码量的情况做出漂亮的应用;
终极篇为框架应用实战,包含MVVM框架Prism,ORM框架EntityFramework Core,开源数据库Postgresql。
目录
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 基础篇
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 中级篇
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 终极篇(待续)
前言
此篇为C#常用知识点的实例说明,如果你是多年C#开发者可以跳过此篇或者只关注最后的新特性。
1、OOP之源 类与实例
一切事物皆对象。
类像产品模版,用它可以生产很多产品(简称实例对象)。
类:具有相同属性和行为的对象的抽象集合。实例对象:具备一组可识别的特性与行为的实体。
举个例子:张三、李四。
幻化出类如下:属性为名字,实例就是张三、李四。
public class Person { public string Name { get; set; } public Person(string name) { Name = name; } } 张三=new Person("张三") 李四=new Person("李四")
类与属性的修饰符中需要特别关注如下三个:
sealed:密封效果
- 修饰类时,类将不可以作为基类继承。
- 修饰属性与行为时,属性与行为在继承类中无法Override与New。
sealed class SealedClass { public int x; public int y; } // error class SealedTest2:SealedClass class SealedTest2 { static void Main() { var sc = new SealedClass(); sc.x = 110; sc.y = 150; Console.WriteLine($"x = {sc.x}, y = {sc.y}"); } } // Output: x = 110, y = 150 //------------------ class X { protected virtual void F() { Console.WriteLine("X.F"); } protected virtual void F2() { Console.WriteLine("X.F2"); } } class Y : X { sealed protected override void F() { Console.WriteLine("Y.F"); } protected override void F2() { Console.WriteLine("Y.F2"); } } class Z : Y { // Attempting to override F causes compiler error CS0239. // protected override void F() { Console.WriteLine("Z.F"); } // Overriding F2 is allowed. protected override void F2() { Console.WriteLine("Z.F2"); } }