Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jvyden/deferexpression
Defer from Zig in C#. Cursed as hell.
https://github.com/jvyden/deferexpression
csharp cursed defer stack zig ziglang
Last synced: 5 days ago
JSON representation
Defer from Zig in C#. Cursed as hell.
- Host: GitHub
- URL: https://github.com/jvyden/deferexpression
- Owner: jvyden
- Created: 2023-08-26T02:54:40.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-26T03:07:38.000Z (over 1 year ago)
- Last Synced: 2023-08-26T06:10:44.217Z (over 1 year ago)
- Topics: csharp, cursed, defer, stack, zig, ziglang
- Language: C#
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DeferExpression
Defer from Zig in C#. Cursed as hell.```csharp
public static void Main()
{
using var d1 = new Defer(() => Console.WriteLine("1"));
using var d2 = new Defer(() => Console.WriteLine("2"));
using var d3 = new Defer(() => Console.WriteLine("3"));
using var d4 = new Defer(() => Console.WriteLine("4"));
Console.WriteLine("Hello, World!");
using var d5 = new Defer(() => Console.WriteLine("5"));
}
```
Outputs:
```
Hello, World!
5
4
3
2
1
```Or you can use the stack version for the same result:
```csharp
public static void Main()
{
using DeferStack stack = new(capacity: 5);
stack.Defer(() => Console.WriteLine("1"));
stack.Defer(() => Console.WriteLine("2"));
stack.Defer(() => Console.WriteLine("3"));
stack.Defer(() => Console.WriteLine("4"));
Console.WriteLine("Hello, World!");
stack.Defer(() => Console.WriteLine("5"));
}
```