|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/advanced-topics-csharp/
课程评论:没有评论
**课程名称:C# 高级主题** **课程概述:** 本课程深入探讨 C# 的高级特性和应用,通过一系列引人入胜的实际案例,展示 C# 如何解决特定问题。课程内容 100% 实践导向,聚焦 C# 在构建解决方案中的实际应用。 **核心主题:** * **数值处理 (Numerics):** 深入了解 .NET 中数值类型的特性,重点关注 SIMD 数据类型和操作,以优化数值计算的性能。 * **反射 (Reflection):** 学习如何利用反射机制检查程序集和类型,创建新类型并调用其成员,并深入探讨反射在处理特性的实际应用。 * **内存管理 (Memory Management):** 讨论 C# 中用于高性能计算的最新功能,如值类型的按引用传递、`ref struct` 和 `Span`,以优化内存使用和访问。 * **扩展方法 (Extension Methods):** 探索看似简单的扩展方法背后隐藏的高级用法,以及它们如何扩展现有类型的 functionality。 **其他高级主题:** * **利用 `IDisposable`:** 学习如何巧妙地利用 `IDisposable` 和 `using` 机制,动态定义操作的开始和结束调用,适用于性能度量等场景。 * **续接口子风格 (Continuation Passing Style):** 演示如何通过顺序调用方法并使用自定义返回类型来指示操作结果,从而定义复杂的算法。 * **局部控制反转 (Local Inversion of Control):** 展示控制反转有时可以在局部发生,并通过扩展方法对不同数据类型进行控制反转,提供实用的功能。 * **超越 `Maybe` Monad:** 尽管 C# 引入了 `?.` 操作符进行空值检查,但基于扩展方法的经典 Monad 实现仍然具有相关性,因为它还能处理其他场景。 * **助记符 (Mnemonics):** 探索一种创建大量相似代码模板的有趣方式,并能快速扩展为最需要的代码结构。 **先修要求:** * 扎实的 C# 基础知识。 * 理解面向对象编程 (OOP)。 * 具备编写实际 C# 应用程序的经验。 **课程组织:** * 100% 实操。 * 演示环境:Visual Studio 或 Kinetica 渲染引擎。 * 演示代码以单 .CS 文件形式呈现。 * 充分利用 IDE 功能。 * 适度使用第三方软件包。 **温馨提示:** 尽情享受学习过程!
This course presents a collection of interesting/unusual case studies where C# is used to solve a particular problem. This course is 100% practical, and demonstrates mainly the practical applications of C# in building solutions to common problems.The main themes covered in this course are:Numerics - the specifics of how to work with numeric types in.NET, with a focus on SIMD data types and operations.Reflection - how to operate reflection mechanisms to investigate assemblies and types, how to create types and invoke their members. Also a look at the practical use of reflection for working with attributes.Memory Management - a discussion of latest C# features for high performance computation, such as the passing of value types by reference, ref structs and Span.Extension Methods - a seemingly simple mechanism has plenty of advanced uses.In addition, this course comes with a section dedicated to assorted topics that also showcase advanced uses of C#. These topics include:Exploiting IDisposable - shows how you can abuse the IDisposable/using mechanism in order to dynamically define operations as pairs of start/end calls. Useful for things like simple performance measurement.Continuation Passing Style - demonstrates how you can define complex algorithms in terms of sequentially invoked methods with customized return types indicating the result of the operation.Local Inversion of Control shows that sometimes inversion of control happens at a local scale. Here we use extension methods to invert control on a bunch of different data types, providing useful functionality.Beyond the Maybe Monad - even though C# introduced the ?. operator in order to chain null checks together, the classic monad implementation, based on extension methods, is still relevant, as it can also handle other scenarios.Mnemonics - not so much a C# language feature but rather an interesting way of defining huge sets of similar code templates that can be expanded quickly to the code constructs you need the most.Course Pre-RequisitesGood understanding of C#Understanding of object-oriented programming (OOP)Experience writing real-world C# applicationsCourse Organization100% hands-onDemonstrated either in Visual Studio or using the Kinetica rendering engineDemos are single.CS filesHeavy use of IDE featuresAd-hoc use of 3rd-party packagesEnjoy!