Se ha cambiado el nombre de algunos parámetros en tipos derivados de Stream.

En .NET 6, se ha cambiado el nombre de algunos parámetros de los métodos de los tipos derivados de System.IO.Stream para que coincidan con la clase base.

Descripción del cambio

En versiones anteriores de .NET, varios tipos derivados de Stream invalidan los métodos, pero utilizan nombres de parámetro diferentes a los que usa el tipo base. Por ejemplo, el parámetro de matriz de bytes de DeflateStream.Read(Byte[], Int32, Int32) se denomina array, mientras que el argumento correspondiente en el método de la clase base se denomina buffer.

En .NET 6, todos los tipos que derivan de System.IO.Stream para los que los nombres de parámetro no coincidían se han ajustado conforme al tipo base mediante el uso de los mismos nombres de parámetro que el tipo base.

Versión introducida

.NET 6

Motivo del cambio

Hay varias razones para el cambio:

  • Si se pasaba un argumento no válido y se producía una excepción, esa excepción podía contener el nombre del parámetro base o el nombre del parámetro derivado, dependiendo de la implementación. Dado que puede que el autor de llamada haya estado usando un tipo de referencia como base o como tipo derivado, no es posible que el nombre del argumento en la excepción sea siempre correcto.
  • Tener distintos nombres de parámetro dificulta la validación coherente del comportamiento en todas las implementaciones de Stream.
  • .NET 6 agrega un método público en Stream para validar los argumentos, y ese método debe tener un nombre de parámetro coherente que pueda usar.

El efecto de este cambio importante es mínimo:

  • Para los archivos binarios existentes, su impacto se limita al código que usa la reflexión para examinar los nombres de parámetro en los tipos derivados afectados.
  • En el código fuente, su impacto se limita al código que usa parámetros con nombre para invocar métodos en el tipo de flujo derivado usando una variable de tipo como ese tipo derivado.

En ambos casos, la acción recomendada es usar el nombre de parámetro base de forma coherente.

API afectadas

Vea también