Oggetto con proprietà non raggiungibile

di il
9 risposte

Oggetto con proprietà non raggiungibile

Passo da una routine ad un altra un oggetto.
Quando poi nella seconda routine faccio riferimento ad una proprietà dell'oggetto mi esce l' errore che non c'è la proprietà..

 Determina_Tipo(V, Numero + 1,Com_Servizio, Log , Salva_Frase);
 ...
 ....
 private  void Determina_Tipo(string V, int POS, bool Com_Servizio,bool Log,object Salva_Frase)
        
  Salva_Frase.frase = "..... "       
  
mi è accaduto solo questa volta....
Grazie.

9 Risposte

  • Re: Oggetto con proprietà non raggiungibile

    A parte il fatto che un oggetto che si chiama Salva_Frase (che sembra più un metodo) ... bisognerebbe riflettere sulla OOP ...

    Comunque, se il problema di cui parli fa riferimento a "frase", bisogna vedere come hai scritto la classe dell'oggetto in questione.
  • Re: Oggetto con proprietà non raggiungibile

     
     public string frase
            {
                get { return frase_; }
    
                set
                {
                   // if (value is string)
                  //  {
                        frase_ = value;
                        Salva(frase_);
                   // }
                }
            }
            
    L'ho fatta in questo modo senza usare direttamente Salva(Frase_) perchè cosi posso risalire alla untima frase inserita.
  • Re: Oggetto con proprietà non raggiungibile

    Non so esattamente cosa affermi ma non hai mostrato la classe. E non capisco perché passi l'oggetto come object e non usi la specifica classe in questione.
  • Re: Oggetto con proprietà non raggiungibile

    panfra ha scritto:


    Passo da una routine ad un altra un oggetto.
    Quando poi nella seconda routine faccio riferimento ad una proprietà dell'oggetto mi esce l' errore che non c'è la proprietà..
    
     Determina_Tipo(V, Numero + 1,Com_Servizio, Log , Salva_Frase);
     ...
     ....
     private  void Determina_Tipo(string V, int POS, bool Com_Servizio,bool Log,object Salva_Frase)
            
      Salva_Frase.frase = "..... "       
      
    mi è accaduto solo questa volta....
    Grazie.
    Nella firma del metodo hai scritto
    object Salva_Frase
    quindi i metodi che potrai utilizzare saranno quelli della classe Object.

    Non puoi invocare i metodi della tua classe, anche se questa eredita da Object, in quanto da Object ereditano TUTTE le classi quindi potenzialmente potresti passare un oggetto di qualsiasi tipo come parametro, quindi non è possibile accedere in sicurezza alla proprietà che ti interessa, ossia frase, a meno di non fare un controllo preventivo ed eseguire un "cast" convertendo quell'Object nel tipo corretto, una volta verificato che questo sia possibile.

    Come ti è stato già detto però, manca una parte consistente di codice e non è chiaro perché tu passi un oggetto appartenente a un tipo specifico usando il tipo Object nel parametro.

    Sorvolo completamente su qualsiasi commento relativo allo standard di codifica e al fatto che usi perennemente convenzioni errate nel naming di qualsiasi elemento, rendendo il codice illeggibile, ma ormai ci ho rinunciato.

    Ciao!
  • Re: Oggetto con proprietà non raggiungibile

    Grazie per l'input, ho risolto.
    Cerchero' di codificare meglio..
    Grazie.
  • Re: Oggetto con proprietà non raggiungibile

    Dopo che ti è stato risposto, potresti dare maggiori dettagli su come hai risolto, per chi dovesse leggere il thread ed avere i tuoi stessi problemi ...
  • Re: Oggetto con proprietà non raggiungibile

    Ho reso l' oggetto globale e così la uso da ogni punto del software.
    Grazie.
  • Re: Oggetto con proprietà non raggiungibile

    panfra ha scritto:


    Ho reso l' oggetto globale e così la uso da ogni punto del software.
    Mi pare che la soluzione non abbia nulla a che vedere con il problema di cui si è parlato.
    Il caos regna sovrano.
  • Re: Oggetto con proprietà non raggiungibile

    @panfra ... in effetti stai facendo un po' di confusione, se a te va bene ok ma così non impari nulla.
Devi accedere o registrarti per scrivere nel forum
9 risposte