Hi
Ich hab heute angefangen das Galileo Computing Tutorial von C# durchzuarbeiten und hänge grad am Referenzoperator fest.
2 Fragen.
1.
Gibt es einen Unterschied zwischen Referenz- und Adressoperator ?
2.
In C++ konnte ich, wenn ich z.B. einen Integer durch eine Funktion dauerhaft ändern wollte einfach die Referenz des Integers übergeben und als Zeiger darauf bearbeiten. Geht das in C# nicht mehr?
Da stand im Beispiel was von ref oder so, aber ich krieg nur Fehler, egal bei welcher Methode.
Unten beide meine Beispiele: Beide klappen nicht.
Ich hab schon alle Kombinationen probiert, da kommt irgendwie immer n Fehler mit:
Pointers may only be used in an unsafe context
Was mach ich verkehrt?
Ich hab heute angefangen das Galileo Computing Tutorial von C# durchzuarbeiten und hänge grad am Referenzoperator fest.
2 Fragen.
1.
Gibt es einen Unterschied zwischen Referenz- und Adressoperator ?
2.
In C++ konnte ich, wenn ich z.B. einen Integer durch eine Funktion dauerhaft ändern wollte einfach die Referenz des Integers übergeben und als Zeiger darauf bearbeiten. Geht das in C# nicht mehr?
Da stand im Beispiel was von ref oder so, aber ich krieg nur Fehler, egal bei welcher Methode.
Unten beide meine Beispiele: Beide klappen nicht.
Ich hab schon alle Kombinationen probiert, da kommt irgendwie immer n Fehler mit:
Pointers may only be used in an unsafe context
Was mach ich verkehrt?
Code:
...
public void Init()
{
int intVar = 3;
Console.WriteLine("intVar vorher = {0}", intVar);
TestProc(& intVar);
Console.WriteLine("intVar nachher = {0}", intVar);
Console.ReadLine();
}
public void TestProc( int *intPara)
{
*intPara = 550;
Console.WriteLine("intPara in TestProc = {0}", *intPara);
}
...
Code:
...
public void Init()
{
int intVar = 3;
Console.WriteLine("intVar vorher = {0}", intVar);
TestProc(ref intVar);
Console.WriteLine("intVar nachher = {0}", intVar);
Console.ReadLine();
}
public void TestProc( int *intPara)
{
*intPara = 550;
Console.WriteLine("intPara in TestProc = {0}", *intPara);
}
...