Doppelte Namensnennung

  • C++/CLI

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Facebamm.

    Doppelte Namensnennung

    Hallo zusammen,

    wie ist es möglich, das ein Programm zwei mal bzw. mehrfach den gleichen Namen einer Variable vergeben kann und dann noch sauber läuft Oo? :?:
    oder ist das ein Decompile error?

    IL
    Spoiler anzeigen

    Quellcode

    1. // Token: 0x0400028A RID: 650
    2. .field assembly int32 '\u0019\u0004'
    3. // Token: 0x0400028B RID: 651
    4. .field private string '\u0019\u0004'
    5. // Token: 0x0400028C RID: 652
    6. .field private string '\u0004\u0004'
    7. // Token: 0x0400028D RID: 653
    8. .field private int32 '\u0004\u0004'

    C#
    Spoiler anzeigen

    C#-Quellcode

    1. // Token: 0x0400028A RID: 650
    2. internal int \u0019\u0004;
    3. // Token: 0x0400028B RID: 651
    4. private string \u0019\u0004;
    5. // Token: 0x0400028C RID: 652
    6. private string \u0004\u0004;
    7. // Token: 0x0400028D RID: 653
    8. private int \u0004\u0004;


    Spoiler anzeigen

    C#-Quellcode

    1. // Token: 0x0400018C RID: 396
    2. private static readonly char[] \u0019\u0004;
    3. // Token: 0x0400018D RID: 397
    4. private static readonly Random \u0019\u0004;

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Facebamm“ ()

    msdn.microsoft.com/de-de/library/1t0wsc67(v=vs.120).aspx
    willemer.de/informatik/cpp/geltungvar.htm

    C-Quellcode

    1. // C++ Program to find factorial of a number
    2. // Factorial on n = 1*2*3*...*n
    3. #include <iostream>
    4. using namespace std;
    5. int main()
    6. {
    7. int i, n, factorial = 1;
    8. cout << "Enter a positive integer: ";
    9. cin >> n;
    10. for (i = 1; i <= n; ++i) {
    11. factorial *= i; // factorial = factorial * i;
    12. }
    13. cout<< "Factorial of "<<n<<" = "<<factorial;
    14. return 0;
    15. }
    Ne, das ist kein Decompile Error, dies ist tatsächlich möglich.
    Aber nur im IL, bei C# oder C++ nicht, denn wenn du z.B. ein Zuweisung hast mit objeckt.A = 33; und jetzt hat das Objekt 2 mal die Eigenschaft A nur mit unterschiedlichen typen, dann weiß der Compiler nicht, was er machen soll. Der IL aber schon, denn hier ist der Datentyp bei der Zuweisung oder auch beim Laden eines Wertes mit angegeben:
    ah, danke net to kow :D
    @Bluespide weißt du auch was methodof ist ?
    Speziell evt.:

    Quellcode

    1. ​methodof(PlcOperand..ctor(PlcOperandType)).MethodHandle;

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Facebamm“ ()

    Was spricht gegen unterschiedliche Variablen, denen du die Werte via Überladung (Setter) setzt?
    Im Getter gibst du dann das zurück, was gesetzt ist.


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Acr0most es ging eher um die Benennung, denn im quellcode hast du viel Variablen mit den Gleich namen aber unterschiedlichen Typen wie zum Beispiel ein int mit dem Name AAA und ein String mit dem Namen AAA

    C#-Quellcode

    1. class Test {
    2. private int _aaa;
    3. private string _aaa;
    4. }


    und das sollte so nicht möglich sein.

    @Bluespideich konnte es bis jetzt noch nicht testen, gebe aber dann bescheid :D