gpt4 book ai didi

.net - .NET Guard类库?

转载 作者:行者123 更新时间:2023-12-03 14:46:17 27 4
gpt4 key购买 nike

我正在寻找提供保护方法(如检查空参数)的库或源代码。显然,这很容易构建,但是我想知道.NET是否已经存在。基本的Google搜索并没有显示太多。

最佳答案

CuttingEdge.Conditions。页面上的用法示例:

public ICollection GetData(Nullable<int> id, string xml, ICollection col)
{
// Check all preconditions:
id.Requires("id")
.IsNotNull() // throws ArgumentNullException on failure
.IsInRange(1, 999) // ArgumentOutOfRangeException on failure
.IsNotEqualTo(128); // throws ArgumentException on failure

xml.Requires("xml")
.StartsWith("<data>") // throws ArgumentException on failure
.EndsWith("</data>"); // throws ArgumentException on failure

col.Requires("col")
.IsNotNull() // throws ArgumentNullException on failure
.IsEmpty(); // throws ArgumentException on failure

// Do some work

// Example: Call a method that should not return null
object result = BuildResults(xml, col);

// Check all postconditions:
result.Ensures("result")
.IsOfType(typeof(ICollection)); // throws PostconditionException on failure

return (ICollection)result;
}


另一个不错的方法,它没有打包在库中,但很容易成为 on Paint.Net blog

public static void Copy<T>(T[] dst, long dstOffset, T[] src, long srcOffset, long length)
{
Validate.Begin()
.IsNotNull(dst, "dst")
.IsNotNull(src, "src")
.Check()
.IsPositive(length)
.IsIndexInRange(dst, dstOffset, "dstOffset")
.IsIndexInRange(dst, dstOffset + length, "dstOffset + length")
.IsIndexInRange(src, srcOffset, "srcOffset")
.IsIndexInRange(src, srcOffset + length, "srcOffset + length")
.Check();

for (int di = dstOffset; di < dstOffset + length; ++di)
dst[di] = src[di - dstOffset + srcOffset];
}


我在 my project中使用它,您可以从那里借用代码。

关于.net - .NET Guard类库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/299439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com