Operator ".=" ?



  • Gibt es den Operator

    x .= y für x = x.y
    

    in C#? Ich bin nicht sicher und das schnelle googeln nach Google: komplexe zuweisung gab nur Ergebnisse für +=, -=, *=, /= %= usw. aber nicht für .=



  • Was ist denn . für ein Operator? Den habe ich noch nie benutzt außer um bei php Strings zu verbinden



  • Gibt es nicht.



  • Andorxor schrieb:

    Was ist denn . für ein Operator? Den habe ich noch nie benutzt außer um bei php Strings zu verbinden

    http://msdn.microsoft.com/de-de/library/6zhxzbds.aspx
    Was hat das mit PHP zu tun, wir sind hier in einem C#-Forum... Ich finde, wenn man hier eine Antwort schreibt, sollte man wenigstens C#-Grundkenntnisse besitzen.



  • Hallo QwertyUI,

    Du verstehst das geschriebene nicht ganz richtig.
    Diesen . Punktoperator kann man so nicht benutzen.

    Diese Anweisung...

    x .= y für x = x.y
    

    ...ist Quatsch.

    Dieser Punktoperator wird für Memberzugriffe benutzt.

    Also zum Beispiel

    button1.Text = "Quatsch";
    

    In C++/CLI würde das so aussehen...

    button1->Text = "Quatsch";
    

    Und da gibt es diese Form auch nicht...

    x ->= y für x = x.y
    

    Du greifst hier Leute an, die auf sicher Grundkenntnisse in C# haben, nur weil Du den Text in dem Link, den Du selbst gesetzt hast falsch verstehst.
    Ist schon voll ober Hammer.

    Gruß, Doug_HH 😮



  • Naja, die einen scheitern an den "Grundkentnissen", die anderen am lesen. Der gepostete Link erklärt doch gleich am Anfang um was es bei . geht.

    Der Punktoperator (.) wird für Memberzugriff verwendet. Der Punktoperator gibt einen Member von einem Typ oder einem Namespace an. Der Punktoperator wird beispielsweise verwendet, um auf bestimmte Methoden in .NET Framework-Klassenbibliotheken zuzugreifen:

    Der Rest des Artikels ist ebenfalls simple zu verstehen. Ich finde, bevor man postet, sollte man sich solche Artikel genau durchlesen.



  • Doug_HH schrieb:

    Du greifst hier Leute an, die auf sicher Grundkenntnisse in C# haben, nur weil Du den Text in dem Link, den Du selbst gesetzt hast falsch verstehst.
    Ist schon voll ober Hammer.

    Gruß, Doug_HH 😮

    OK, du hast recht. Ich war vielleicht ein bisschen zu aggressiv...
    Was ich meine, ist folgendes (nur ein Beispiel):

    struct AnyStruct
    {
    int a;
    AnyStruct y;
    }
    
    class Program
    {
    AnyStruct x;
    void Main()
    {
    x.y.a = 10;
    x = x.y; //geht hier x .= y;?
    }
    

    Oder vielleicht etwas realistischer (mit Methoden):

    RegistryKey key = Registry.CurrentUser;
    key = key.OpenSubKey("Control Panel",true);
    // geht hier key .= OpenSubKey("Control Panel",true);?
    


  • unfug schrieb:

    Gibt es nicht.



  • @QwertyUI

    Tut mir Leid, aber ich finde das sollte gesagt werden; Du hast nicht den blassesten Schimmer von C#



  • Ich schätz mal du verwechselst SOLCHE operatoren mit Rechenoperatoren..

    Plus Minus Mal Teilen und Modulo sind ja alles Rechnungen. aber Punkt wär mir ziemlich unbekannt als Rechnung..

    .= ist nur in PHP valid soweit ich das weiss.. halt String erweiterung

    $string = "Mein Name ist";

    $string .= " Hans";

    das wäre dann halt "Mein Name ist Hans" aber in C# geht das nicht.. wie die anderen sagten. gibts das also nicht



  • Ich denke mal das was er sucht ist sowas wie aus VBA wo man solche Spielerein machen kann:

    sub irgendwas()
    
     dim irgendeinobjekt as object
    
     irgendeinobjekt.wasweißich = 100
     irgendeinobjekt.wasweißer = "bernd"
     irgendeinobjekt.wasweißtdu = neues_irgendeinobjekt
    
    end sub
    

    was man ja in vba dann durch die widerlichen withblöcke ersetzen kann
    Um es klarzustellen, lasst die Finger von VBA!

    sub irgendwas()
    
     dim irgendeinobjekt as object
    
     with irgendeinobjekt
     .wasweißich = 100
     .wasweißer = "bernd"
     .wasweißtdu = neues_irgendeinobjekt
    end with
    
    end sub
    

    ist es ungefähr sowas??Aber wie schon gesagt wurde,ist in einer ordentlichen Sprache wie C# nicht möglich, genauso wie du versuchst damit zu "rechnen" mach dich nochmal über Arithmetische Operatoren schlau.



  • Doug_HH schrieb:

    In C++/CLI würde das so aussehen...

    button1->Text = "Quatsch";
    

    In C++ (und das wird in managed C++ nicht anders sein) werden Memberzugriffe ebenfalls über den Punkt-Operator realisiert. Erst, wenn nicht direkt über ein Objekt, sondern über einen Zeiger auf ein Objekt zugegriffen werden soll, wird der Pfeiloperator benutzt. Er ist äquivalent zu "(*Objekt).".


Anmelden zum Antworten