Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Acceder Correctamente a los Campos en Métodos de Struct | Structs & Enumerators
course content

Contenido del Curso

C# Beyond Basics

Acceder Correctamente a los Campos en Métodos de StructAcceder Correctamente a los Campos en Métodos de Struct

Hemos creado métodos, les hemos pasado datos y los hemos utilizado sin problemas, pero consideremos un ejemplo en el que el nombre del parámetro del método coincide con el nombre de un campo de la estructura:

cs

index.cs

El compilador no muestra ningún error en este caso, sin embargo el programa es lógicamente incorrecto ya que la salida del programa muestra (0, 0) a pesar de que hemos utilizado setValue(5, 7).

Esto se debe a que la sentencia x = x es muy ambigua ya que tanto el parámetro del método como el campo de la estructura tienen el nombre x. Según el compilador, en la sentencia x = x el parámetro del método x asigna el valor x a self de nuevo, lo que lógicamente es una sentencia nula y por lo tanto no hace nada.

Para arreglar esto usamos la palabra clave this. La palabra clave this indica al compilador que nos estamos refiriendo al campo de la estructura.

La sintaxis es this.fieldName. Así que el código fijo se verá como:

cs

index.cs

Ahora el compilador sabe que en la sentencia x = x, la x de la izquierda es un campo de estructura mientras que x de la derecha es un parámetro de método, y por tanto el campo se actualiza correctamente esta vez.

Utilizamos la palabra clave this para resolver cualquier ambigüedad en el código. Generalmente es una buena práctica usar siempre la palabra clave this cuando se accede a campos en métodos struct.

¿Qué palabra clave se utiliza para eliminar la ambigüedad cuando se hace referencia a campos dentro de métodos de clase?

Selecciona la respuesta correcta

¿Todo estuvo claro?

Sección 2. Capítulo 6
course content

Contenido del Curso

C# Beyond Basics

Acceder Correctamente a los Campos en Métodos de StructAcceder Correctamente a los Campos en Métodos de Struct

Hemos creado métodos, les hemos pasado datos y los hemos utilizado sin problemas, pero consideremos un ejemplo en el que el nombre del parámetro del método coincide con el nombre de un campo de la estructura:

cs

index.cs

El compilador no muestra ningún error en este caso, sin embargo el programa es lógicamente incorrecto ya que la salida del programa muestra (0, 0) a pesar de que hemos utilizado setValue(5, 7).

Esto se debe a que la sentencia x = x es muy ambigua ya que tanto el parámetro del método como el campo de la estructura tienen el nombre x. Según el compilador, en la sentencia x = x el parámetro del método x asigna el valor x a self de nuevo, lo que lógicamente es una sentencia nula y por lo tanto no hace nada.

Para arreglar esto usamos la palabra clave this. La palabra clave this indica al compilador que nos estamos refiriendo al campo de la estructura.

La sintaxis es this.fieldName. Así que el código fijo se verá como:

cs

index.cs

Ahora el compilador sabe que en la sentencia x = x, la x de la izquierda es un campo de estructura mientras que x de la derecha es un parámetro de método, y por tanto el campo se actualiza correctamente esta vez.

Utilizamos la palabra clave this para resolver cualquier ambigüedad en el código. Generalmente es una buena práctica usar siempre la palabra clave this cuando se accede a campos en métodos struct.

¿Qué palabra clave se utiliza para eliminar la ambigüedad cuando se hace referencia a campos dentro de métodos de clase?

Selecciona la respuesta correcta

¿Todo estuvo claro?

Sección 2. Capítulo 6
some-alt