Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    valutare variabile dal suo nome [eval()]

    Sto adattando del codice scritto (male) da altri,
    hanno avuto la bella idea di settare tantissime proprietà tipo

    obj.c1
    obj.c2
    obj.c3
    obj.c4
    ........
    obj.c20

    e a mano dovrei scrivere centinaia di assegnazioni

    In altri linguaggi potrei fare

    Codice PHP:
    For As Integer 1 To 20
       
    eval("obj.c" i) = mioarray[i]
    Next i 
    ma in VB.net come si fa???


    Grazie 1000 per il supporto

  2. #2
    potresti usare la cosidetta Reflection e alcuni dei tanti metodi che ti mette a disposizione per accedere alla struttura degli oggetti e ai relativi membri contenuti.
    Es.
    http://msdn.microsoft.com/en-us/library/6z33zd7h.aspx
    Saluti a tutti
    Riccardo

  3. #3
    AAARGH, un piccolo sample code???

    In fondo devo settare solo delle stringhe (da mioarray(1) a obj.c1, da mioarray(2) a obj.c2 etc..)


    Grazie per la risposta comunque!

  4. #4
    codice:
    Example myObject = new Example();
            Type myType = typeof(Example);        
            
            for (int i = 0; i < 20; i++)
            {
                FieldInfo myFieldInfo = myType.GetField("c" + i, BindingFlags.NonPublic | BindingFlags.Instance);
                myFieldInfo.SetValue(myObject, "tuovalore");
            }
    Saluti a tutti
    Riccardo

  5. #5
    Graaazie, ti devo una birra!


  6. #6
    Update...

    il maledetto (quello che ha scritto il codice che devo adattare) ha escogitato delle finezze tipo questa:
    codice:
                Property scenario1(ByVal scala As Integer) As String
                    Get
                        Return _scenari(scala).scenario1
                    End Get
                    Set(ByVal Value As String)
                        _scenari(scala).scenario1 = Value
                    End Set
                End Property
    e, se nell'esempio sopra riportato dal gentilissimo riccardone se, al posto di
    codice:
    "c" + i
    uso
    codice:
    "_scenari(" & i & ").scenario" & j 'ad es. _scenari(1).scenario2
    la suddetta proprietà myFieldInfo non viene trovata (resta Nothing) e quindi da errore...

    qualche suggerimento per settare proprietà che richiedono un indice???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.