Microsoft .Net-Samples
Loading...
Searching...
No Matches
fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration Class Reference

Verwenden von ASYNC-Methode und ref, unsafe, und iterationen. Dazu kommen noch Funtionen mit YIELD (Iteratoren-Thema). More...

Static Public Member Functions

static async Task< string > _UseLocalParameterAsync (int _MaxForIntValue, int _Version)
 Berechnung einer Summe nach 2 verschiedenen Task-Varianten cbOption01.Checked und cbOption02.Checked.
static IEnumerable< string > _GetNameFromRefStringArray (ref string[] _FirstNameArray)
 Rückgabe eines IEnumerable-Sring aus einem String-Array cbOption03.Checked.
static IEnumerable< int > _ProduceEvenNumbers (int upto)
 Rückgabe eines IEnumerable-Int Value cbOption04.Checked.
static System.Collections.Generic.IEnumerable< int > _GetValueFromYield_1000 ()
 Anwendung yield Statement.
static System.Collections.Generic.IEnumerable< string > _GetValueFromYield_1101 ()
 cbOption06.Checked: Gibt eine String-Liste (1 Eintrag) zurück. Task.Run().AWAIT Funktion mit Lambda-Expression
static System.Collections.Generic.IEnumerable< string > _GetValueFromYield_1102 ()
 cbOption06.Checked: Gibt eine String-Liste (1 Eintrag) zurück. Task.Run() Funktion mit Lambda-Expression
static async IAsyncEnumerable< int > _GenerateNumbersAsync (int count)
 cbOption08.Checked: Wozu soll ich ein solches Muster verwenden???

Static Private Member Functions

static async Task< int > _ProduceNumberAsync (int seed)
 cbOption08.Checked=>_GenerateNumbersAsync()=>_ProduceNumberAsync()

Detailed Description

Verwenden von ASYNC-Methode und ref, unsafe, und iterationen. Dazu kommen noch Funtionen mit YIELD (Iteratoren-Thema).

Remarks:

Member Function Documentation

◆ _GenerateNumbersAsync()

async IAsyncEnumerable< int > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._GenerateNumbersAsync ( int count)
static

cbOption08.Checked: Wozu soll ich ein solches Muster verwenden???

Parameters
count
Returns

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/statements/yield

◆ _GetNameFromRefStringArray()

IEnumerable< string > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._GetNameFromRefStringArray ( ref string[] _FirstNameArray)
static

Rückgabe eines IEnumerable-Sring aus einem String-Array cbOption03.Checked.

Parameters
_FirstNameArray
Returns

Remarks:

◆ _GetValueFromYield_1000()

System.Collections.Generic.IEnumerable< int > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._GetValueFromYield_1000 ( )
static

Anwendung yield Statement.

cbOption05.Checked

Returns

Remarks:

Dieses Beispiel macht eigentlich keinen Sinn, denn relevant ist nur der yield return. Der Rest ist eigentlich einfach nur blödsinn! Innerhalb des async kann eine Lamdba-Funktion implementiert und ausgeführt werden.

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/statements/yield

Call local-Methode

Basis-Signatur wie bei einem Click-Element

◆ _GetValueFromYield_1101()

System.Collections.Generic.IEnumerable< string > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._GetValueFromYield_1101 ( )
static

cbOption06.Checked: Gibt eine String-Liste (1 Eintrag) zurück. Task.Run().AWAIT Funktion mit Lambda-Expression

Returns

Remarks:

◆ _GetValueFromYield_1102()

System.Collections.Generic.IEnumerable< string > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._GetValueFromYield_1102 ( )
static

cbOption06.Checked: Gibt eine String-Liste (1 Eintrag) zurück. Task.Run() Funktion mit Lambda-Expression

Returns

Remarks:

◆ _ProduceEvenNumbers()

IEnumerable< int > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._ProduceEvenNumbers ( int upto)
static

Rückgabe eines IEnumerable-Int Value cbOption04.Checked.

Parameters
upto
Returns

◆ _ProduceNumberAsync()

async Task< int > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._ProduceNumberAsync ( int seed)
staticprivate

cbOption08.Checked=>_GenerateNumbersAsync()=>_ProduceNumberAsync()

Parameters
seed
Returns

◆ _UseLocalParameterAsync()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.RefLocalsUnsafeCodeIteration._UseLocalParameterAsync ( int _MaxForIntValue,
int _Version )
static

Berechnung einer Summe nach 2 verschiedenen Task-Varianten cbOption01.Checked und cbOption02.Checked.

Task-Methode zur Berechnung, verwenden von out und/oder ref Parameter aktuell in diesem Projekt nicht möglich! Das Thema ASYNC wird in den Versionen (0 und 1) ebenfalls etwas genauer betrachtet. In einem Task mit Lambda-Code kann man das Ganze einfach zu sehr verschachtel, ohne dass es das braucht.

Parameters
_MaxForIntValue
_Version

///

Returns

Remarks:

Versionen (parameter):_Version Version-0: Überflüssiger Lamdda-Code im Task mit einem zusätzlichen async und await. Version-1: reicht für das Ganze vorhaben völlig aus!
Projekt-Einstellunen Habe den unsafe Kontext nicht angewendet, da diese Einstellung in den Projekt Eigenschaften gemacht werden muss. [Kapitel: Build:Unsafe] Link: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-13.0/ref-unsafe-in-iterators-async
Artikel zu C#-13

Vor C# 13 führte die Verwendung von Referenzvariablen oder unsicherem Code innerhalb einer asynchronen Methode oder einer Iteratormethode zu einem Compilerfehler, da potenzielle Probleme mit der Lebensdauer und der Zustandsautomatensicherheit bestanden. C# 12 bietet nun Sprach- und Compilerunterstützung, um dies in mehr Szenarien sicher zu ermöglichen. Link: https://c-sharptutorial.com/csharparticles/ref-locals-and-unsafe-contexts-in-csharp Status-Quo: 24.02.2026 => es gibt noch immer Fehler im Compiler mit ref und async!

Operation: Summierung

Unnötige zusätzliche async Operation!

Diese Version reicht für async


The documentation for this class was generated from the following file:
  • U:/00000000_global_projects/000_DotNetxx/fho.frm.net.Microsoft_DotNetSamples/fho.frm.net.Microsoft_DotNetSamples/ClassCSharpVersion/ClassCSharp13.cs