.NET 框架中是否有不适用于 LINQ 的内置扩展方法?
Are there built-in extension methods in the .NET framework that don't apply to LINQ?
出于我正在开发的课程的目的,我正在寻找一些 Microsoft 已经自行实现扩展方法的示例。但由于同学们还不熟悉LINQ,我想找一些其他的例子。
那么,有没有在.NET framework中定义为扩展方法,但不引用LINQ framework或IEnumerable的方法呢?
例如,.net 在 GetCustomAttributes<T>
中使用它们。
参见 here。
是的,这里有很多例子,这里有一些亮点:
- 作为扩展方法实现的字符串上的 AsSpan() 方法。 Here are the docs on it.
- IsNormalized() 和 Normailize() 是另外两种易于使用的字符串扩展方法。 Here are the docs on those.
- 如果您愿意让您的学生了解依赖注入,那么 Startup class 中有很多示例,几乎适用于任何 asp.net 核心项目。
其实有不少。我下载了 4.8 版(2019 年 5 月升级)的 .Net Framework 源代码。要自己这样做,只需单击 reference source website
中的下载
解压缩文件,然后用 Visual Studio 打开解决方案并搜索(使用正则表达式):
Class .*Extensions
它给我返回了 61 次点击,我相信您一定能够为您的课程找到合适的示例。我想最好的是 DoubleExtensions
(see here),因为它很容易理解。
因为你正在做课程作业,所以 ZipFileExtensions 可能是一个很好的 API。人们往往能够全神贯注于 .zip 文件,而这些 API 通常非常易于使用。
出于我正在开发的课程的目的,我正在寻找一些 Microsoft 已经自行实现扩展方法的示例。但由于同学们还不熟悉LINQ,我想找一些其他的例子。
那么,有没有在.NET framework中定义为扩展方法,但不引用LINQ framework或IEnumerable的方法呢?
.net 在 GetCustomAttributes<T>
中使用它们。
参见 here。
是的,这里有很多例子,这里有一些亮点:
- 作为扩展方法实现的字符串上的 AsSpan() 方法。 Here are the docs on it.
- IsNormalized() 和 Normailize() 是另外两种易于使用的字符串扩展方法。 Here are the docs on those.
- 如果您愿意让您的学生了解依赖注入,那么 Startup class 中有很多示例,几乎适用于任何 asp.net 核心项目。
其实有不少。我下载了 4.8 版(2019 年 5 月升级)的 .Net Framework 源代码。要自己这样做,只需单击 reference source website
中的下载解压缩文件,然后用 Visual Studio 打开解决方案并搜索(使用正则表达式):
Class .*Extensions
它给我返回了 61 次点击,我相信您一定能够为您的课程找到合适的示例。我想最好的是 DoubleExtensions
(see here),因为它很容易理解。
因为你正在做课程作业,所以 ZipFileExtensions 可能是一个很好的 API。人们往往能够全神贯注于 .zip 文件,而这些 API 通常非常易于使用。