Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Allow ref struct on Generic ThrowHelper methods

Abierto
#1,127 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@Avid29 ya está trabajando en esto.

Desde el 7/2/2026.

  • #1161 de @Avid29 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp

Línea de trabajo

No se nombra ningún archivo ni prueba. Empieza por localizar las API genéricas de ThrowHelper y comprobar cómo están declarados sus parámetros de tipo; confirma la compatibilidad del proyecto con .NET 9 y C# 13. Se considera terminado cuando los tipos ref struct, como Span, pueden usarse con los métodos ThrowHelper existentes sin cambiar su comportamiento.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

feature request :mailbox_with_mail:
Overview

This would allow ref structs to be used in pattern matching with a ThrowHelper case, using the new allow ref struct "anti-constraint".

API breakdown

This changes nothing except allowable use cases for existing ThrowHelper APIs.

Usage example

I encountered a situation in my code where I wanted to pattern match and return a ref struct. I found I could not use the ThrowHelper because it was a ref struct.

Here's an example of another imaginable situation utilizing the Span<T>.

Span<int> span = x switch
{
    0 => stackalloc int[size],
    1 => new int[size],
    2 => something.AsSpan(),
    _ => ThrowHelper.ThrowArgumentOutOfRangeException<Span<int>>(),
};
Breaking change?

No

Alternatives

throw without ThrowHelper

Additional context

This will require .NET 9 and C# version 13

Help us help you

Yes, I'd like to be assigned to work on this item

Lenguaje dominante
C#
Estrellas
3.8k
Forks
401
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de CommunityToolkit/dotnet

Todos los issues de CommunityToolkit/dotnet

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.