Hallo Leute,
ich bin beim Lesen MSDN auf dies gestoßen:
Ausgabe:
b
b
Ich habe mir das mehrmals durchgelesen aber ich kappiere das nicht, hat einer verständlichere Worte?
Wenn ich wüsste wofür man das braucht wäre ich vielleicht schon schlauer.
BisDann
ich bin beim Lesen MSDN auf dies gestoßen:
Das Festlegen des ref-Schlüsselworts für Methodenparameter führt dazu, dass eine Methode auf dieselbe Variable verweist, die in die Methode übergeben wurde. Alle Änderungen des Methodenparameters werden in diese Variable übernommen, sobald die Steuerung wieder an die aufrufende Methode übergeben wird.
Um einen ref-Parameter verwenden zu können, muss das Argument explizit als ref-Argument an die Methode übergeben werden. Der Wert des ref-Arguments wird an den ref-Parameter übergeben.
Ein Argument, das an einen ref-Parameter übergeben wird, muss zunächst initialisiert werden. Einen Vergleich bietet der out-Parameter, dessen Argument nicht explizit initialisiert werden muss, bevor er an den out-Parameter übergeben wird.
Eine Eigenschaft stellt keine Variable dar und kann nicht als ref-Parameter übergeben werden.
Wenn sich die Deklarationen von zwei Methoden lediglich in der Verwendung von ref unterscheiden, tritt eine Überladung auf. Es kann jedoch keine Überladung definiert werden, die sich lediglich hinsichtlich der Verwendung von ref anstelle von out und umgekehrt unterscheidet. Die folgenden Überladungsdeklarationen sind beispielsweise gültig:
Code:
// cs_ref.cs
using System;
public class MyClass
{
public static void TestRef(ref char i)
{
// The value of i will be changed in the calling method
i = 'b';
}
public static void TestNoRef(char i)
{
// The value of i will be unchanged in the calling method
i = 'c';
}
// This method passes a variable as a ref parameter; the value of the
// variable is changed after control passes back to this method.
// The same variable is passed as a value parameter; the value of the
// variable is unchanged after control is passed back to this method.
public static void Main()
{
char i = 'a'; // variable must be initialized
TestRef(ref i); // the arg must be passed as ref
Console.WriteLine(i);
TestNoRef(i);
Console.WriteLine(i);
}
}
b
b
Ich habe mir das mehrmals durchgelesen aber ich kappiere das nicht, hat einer verständlichere Worte?
Wenn ich wüsste wofür man das braucht wäre ich vielleicht schon schlauer.
BisDann