Pregunta

Estoy buscando a una clase VB.NET (que no he escrito) que se declara MustInherit (abstract en C #, pero yo creo) que tiene tres métodos, todos los cuales se definen como Shared (static en C #) . No hay propiedades o campos de la clase - sólo los tres métodos. Desde una perspectiva OO, ¿esto tiene sentido?

Mi pensamiento es no, porque por lo que es MustInherit, básicamente estás diciendo que no puede crear una instancia de esta clase - debe heredar de él y crear una instancia de la deriva clase . Pero ya que se comparten todos los métodos, nunca realmente crea una instancia de la clase padre de todos modos, por lo que el MustInherit hace ningún bien. Es lo mismo que no marca que MustInherit y simplemente heredar de ella siempre que lo desee.

¿Hay una situación en la creación de una clase de esta manera tiene sentido?

¿Fue útil?

Solución

Como otros han dicho, suena como que realmente querían una clase estática C #. equivalente de VB para "estática" es "compartida", pero no se puede marcar clases "compartida" en VB. La diferencia es que alguien podría heredar de esta clase y luego crear una instancia. clases estáticas de C # están sellados.

Lo que debería ha hecho es utilizar un Module. Un Module VB y C # clase estática son prácticamente idénticos: los miembros están asociados con el tipo en lugar de una instancia y no se puede heredar de ellos

.

Otros consejos

Desde una perspectiva OO, esto no tiene mucho sentido.

Sin embargo, VB no tiene una forma de bandera de una clase como compartida, como C # hace. En C #, es probable que habías marcar esta clase como un static class -. El MustInherit se añadió más probable para tratar de evitar que la gente la creación de una instancia de ella, a pesar de que es básicamente una clase estática

En C # una clase puede ser declarado como static (= Compartido), y creo que VB.NET no permite eso, así como una solución que está marcado abstracto (MustInherit) de manera que nunca se crea una instancia

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