흔히 볼 수 있는 닷넷용 클래스 라이브러리들과는 달리, .NET Standard 1.0 ~ 2.1까지 별도의 외부 라이브러리를 사용하지 않고 기본 API 세트만으로 만들 수 있는 최소한의 API 셋만 이용해서 익스텐션 메서드 라이브러리를 만들어볼 생각으로 새로운 NuGet 패키지를 출시했습니다.
일단은 식탁보에서 당장 사용할 필요가 있는 난수 생성 라이브러리와 몇 가지 기본적인 입출력 도우미 함수들만 담아보았는데, 많은 분들의 아이디어를 더 담아보고 싶습니다.
아직 테스트해보진 못했지만, 특별한 이슈가 없다면 Blazor나 NativeAOT에서도 큰 무리없이 적용할 수 있을만한 도우미 라이브러리로 유지하면서 발전시켜나가보고 싶습니다!
다음은 현재 만들어놓은 도우미 함수들의 사용 예시입니다.
RandomNumberGenerator로 난수 생성하기
using dotEnhancer;
using var rng = RandomNumberGenerator.Create();
int min = -1000, max = 1000;
Console.Out.WriteLine($"Single Try: {rng.NextInt64()}");
foreach (var result in rng.EnumerateInt32s(_testCycle, min, max))
{
// assert
Console.Out.WriteLine("Number: {result}");
}
스트림에 인코딩된 바이트 배열 쓰기
using dotEnhancer;
var value = "Hello, World!";
var targetEncoding = new UTF8Encoding(false);
using var writableStream = new MemoryStream();
writableStream.WriteStringWithEncoding(value, targetEncoding);
StringBuilder 인스턴스 발화하기
using dotEnhancer;
var sb = new char[] { 'H', 'e', 'l', 'l', 'o', }.AsStringBuilder();
sb.AppendLine(", World!");
Console.Out.WriteLine(sb.ToString());