Sharpify 2.0.0
See the version list below for details.
dotnet add package Sharpify --version 2.0.0
NuGet\Install-Package Sharpify -Version 2.0.0
<PackageReference Include="Sharpify" Version="2.0.0" />
paket add Sharpify --version 2.0.0
#r "nuget: Sharpify, 2.0.0"
// Install Sharpify as a Cake Addin #addin nuget:?package=Sharpify&version=2.0.0 // Install Sharpify as a Cake Tool #tool nuget:?package=Sharpify&version=2.0.0
CHANGELOG
v2.0.0
Performance improvements to parallel extensions that use
AsyncLocal
- The changes are BREAKING as now the call sites should use newer convention, behavior will be the same.
- Instead of the previous
.AsAsyncLocal
, there are now 2 overloads, both use nested generics which is the reason for the update, instead ofIList<T>
they use<TList, TItem>
whereTList : IList<TItem>
. The first overload with no additional parameters can be used but it will require to specify both generic types as the compiler cannot inferTItem
for some reason. To partially compensate for the verbosity it creates when using complex types, a second overload accepts aTItem? @default
argument. Specifyingdefault(TItem)
there will enable the compiler to infer the generic.
// EXAMPLE var items = List<int>() { 1, 2, 3 }; _ = items.AsAsyncLocal<List<int>, int>(); // Overload 1 with no arguments _ = items.AsAsyncLocal(default(int)); // Overload 2 with TItem? @default
- This might seem like a step backwards but using a nested generic here, can improve performance by not virtualizing interface calls to
IList<T>
, and also enable the compiler to more accurately trim the code when compiling toNativeAOT
.
Both overloads of
DecryptBytes
inAesProvider
now have an optional parameterthrowOnError
which is set tofalse
by default, retaining the previous behavior. Setting it totrue
will make sure the exception is thrown in case of aCryptographicException
instead of just returning an empty array or 0 (respective of the overloads). This might help catch certain issues.- Note: Previously and still now, exceptions other than
CryptographicException
would and will be thrown. They are not caught in the methods.
- Note: Previously and still now, exceptions other than
Implement a trick in
RemoveDuplicatesFromSorted
,RemoveDuplicates
,RemoveDuplicatesSorted
andTryConvertToInt32
to ensure the compiler knows to remove the bounds checking from the loops.IComparer<T>
parameter type inSortedList<T>
was changed toComparer<T>
, the interface virtualization seemed to make custom comparers produce unexpected results.StringBuffer
andAllocatedStringBuffer
can now use the builder pattern to chain its construction, same asStringBuilder
.var buffer = StringBuffer.Create(stackalloc char[20]).Append("Hello").AppendLine().Append("World");
- This change required each method to return the actual reference of the struct, Use this with caution as this means you can change the actual reference instead of a copy if you manually assign it a new value.
- From my testing, with correct usage, without manually assigning values to the original variable, previous and builder pattern usage passes my tests. If you encounter any issue with this, make sure to submit it in the GitHub repo.
Fixed edge case where pausing an
AsyncRoutine
would stop it permanently, regardless of calls toResume
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Sharpify:
Package | Downloads |
---|---|
PrettyConsole
High performance, feature rich and easy to use wrap over System.Console |
|
Sharpify.Data
An extension of Sharpify, focused on Data |
|
Sharpify.CommandLineInterface
An extension of Sharpify, focused on creating command line interfaces |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.5.0 | 276 | 11/13/2024 |
2.4.0 | 406 | 10/21/2024 |
2.4.0-alpha | 185 | 10/8/2024 |
2.2.0 | 552 | 7/26/2024 |
2.1.0 | 91 | 7/18/2024 |
2.0.0 | 153 | 6/3/2024 |
1.8.1 | 111 | 5/30/2024 |
1.8.0 | 122 | 4/17/2024 |
1.7.3 | 182 | 1/29/2024 |
1.7.2 | 127 | 1/23/2024 |
1.7.1 | 243 | 1/20/2024 |
1.7.0 | 98 | 1/20/2024 |
1.6.0 | 135 | 1/15/2024 |
1.5.0 | 120 | 1/10/2024 |
1.4.2 | 125 | 1/8/2024 |
1.4.1 | 165 | 1/4/2024 |
1.4.0 | 146 | 1/4/2024 |
1.3.1 | 137 | 12/31/2023 |
1.3.0 | 136 | 12/31/2023 |
1.2.0 | 137 | 12/24/2023 |
1.1.0 | 158 | 12/7/2023 |
1.0.9 | 122 | 12/7/2023 |
1.0.8 | 160 | 11/22/2023 |
1.0.7 | 132 | 9/23/2023 |
1.0.6 | 152 | 8/21/2023 |
1.0.5 | 167 | 5/4/2023 |
1.0.4 | 164 | 4/23/2023 |
1.0.3 | 170 | 4/19/2023 |
1.0.2 | 175 | 4/19/2023 |
1.0.1 | 183 | 4/14/2023 |
1.0.0 | 178 | 4/14/2023 |