Autor Beitrag
goodandwealth
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 02.06.14 00:41 
Hi there,

diese Zeile:
ausblenden C#-Quelltext
1:
Console.WriteLine("wight: " + ((Porsche)A).wight);					
zeigt das Gewicht, diese aber nicht:
ausblenden C#-Quelltext
1:
Console.WriteLine("wight: " , ((Porsche)A).wight);					


Jetzt ist plus und komma zwar nicht irgendwie verschieden, aber ich hätte doch mit einem error gerechnet,
wenn sich das nicht verträgt?

Warum kann der Methodenaufruf von writeline die 'Kommaform' zwar annehmen, aber zeigt kein Gewicht?
Man such sich zu tode, wenn man das versehentlich irgendwo einbaut.

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
here the whole code: 

// Base clase Auto 
 public class Auto 
 {              }

// derivade clase Porsche
public class Porsche: Auto 
    {         
      public int wight { get; set; } 
         
      public Porsche() //Construktor 
        { this.wight = 10; } 
    }

// this clase just take any reference of Auto types
public class AnyObject 
 {  
       public void anyTask(Auto A)
        {     
            if (A != null)
           { 
                if (A is Auto)
              {  
                 Console.WriteLine("wight: " + ((Porsche)A).wight); 
                 }
                 else
                      Console.WriteLine("unknown type."); 
         }
    } 
}

// here we have program part of this app, where the class AnyObject is used
 class Program   
  {  
       static void Main(string[] args)
        {            
             Porsche p = new Porsche();             
             Auto a = p;
              // base clase gets  a referenc of a subclase
            AnyObject myOb = new AnyObject(); 
            myOb.anyTask(p);              
           Console.ReadLine(); 
        }
 }


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 02.06.14 01:27 
Zitat:
Jetzt ist plus und komma zwar nicht irgendwie verschieden


Das ist beides in himmelweiter Unterschied - zumindest in C#

Das + ist ein Operator, den du sogar überladen kannst. Bei Zahlen addiert er, bei Strings fügt er Diese zusammen.
Was genau passiert, hängt davon ab, in welchem Zusammenhang der Operator verwendet wird. Wenn es mal nicht eindeutig sein sollte: Auf der MSDN-Doku gibt es garantiert ausreichend Informationen für diesen konkreten Fall, wenn er im .Net-Framework enthalten ist.
Hier findest du eine Liste der Operatoren. Unten bei den Referenzen findest du auch einen kurzen Artikel zu überladbare Operatoren.


Das Komma ist kein Operator, es trennt zwei Dinge voneinander, in diesem Fall die Parameter.
WriteLine nutzt intern die string.Format-Methode, der an erster Stelle der Format-String und danach beliebig viele Parameter übergeben werden, die dann die vordefinierten Platzhalter im Format-String ersetzen.

Ich weiß nicht, ob string.Format bei zu vielen Parametern eine Exception wird, aber ich vermute eher nicht, weil das für die Methode ja keine Ausnahme darstellt. Der eine Parameter wird also einfach ignoriert, weil im Format-String vorher keine Position für diesen Parameter angegeben wurde.

Richtig wäre es so:

ausblenden C#-Quelltext
1:
Console.WriteLine("wight: {0}" , ((Porsche)A).wight);					



Das lässt sich aber auch mit etwas Zeit und Google lösen, du musst nur nach der Methoden-Definition suchen, die du siehst, wenn du in Visual Studio mit der Maus über den Methoden-Namen fährst.
goodandwealth Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 02.06.14 21:49 
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
Jetzt ist plus und komma zwar nicht irgendwie verschieden



Richtig wäre es so:

ausblenden C#-Quelltext
1:
Console.WriteLine("wight: {0}" , ((Porsche)A).wight);					



Wie? Richtig? unter welchem Aspeckt denn?
Hast du nur die Betreffzeile gelesen?
Diese Zeile:
ausblenden C#-Quelltext
1:
Console.WriteLine("wight: {0}" , ((Porsche)A).wight);					

stand schon oben in meiner Frage.

Wenn es dir wehtun würde würde ich jetz in meinen Monito reinschlagen.
Deien Antwort ist nichts weiter als grosskozerei
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 02.06.14 22:12 
Du hast folgendes geschrieben:

user profile icongoodandwealth hat folgendes geschrieben Zum zitierten Posting springen:
diese Zeile:
ausblenden C#-Quelltext
1:
Console.WriteLine("wight: " + ((Porsche)A).wight);					
zeigt das Gewicht, diese aber nicht:
ausblenden C#-Quelltext
1:
Console.WriteLine("wight: " , ((Porsche)A).wight);					


Console.WriteLine("wight: " + ((Porsche)A).wight);

Console.WriteLine("wight: " , ((Porsche)A).wight);



So viel zum Thema Großkozerei!

Für diesen Beitrag haben gedankt: Yankyy02
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.06.14 22:24 
Zitat:
Wenn es dir wehtun würde würde ich jetz in meinen Monito reinschlagen.
Deien Antwort ist nichts weiter als grosskozerei


Eine extrem intelligentes Vorgehen wenn man Hilfe sucht.
Das motiviert extrem es nochmal mit anderen Worten zu versuchen. :roll:

Für diesen Beitrag haben gedankt: Yankyy02
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 138
Erhaltene Danke: 21

Win 11 x64
C# (VS 2022 - Rider)
BeitragVerfasst: Mo 02.06.14 22:30 
Will ja kein Diethylether ins Feuer gießen aber 3 Post's und schon die Community gegen sich klingt Rekord verdächtig.
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 02.06.14 22:41 
@Yankyy:

Wenn du lange genug auf Foren unterwegs bist, siehst du, dass es immer wieder so Leute gibt. ^^

Es kommt aber auch vor, dass so ein "Streit" auf ein Missverständnis beruht, schließlich ist seine Antwort und auch das, was er im Start-Beitrag geschrieben hat, schlicht falsch.

Von daher würde ich ihm auch weiterhin helfen, voraus gesetzt, er stellt eine vernünftige Frage und ist in der Lage, die Hilfe, die ihm geboten wird, anzunehmen.
Yankyy02
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 138
Erhaltene Danke: 21

Win 11 x64
C# (VS 2022 - Rider)
BeitragVerfasst: Mo 02.06.14 22:51 
@Palladin007,

dir gilt meines Erachtens nach besonderer Respekt denn wenn mir jemand mehr oder weniger mit Schläge droht
Zitat:
Wenn es dir wehtun würde würde ich jetzt in meinen Monitor reinschlagen.


sinkt meine Hilfsbereitschaft rapide auf null. oder anders ausgedrückt
ausblenden C#-Quelltext
1:
2:
3:
4:
if(aggressiv)
{
  motivation = null;
}


Aber ich finde es gut dass es auch noch Leute wie dich gibt die dass entspannt nehmen und sich davon nicht abhalten lassen weiterhin Unterstützung bei jedem noch so trivial wirkendem Problem zu geben!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 02.06.14 23:17 
Ich denke, hier ist alles gesagt, daher mache ich mal zu.

@goodandwealth: Dein Verhalten ist völlig inakzeptabel und wird beim nächsten Mal auch nicht mehr toleriert werden. Überlege mal bitte, wer hier von wem Hilfe will und wer mal ein bisschen Dankbarkeit zeigen könnte. Palladin007 hat Dir eine korrekte, fundierte und ausführliche Antwort gegeben. Lesen musst Du sie dann schon noch richtig ...

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.