SIEDA.Monadic:在C#中实现几种功能Monadic类型,从而实现更好的API和合同设计

时间:2024-04-20 11:24:02
【文件属性】:

文件名称:SIEDA.Monadic:在C#中实现几种功能Monadic类型,从而实现更好的API和合同设计

文件大小:86KB

文件格式:ZIP

更新时间:2024-04-20 11:24:02

C#

西埃达·莫纳迪奇 实现几种功能,以实现简洁的API和方法设计。 我在哪里可以下载到它? 您可以在找到一个NuGet软件包,其中包含适用于不同框架的二进制文件。 没有特殊的依赖关系。 这个是来做什么的? 考虑您的代码合同,例如操作可能失败或可能不存在所需值的事实。 在传统的C#中,这些协定是隐式的,例如通过可能抛出的异常(立即中止当前执行路径)或假定具有该语义的空值来实现。 简而言之,您的程序员必须始终意识到并警惕这些隐含商定的合同。 在这种情况下,使用null尤其有问题,因为这会使其语义超载! 现在为null表示尚未初始化和edge / exception-case 。 通过该库中的类,您可以利用C#的类型系统来强制执行此类合同的基本性质,这意味着您必须等到程序员确保自己正在处理以下事实后,才能进行代码编译:操作可能会失败(以及在这种情况下的操作)。 TLDR; 这个是来做什么的?


【文件预览】:
SIEDA.Monadic-master
----.gitignore(79B)
----Lib()
--------Monadic.csproj(4KB)
--------EValidation.cs(5KB)
--------exceptions()
--------Maybe.cs(13KB)
--------FlattenExtensions.cs(688B)
--------Validation.cs(5KB)
--------EOption.cs(19KB)
--------EFailable.cs(14KB)
--------Option.cs(19KB)
--------Failable.cs(15KB)
----LICENSE(1KB)
----Lib.sln(2KB)
----BUILD_RELEASE.ps1(306B)
----.github()
--------workflows()
----README.md(7KB)
----logo.png(15KB)
----Tests()
--------FailableTest.cs(19KB)
--------OptionTest.cs(23KB)
--------HelperClass()
--------ValidationTest.cs(5KB)
--------EOptionTest.cs(23KB)
--------EFailableTest.cs(17KB)
--------Tests.csproj(3KB)
--------MaybeTest.cs(18KB)
--------EValidationTest.cs(4KB)
----siedaOpenSourceKey.snk(596B)

网友评论