
Visual C#
Visual C#从入门到精通
学习笔记
xhh22900
upgrading
展开
-
visual C#(二十六)在UWP应用中显示和搜索数据
参考书:《 visual C# 从入门到精通》第四部分 用C#构建UMP应用第26章 在WP应用中显示和搜索数据文章目录26.1 实现Model-View-ViewModel模式26.1.1 通过数据绑定显示数据26.1.2 通过数据绑定修改数据26.1.3 为ComboBox控件使用数据绑定26.1.4 创建ViewModel26.1.5 向ViewModel添加命令26.2 用Cortana 搜索数据26.1 实现Model-View-ViewModel模式MVVM模式中,Model提供应用程原创 2020-05-20 17:32:46 · 578 阅读 · 1 评论 -
visual C#(二十五)实现UWP应用的用户界面
参考书:《 visual C# 从入门到精通》第四部分 用C#构建UMP应用第25章 实现UWP应用的用户界面文章目录25.1 UWP应用的特点25.2 使用空白模板构建UWP应用25.2.1 实现可伸缩的用户界面用Grid控件实现表格布局用可视状态管理器调整布局25.2.2 向用户界面应用样式UWP,Univeral Windows Platform,通用Windows平台。UWP应用可以在多种Windows 10 设备上运行,不需要维护单独的代码库。手机、平板和台式机,甚至Xbox也支持UWP原创 2020-05-19 02:01:25 · 3025 阅读 · 1 评论 -
visual C#(二十四)通过异步操作提高响应速度
参考书:《 visual C# 从入门到精通》第四部分 用C#构建UMP应用第 24 章 通过异步操作提高响应速度文章目录24.1 实现异步方法24.1.1 定义异步方法:问题24.1.2 定义异步方法:解决方案24.1.3 定义返回值的异步方法24.1.4 异步方法注意事项24.1.5 异步方法和Windows Runtime API24.2 用PLINQ进行并行数据访问24.2.1 用PLINQ增强遍历集合时的性能24.2.2 取消PLINQ查询24.3 同步对数据的并发访问24.3.1 锁定数据原创 2020-05-17 13:51:30 · 1344 阅读 · 0 评论 -
visual C#(二十三)使用任务提高吞吐量
参考书:《 visual C# 从入门到精通》第四部分 用C#构建UMP应用第23章 使用任务提高吞吐量文章目录23.1 使用并行处理执行多任务处理23.2 用 .NET Framework 实现多任务处理23.2.1 任务、线程和线程池23.2.2 创建、运行和控制任务23.2.3 使用Task类实现并行处理23.2.4 使用Parallel类为任务进行抽象23.2.5 什么时候不要使用Parallel类23.3 取消任务和处理异常23.3.1 协作式取消的原理23.3.2 为Canceled 和F原创 2020-05-15 01:23:40 · 559 阅读 · 0 评论 -
visual C#(二十二)操作符重载
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第22章 操作符重载22.1 理解操作符22.1.1 操作符的限制需要用到关键字operator:struct Hour{ public Hour(int initialValue){ this.value=initialValue; } public static Hour operator +(Hour lhs,Hour rhs){ return new Hou原创 2020-05-14 16:06:08 · 185 阅读 · 0 评论 -
visual C#(二十一)使用查询表达式来查询内存中的数据
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第21章 使用查询表达式来查询内存中的数据文章目录21.1 什么是LINQ21.2 在C#应用程序中使用LINQ21.2.1 选择数据21.2.2 筛选数据21.2.3 排序、分组和聚合数据21.2.4 联结数据21.2.5 使用查询操作符21.2.6 查询Tree<TItem>对象中的数据21.2.7 LINQ和推迟求值21.1 什么是LINQLINQ,Language INtegrated Query,语言原创 2020-05-12 23:39:34 · 532 阅读 · 0 评论 -
visual C#(二十)分离应用程序逻辑并处理事件
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第20章 分离应用程序逻辑并处理事件文章目录20.1 理解委托20.1.1 .NET Framework类库的委托例子20.1.2 自动化工厂的例子20.1.3 不用委托实现工厂控制系统20.1.4 用委托实现工厂控制系统20.2 Lambda 表达式和委托20.3 启用事件通知20.3.1 声明事件20.3.2 订阅事件20..3.3 取消订阅事件20.3.4 引发事件20.4 理解用户界面事件20.1 理解委托委托是对原创 2020-05-12 19:03:47 · 428 阅读 · 0 评论 -
visual C#(十九)枚举集合
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第19章 枚举集合文章目录19.1 枚举集合中的元素19.1.1 手动实现枚举器19.1.2 实现`IEnumerable`接口19.2 用迭代器实现枚举器19.2.1 一个简单的迭代器19.2.2 使用迭代器为Tree<TItem>类定义枚举类19.1 枚举集合中的元素我们前面用foreach语句来方便的遍历集合,实际上foreach语句只能遍历可枚举集合,就是实现了System.Collections.IE原创 2020-05-11 20:09:56 · 393 阅读 · 0 评论 -
visual C#(十八)使用集合
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第18章 使用集合文章目录18.1 什么是集合18.1.1 `List`集合类18.1.2 `LinkedList`集合类18.1.3 `Queue`集合类18.1.4 `Stack`集合类18.1.5 Dictionary<TKey,TValue>集合类18.1.6 SortedList<TKey,TValue>集合类18.1.7 HashSet<T>集合类18.2 使用集合初始化器18.原创 2020-05-11 16:54:06 · 290 阅读 · 0 评论 -
visual C#(十七)泛型概述
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第17章 泛型概述文章目录17.1 Object 问题17.2 泛型解决方案17.2.1 对比泛型类和常规类17.2.2 泛型和约束17.3 创建泛型类17.3.1 二叉树理论17.3.2 使用泛型构造二叉树类17.4 创建泛型方法17.5 可变性和泛型接口17.5.1 协变接口17.5.2 逆变接口17.1 Object 问题可以用object;类型引用任何类型的值或者变量,所有引用类型都自动从object类继承。但实际原创 2020-05-10 23:27:04 · 392 阅读 · 0 评论 -
visual C#(十六)使用索引器
参考书:《 visual C# 从入门到精通》第三部分 用C#定义可扩展类型第16章 使用索引器文章目录16.1 什么是索引器16.1.2 同一个例子改用索引器16.1.3 理解索引器的访问器16.1.4 对比索引器和数组16.2 接口中的索引器16.3 在Windows应用程序中使用索引器16.1 什么是索引器我们通常用int来存储整数值。int内部将值存储为32位,每一位为0或1。C#提供以下操作符来访问和操纵int中单独的二进制位。~(NOT)操作符:执行按位求补<<(左原创 2020-05-10 02:12:43 · 268 阅读 · 0 评论 -
visual C#(十五)实现属性以访问字段
参考书:《 visual C# 从入门到精通》第三部分 用C文章目录15.1 使用方法实现封装15.2 什么是属性15.2.1 使用属性15.2.2 只读属性15.2.3 只写属性15.2.4 属性的可访问性15.3 理解属性的局限性15.4 在接口中声明属性15.5 生成自动属性15.6 用属性初始化对象15.1 使用方法实现封装如下面的例子struct ScreenPosition{ ...; public int GetX(){ return this.x;原创 2020-05-09 20:14:27 · 470 阅读 · 0 评论 -
visual C#(十四)使用垃圾回收和资源管理
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第14章 使用垃圾回收和资源管理文章目录14.1 对象的生存期14.1.1 编写析构器14.1.2 为什么要使用垃圾回收器14.1.3 垃圾回收器的工作原理14.1.4 慎用析构器14.2 资源管理14.2.1 资源释放方法14.2.2 异常安全的资源清理14.2.3 `using`语句和`IDisposable`接口14.2.4 从析构器中调用`Dispose`方法14.3 实现异常安全的资源清理14.1 对象的生存期我们知原创 2020-05-09 16:50:53 · 963 阅读 · 0 评论 -
visual C#(十三)创建接口和定义抽象类
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第13章 创建接口和定义抽象类文章目录13.1 理解接口13.1.11 定义接口13.1.2 实现接口13.1.3 通过接口类引用类13.1.4 使用多个接口13.1.5 显式实现接口13.1.6 接口的限制13.1.7 定义和使用接口13.2 抽象类13.3 密封类13.3.1 密封方法13.3.2 实现并使用抽象类...原创 2020-05-08 02:41:26 · 1874 阅读 · 0 评论 -
visual C#(十二)使用继承
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第12 章 使用继承文章目录12.1 什么是继承12.2 使用继承12.2.1 复习System.Object类12.2.2 调用基类构造器12.2.3 类的赋值12.2.4 声明新方法12.2.5 声明虚方法12.2.6 声明重写方法12.2.7 理解受保护的访问12.3 理解扩展方法12.1 什么是继承程序设计中...原创 2020-05-07 19:08:58 · 323 阅读 · 1 评论 -
visual C#(十一)理解参数数组
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第11章 理解参数数组文章目录11.1 回顾重载11.2 使用数组参数11.2.1 声明参数数组11.2.2 使用`params object[]`11.2.3 使用参数数组10.3 比较参数数组和可选参数11.1 回顾重载重载虽然很好用,但有时还是会不那么方便,当参数数量变化时重载就很难解决了。C#提供一种技术允许...原创 2020-05-07 16:21:43 · 167 阅读 · 0 评论 -
visual C#(十)使用数组
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第10章 使用数组文章目录10.1 声明和创建数组10.1.1 声明数组变量10.1.2 创建数组实例10.1.3 填充和使用数组10.1.4 创建隐式类型的数组10.1.5 访问单独的数组元素10.1.6 遍历数组10.1.7 数组作为方法参数和返回值传递10.1.8 复制数组10.1.9 使用多维数组10.1.10 ...原创 2020-05-07 02:28:21 · 613 阅读 · 0 评论 -
visual C#(⑨)使用枚举和结构创建值类型
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第9章 使用枚举和结构创建值类型文章目录9.1 使用枚举9.1.1 声明枚举9.1.2 使用枚举9.1.3 选择枚举字面值9.1.4 选择枚举的基础类型9.2 使用结构9.2.1 声明结构9.2.2 理解结构和类的区别9.2.3 声明结构变量9.2.4 理解结构的初始化9.2.5 复制结构变量9.1 使用枚举9.1....原创 2020-05-06 18:19:35 · 439 阅读 · 0 评论 -
visual C#(八)理解值和引用
参考书:《 visual C# 从入门到精通》第二部分 理解C#对象模型第8章 理解值和引用文章目录8.1 复制值类型的变量和类8.2 理解`null`值和可空类型8.2.1 使用可空类型8.2.2 理解可空类型的属性8.3 使用`ref`和`out`参数8.3.1 创建`ref`参数8.3.2 创建`out`参数8.4 计算机内存的组方式8.5 System.Object类8.6 装箱8...原创 2020-05-06 16:15:51 · 194 阅读 · 0 评论 -
visual C#(七) 创建并管理类和对象
参考书:《 visual C# 从入门到精通》第二部分 理解C文章目录7.1 理解分类7.2 封装的目的7.3 定义并使用类7.4 控制可访问性7.4.1 使用构造器7.4.2 重载构造器7.5 理解静态方法和数据7.5.1 创建共享字段7.5.2 使用`const` 关键字创建静态字段7.5.3 理解静态类7.5.4 静态`using`语句7.5.5 匿名类7.1 理解分类设计类的过程就是...原创 2020-05-05 19:08:24 · 778 阅读 · 0 评论 -
visual C#(六)管理错误和异常
参考书:《 visual C# 从入门到精通》第一部分 Visual C# 和Visual Studio 2015概述第6章 管理错误和异常文章目录6.1 处理错误6.2 尝试执行代码和捕捉异常6.2.1 未处理的异常6.2.2 使用多个`catch`处理程序6.2.3 捕捉多个异常6.2.4 传播异常6.3 使用`checked`和`unchecked`整数运算6.3.1 编写`chec...原创 2020-05-05 00:54:03 · 296 阅读 · 0 评论 -
visual C#(五)使用复合赋值和循环语句
参考书:《 visual C# 从入门到精通》第一部分 Visual C# 和Visual Studio 2015概述第5章 使用复合赋值和循环语句文章目录5.1 使用复合赋值操作符5.2 使用while 语句5.3 编写for语句5.4 编写do语句5.1 使用复合赋值操作符*=/=%=+=-=如 answer+=42,等效于answer=answer+42。5.2 使用...原创 2020-05-04 17:09:16 · 978 阅读 · 0 评论 -
visual C#(四)使用判断语句
参考书:《 visual C# 从入门到精通》第一部分 Visual C# 和Visual Studio 2015概述第4章 使用判断语句文章目录4.1 声明布尔变量4.2 使用布尔操作符4.2.1 理解相等和关系操作符4.2.2 理解条件逻辑操作符4.2.3 短路求值4.2.4 操作符的优先级和结合性总结4.3 使用if语句做出判断4.3.1 理解if 语句的语法4.3.2 使用代码块分...原创 2020-05-03 22:48:33 · 681 阅读 · 0 评论 -
visual C#(三)方法和作用域
参考书:《 visual C# 从入门到精通》第一部分 Visual C# 和Visual Studio 2015概述第3章 方法和作用域文章目录3.1 创建方法3.1.2从方法返回数据3.1.3 使用表达式主体方法3.1.4 调用方法3.2 使用作用域3.2.1 定义局部变量3.2.2 定义类作用域3.2.3 重载方法3.3 编写方法3.4 使用可选参数和具体参数3.4.1 定义可选参数...原创 2020-05-03 18:07:38 · 296 阅读 · 0 评论 -
visual C#(二)变量、操作符和表达式
参考书:《 visual C# 从入门到精通》文章目录2.1 理解语句2.2 使用标识符2.3 使用变量2.3.1 命名变量2.3.2 声明变量2.4 使用基元数据类型2.4.1 未赋值的局部变量2.4.2 显示基元数据类型的值2.5 使用算术操作符2.5.1 操作符和类型2.5.2 深入了解算术操作符2.5.3 控制优先级2.5.4 使用结合性对表达式进行求值2.5.5 结合性和赋值操作符2....原创 2020-05-03 16:16:02 · 326 阅读 · 0 评论 -
visual C#(一)带你进入C#编程世界
参考书:《 visual C# 从入门到精通》< 第一部分 Visual C# 和Visual Studio 2015概述>文章目录1.1 开始在Visual Studio 2015环境中编程1.2 写第一个程序1.3 使用命名空间1.4创建图形应用程序1.4.1 探索通用Windows平台应用程序1.4.2 向图形应用程序添加代码1.1 开始在Visual Studio 20...原创 2020-05-03 00:55:18 · 1226 阅读 · 0 评论