Hace poco escribi esto:
¿Como puedo forzar la destruccion de un objeto desde el
mismo objeto? Algo como esto:
public class Clase
{
public Clase()
{
this=null; //Esto funciona en Visual Basic, per
// no funciona en C#
}
}
Y el buen Octavio Hernandez, a quien agradezco sus respuestas por mas
simples que sean mis dudas, me contesto esto:
Pedro,
¿Para qué necesitas esta clase de "suicidio" :-)
No es nada común que esta necesidad se presente, yo diría que tienes algún
fallo en el diseño.
Tienes razon Octavio. Esto yo suelo hacerlo mediante una variable privada
global de tipo bool que sea verdadera si un parametro pasado al constructor
es correcto, y falso si el parametro es incorrecto (me falto poner eso de los
parametros, hasta ahora me doy cuenta), despues las funciones de la clase
leen el valor de la variable y se ejecutan solo si el valor es verdadero. Lo
que sucede es que me han dicho que mediante Reflection se puede conocer el
valor de una variable, aunque esta sea privada, y cambiarlo, por lo que
prefiero destruir el objeto, si es posible.
Aprovecho para hacer tres preguntas:
1.- ¿Se puede destruir el objeto?
2.- Si en verdad es posible y no me mintio quien me lo dijo, ¿Como se accede
a un miembro o metodo privado de una clase? Un ejemplo, profavor, porque yo
no lo he conseguido.
3.- Tengo un archivo que lo vierto en una variable string. Despues recorro
cada caracter de la cadena mediante un ciclo "for( int i=0;
i<cadena.Length;i++)". El metodo Length devuelve un valor "int", que segun un
libro de "Walter Savitch" tiene un rango de "-2,147, 483,647 hasta 2,147,
483,647 bytes". El archivo contiene solo numeros y letras, y me he fijado que
cada caracter ocupa un byte. Hice que la "cadena" tuviera el triple de
caracteres que los permitidos pero nada raro paso. El ciclo se recorrio
normalmente y el archivo se guardo y se leyo completo.
¿Alguien sabe a que se debe esto? No quisiera que la aplicacion funcionara y
fallara al momento de ser instalada.
Saludos y gracias.
Leer las respuestas