Pregunta

Tengo un público de la propiedad se establece en mi forma de tipo ListE<T> donde:

public class ListE<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

Sí, se trata de un bocado, pero eso es lo que el Diseñador requiere para que se muestre como un editable de la colección en la ventana de Propiedades.El que lo hace!Así que, hago clic en la pequeña [..] botón para editar la colección y, a continuación, haga clic en Agregar para agregar un elemento a la colección.

Operación aritmética se tradujo en un desbordamiento.

Ahora, esta es una Lista muy básica, poco más que una expansión de la matriz.La única parte que viene cerca de la aritmética en la que todo está en la función de despliegue, e incluso que utiliza un desplazamiento a la izquierda en lugar de una multiplicación, por lo que no se desborde.Todo esto me hace pensar que esta excepción está siendo criado en el interior del Diseñador, tal vez causada por alguna pequeña falta de atención a la implementación de los detalles de mi parte, pero no puedo encontrar una manera de probar o depurar ese escenario.¿Alguien tiene alguna ideas inteligentes?

EDITAR:Sí, puedo usar la propiedad con éxito, incluso manualmente, es decir,.en el OnLoad controlador, y supongo que eso es lo que voy a tener que recurrir a si no puedo conseguir este trabajo, pero que no sería lo ideal.:(

¿Fue útil?

Solución

No puedo entender lo que te motiva para intentar reinventar la Lista<T> la rueda de esa manera, pero la respuesta a tu pregunta:Me gustaría añadir una línea "del Sistema.Los diagnósticos.Depurador.Break()" al constructor de su clase.

A continuación, pruebe a utilizar en el diseño, y usted obtendrá una ventana emergente que le pregunta si desea adjuntar un depurador.Adjuntar una segunda instancia de Visual Studio como un depurador, y usted será capaz de establecer algunos puntos de interrupción en el código y empezar a depurar.

Otros consejos

Un lugar para comenzar sería que se podría estar haciendo matemáticas con su ListE`1::Recuento de la propiedad.Si que tiene algunas sutiles defecto (es decir,es más complicado que devolver este.innerList.Count) podría ser la causa de que el diseñador de desbordamiento aritmético en alguna operación.Normalmente aritmética de los desbordamientos no ocurren a menos que específicamente se preguntó por el uso de la

checked
{
   // ...
}

la sintaxis.

Usted no tiene que agregar el Depurador.Pausa();llame a su código para depurar.Usted sólo puede abrir una instancia diferente de VS y adjuntar a la que la estás utilizando en y usted debería ser capaz de depurar sin problemas (sólo asegúrese de que usted tiene los símbolos cargados).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top