Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

260
Views
¿Impacto de usar la palabra clave 'ref' para parámetros de cadena en métodos en C#?

Como programador que no tiene una buena idea sobre la canalización de .NET, me preguntaba si el uso de cadenas de referencia como parámetros es bueno para el rendimiento en C#.

Digamos que tengo un método como este:

 public int FindSomething(string text) { // Finds a char in the text and returns its index }

Cuando uso este método, el compilador crea una copia del texto para el método, ¿verdad?

Pero si uso la palabra clave ref :

 public int FindSomething(ref string text) { // Finds a char in the text and returns its index }

.. el compilador solo debe enviar la dirección del puntero del texto...

Entonces, ¿es bueno para el rendimiento usar una ref como esta?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Cuando uso este método, el compilador crea una copia del texto para el método, ¿verdad?

No, no lo hace. string es un tipo de referencia, y el compilador creará una nueva variable de pila que apunta a la misma string representada en una dirección de memoria determinada. No copiará la cadena.

Cuando usa ref en un tipo de referencia, no habrá una copia del puntero a la string creada. Simplemente pasará la referencia ya creada. Esto es útil solo cuando desea crear una string completamente nueva:

 void Main() { string s = "hello"; M(s); Console.WriteLine(s); M(ref s); Console.WriteLine(s); } public void M(string s) { s = "this won't change the original string"; } public void M(ref string s) { s = "this will change the original string"; }

Entonces, ¿es bueno para el rendimiento usar una referencia como esta?

Las ganancias de rendimiento no serán perceptibles. Lo que sucederá es que otros desarrolladores se confundan sobre por qué usó ref para pasar la cadena.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!