En C++, pasando referencias const es una práctica común - por ejemplo:¿Cómo paso una referencia constante en C#?
#include <iostream>
using namespace std;
class X
{
public :
X() {m_x = 0; }
X(const int & x) {m_x = x; }
X(const X & other) { *this = other; }
X & operator = (const X & other) { m_x = other.m_x; return *this; }
void print() { cout << m_x << endl; }
private :
int m_x;
};
void main()
{
X x1(5);
X x2(4);
X x3(x2);
x2 = x1;
x1.print();
x2.print();
x3.print();
}
Este sencillo ejemplo ilustra cómo se hace - más o menos. Sin embargo, he notado que en C# no parece ser el caso. ¿Debo pasar las referencias de const en C#? ¿Para qué necesito la palabra clave "ref"? Tenga en cuenta que sé y entiendo qué referencias de C# y tipos de valores son.
Puesto que usted está pensando en términos de C++, probablemente, la mejor manera de pensar en la palabra clave ref es como un puntero. Si lo usa con un tipo de valor, entonces es un puntero único, con un tipo de referencia, es un puntero a un puntero. –
Duplicado: http://stackoverflow.com/questions/114149 –
Una buena referencia para este tipo de cosas es el blog Eric Lipperts. En particular, su entrada "Referencias no son direcciones". http://blogs.msdn.com/ericlippert/archive/2009/02/17/references-are-not-addresses.aspx –