![]() |
VOOZH | about |
dotnet add package FastGenericNew --version 3.3.1
NuGet\Install-Package FastGenericNew -Version 3.3.1
<PackageReference Include="FastGenericNew" Version="3.3.1" />
<PackageVersion Include="FastGenericNew" Version="3.3.1" />Directory.Packages.props
<PackageReference Include="FastGenericNew" />Project file
paket add FastGenericNew --version 3.3.1
#r "nuget: FastGenericNew, 3.3.1"
#:package FastGenericNew@3.3.1
#addin nuget:?package=FastGenericNew&version=3.3.1Install as a Cake Addin
#tool nuget:?package=FastGenericNew&version=3.3.1Install as a Cake Tool
The ultimate fast and powerful alternative to Activator.CreateInstance<T> / new T()
✔️ The best CreateInstance ever
Activator.CreateInstance<T>PublishTrimmed Support🪛 Modern Compiler Integration
🔥 Latest C#/.NET Features Support
You should only use one of them
dotnet add package FastGenericNew --version 3.3.0
<ItemGroup>
<PackageReference Include="FastGenericNew" Version="3.3.0" />
</ItemGroup>
dotnet add package FastGenericNew.SourceGenerator --version 3.3.0
<ItemGroup>
<PackageReference Include="FastGenericNew.SourceGenerator" Version="3.3.0" />
</ItemGroup>
.NET Standard 2.0 or above
C# 8.0 or above
Roslyn 4.0.1 or above
Modern IDE (Optional) [VS2022, Rider, VSCode]
using FastGenericNew;
// Simply replace 'Activator' to 'FastNew'
var obj = FastNew.CreateInstance<T>();
// With parameter(s)
var obj2 = FastNew.CreateInstance<T, string>("text");
var obj3 = FastNew.CreateInstance<T, string, int>("text", 0);
// Try pattern
// NOTE: The try pattern will only check if the constructor can be called.
// It will not catch or handle any exceptions thrown in the constructor.
if (FastNew.TryCreateInstance<T, string>("arg0", out T result));
{
// ...
}
With .NET Framework,
Activator.CreateInstance<T>()invokes the parameterless constructor of ValueType if
the constraint iswhere T : new()but appears to ignore the parameterless constructor if the constraint iswhere T : struct.
ButFastNew.CreateInstance<T>()will always invoke the parameterless constructor if it's available.If you don't want to invoke the parameterless constructor of ValueType, consider using
FastNew.NewOrDefault<T>()which will never invoke the parameterless constructor ofValueType
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET SDK=6.0.200-preview.22055.15
[Host] : .NET 6.0.2 (6.0.222.6406), X64 RyuJIT
.NET 5.0 : .NET 5.0.14 (5.0.1422.5710), X64 RyuJIT
.NET 6.0 : .NET 6.0.2 (6.0.222.6406), X64 RyuJIT
.NET Framework 4.8 : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
👁 Benchmark Result of Reference Types
👁 Benchmark Result of Value Types
FastGenericNew is licensed under the license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 is compatible. |
| .NET Framework | net461 net461 is compatible. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 is compatible. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 1 NuGet packages that depend on FastGenericNew:
| Package | Downloads |
|---|---|
|
CounterStrikeSharp.API.Fork
Official server side runtime assembly for CounterStrikeSharp |
Showing the top 1 popular GitHub repositories that depend on FastGenericNew:
| Repository | Stars |
|---|---|
|
roflmuffin/CounterStrikeSharp
CounterStrikeSharp allows you to write server plugins in C# for Counter-Strike 2/Source2/CS2
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.3.1 | 21,636 | 8/15/2024 |
| 3.3.0 | 375 | 8/15/2024 |
| 3.1.0-preview1 | 9,928 | 3/18/2022 |
| 3.0.0-preview2.1 | 318 | 3/12/2022 |
| 3.0.0-preview2 | 377 | 3/6/2022 |
| 3.0.0-preview1 | 369 | 3/5/2022 |