BinaryWorks.it Official Forum
Home
|
Profile
|
Register
|
Active Topics
|
Members
|
Search
|
FAQ
All Forums
eXtreme Movie Manager 8, 9, 10 Forum
Scripts
IMDb API & Web Scraping
Note:
Only the poster of this message, and the Moderator can edit the message.
Screensize:
640 x 480
800 x 600
1024 x 768
1280 x 1024
UserName:
Password:
Format Mode:
Basic
Help
Prompt
Format:
Font
Andale Mono
Arial
Arial Black
Book Antiqua
Century Gothic
Comic Sans MS
Courier New
Georgia
Impact
Lucida Console
Script MT Bold
Stencil
Tahoma
Times New Roman
Trebuchet MS
Verdana
Size
1
2
3
4
5
6
Color
Black
Red
Yellow
Pink
Green
Orange
Purple
Blue
Beige
Brown
Teal
Navy
Maroon
LimeGreen
Message:
* HTML is OFF
*
Forum Code
is ON
Smilies
Ah, er lebt noch :) Es gibt 2 Arten von Datentypen: - Werttypen (Value Types) - Verweistypen (Referenced Types) Um es für dich aber herunterzubrechen, gibt es: - einfache Typen (bool, int, char) - Klassen (String, DateTime), haben Methoden und Eigenschaften Eigenschaften von Klassen können wiederum einfache Typen oder auch weitere Klassen sein. Dann gibt es sogenannte "IEnumerables". Das sind Listen, Arrays, Dictionaries, Sets, Collectables usw. Das sind eigentlich auch nur Klassen (bei Arrays bin ich mir grad nicht sicher, aber erstmal egal) mit Methoden und Eigenschaften und sie beinhalten mehrere Einträge ein und desselben Typs. Also mehrere Einträge eines einfachen Typs oder einer Klasse. Soweit so gut. Welchen Datentyp eine Variable nun hat, erkennst du auf zweierlei Arten: 1. Im Code einfach mal den Cursor auf eine Klasse (nicht auf die Variable, sondern auf die Deklaration) setzen und dort F12 drücken... dann springst du in die Klasse rein und dort siehst du, was die alles beinhaltet. Du kannst dich mit F12 auch weiter durchhangeln. 2. Oder du setzt einen Breakpoint und checkst beim Debuggen die Schnellüberwachung (Rechtsklick auf eine Variable -> Schnellüberwachung) oder unten links unter "Lokal" die Übersicht der vorhandenen Variablen. In der rechten Spalte steht da der Typ. Klassen kannst du aufklappen, um deren Unterstrukturen (Eigenschaften) zu sehen. Wenn in der Mitte "Count = ..." oder "[irgendeine Zahl]" steht, dann ist es eine Liste, die man auch aufklappen kann. Bis auf Strings kannst du Klassen nicht direkt ausgeben bzw. nur dann, wenn eine ToString()-Methode für diese implementiert ist (wie bspw. bei DateTime). Soweit verständlich? Wichtig ist noch der Null-Check: Du musst, bevor du irgendein Element ansprichst, immer erst prüfen, dass es nicht null ist. Dafür ist dieses "?" da. Bspw. dieser Abschnitt: [code] foreach (AlternateTitle alternateTitle in alternateTitles) { sbExport.AppendLine($"{alternateTitle.Country?.ID}: {alternateTitle.Title}"); }[/code] Hier wird geprüft, ob Country null ist und nur, wenn das nicht der Fall ist, wird versucht, die ID vom Land zu lesen und auszugeben. Man könnte stattdessen auch schreiben: [code]foreach (AlternateTitle alternateTitle in alternateTitles) { if (alternateTitle.Country != null) { sbExport.AppendLine($"{alternateTitle.Country.ID}: {alternateTitle.Title}"); } }[/code] Falls Country null wäre, hätte das Programm ein Zugriffsproblem, wenn es versucht, von etwas nicht vorhandenem die Eigenschaft "ID" auszulesen. Zuguterletzt habe ich in meiner Bibliothek dafür gesorgt, dass alle Liste nicht null sind. D.h. sie sind zumindest immer da, auch wenn sie leer sein sollten, womit ein Null-Check für die Listen entfällt.
Check here to include your profile signature.
BinaryWorks.it Official Forum
© Binaryworks.it
Generated in 0.06 sec.