Alternate 5

C# Fragen zum Programmieren und Bedeutungen

Xsp

Lt. Commander
Registriert
Jan. 2010
Beiträge
1.711
Hallo CB Community.
Dies ist meine erste Woche in dem Bildungsgang, Informatonstechnischer Assistent.
Nun habe ich heute zum ersten mal das Fach Programmieren gehabt, und der Lehrer hat uns einen kleinen Einblick in die Einführung in C# (CSharp) gegeben.

Ich muss das noch sagen das ich noch nie Programmiert habe, und es super gerne Lernen möchte.

Programiert haben wir heute was ganz simples.

// C# Hello World

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hello_World
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World");
}
}
}

Nun gut, dass war nur abschreib Arbeit. Das war einfach.

Nun mussten wir in der Schule Fragen Beantworten.

Welche Bedeutung hat "using"?
Mit der using-Anweisung können Programmierer angeben, wann Objekte, die Ressourcen beanspruchen, freigegeben werden sollen.

Welche Bedeutung hat "namespace"?
System ist ein Namespace und Console ist eine in diesem Namespace erhaltene Klasse. Das using-Schlüsselwort kann verwendet werden, um nicht den ganzen Namen angeben zu müssen.

Welche Bedeutung hat "class"?
Class ist eine Klasse/Bauplan.
Definiert Daten und das Verhalten des Datentyps.

Welche Bedeutung haben // ?
Die Striche bedeuten ein Kommentar eingefügt wird.
Hat auf das Programm keinerlei Auswirkung.
Hilft den Programmierer das Programm zu Verstehen.

Welche Bedeutung haben {} ?
Dazu habe ich keine Definition gefunden.
Bitte um Erklärung.


Welche Bedeutung hat das Simikolon?
Dazu habe ich keine Definition gefunden.
Bitte um Erklärung.


Welche Bedeutung hat "WriteLine"?
Dazu habe ich keine Definition gefunden.
Bitte um Erklärung.


Jetzt habe ich ein Problem, und zwar, dass ich die Bedeutungen die ich gefunden habe nicht verstehe. Ich habe diese aus http://msdn.microsoft.com/de-de/vcsharp/default.aspx

Diese seite ich mir viel zu komplieziert, was Definitionen bzw. Bedeutungen angeht.

Villeicht könntet Ihr euch ein bisschen Zeit nehmen und mir die Begriffe näher bringen.
Das wäre super.

Vielen Dank.

greeetz
Xsp

EDIT: Ich weis das ihr das wisset, wie es aussieht. Wollte euch das aber nochmal zeigen.
 
Zuletzt bearbeitet:
Jaja der ITA :D.

Habe dort mit c++ angefangen.

Using ist zu vergleichen mit dem include. ohne einen verweis , kennt der compiler die Befehle net.

class ist eine klasse. dort stehen Atribute und Methode d.h du kannst eine Klasse erstellen und davon ein Objekt. Z.b die Klasse spieler mit den Atributen Punkte, Name und den Methoden Setze Punkte, Setze Name.
Davon erzeugst du dann Objekte, Spieler1, Spieler2 usw.

// die sind für Kommentare, sehr wichtig für den späteren überblick, wenn man 20-30k Zeilen hat oder mehr.

{} in die kommt der Inhalt der Methoden z.b oder funktionen, also sozusagen der Inhalt.

das simikolon beendet eine befehlszeile, meist muss jede befehlszeile mit so einem dingen enden. ausnahmen sind z.b schleifen.

und wirte line sagt ja schon der name ;).

Bei namespace lass ich mal wikipedia den vortritt:
Der Namensraum (englisch: „namespace“) ist ein Begriff aus der Programmierung. Dabei werden – vor allem bei der objektorientierten Programmierung – die Namen für Objekte in einer Art Baumstruktur angeordnet und über entsprechende Pfadnamen eindeutig angesprochen.

Hat euer Lehre das nicht erklärt?!
 
Zuletzt bearbeitet:
Die geschweiften Klammern ({ und }) dienen der Trennung verschiedener "Bereiche", zum Beispiel Namespaces, Klassen und Methoden.

Das Semikolon (;) schließt eine Anweisung ab, das bedeutet diese kann auch über mehrere Zeilen verteilt sein (zwecks Übersichtlichkeit, auch nicht beliebig), wird aber erst mit dem Semikolon abgeschlossen.

System.Console.WriteLine ist eine Methode die Strings (Zeichenketten, d.h. Text) auf der Konsole ausgibt. Der Methode werden Argumente in Klammern hinter dem Methodennamen übergeben, hier der String "Hello World".

Übrigens würde auch folgendes reichen um die selbe Wirkung zu erzielen:
Code:
using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World");
    }
}
 
Zuletzt bearbeitet: (links, beispiel)
{} bezeichen den anfang bzw. das ende von funktionen und so

also if (bedingung) { code }

; ist das ende einer Programmcodezeile, zeilenumbruch bedeutet nicht automatisch ne neue zeile (damit kannst du langen code auch gut unterteilen)

WriteLine ist eine Funktion von Console, damit übergibst du an "Console" dass du "write line" mit dem wert machen willst
und wie der Name das schon sagt schreibt das eine Zeile in die Console....das ganze gäbs auch sicher mit sachen wie FontSize und ähnliches
 
heyho

ich bin zwar keiner aus der c# ecke aber einiges kann ich dir hier grad schon anhand anderer programmiersprachen bzw. dem normalen C erklären was mir in den kopf kommt ^^ bitte aber nochmal von anderen korrekturlesen lassen bevor ich dich auf den falschen zweig bringe ;)

using: heißt einfach das du andere dateien mit ausporgrammierten funktionen etc einbindest und dies funktionen etc nutzen kann.

// : bedeutet das du dort ein Kommentar einfügst. Sprich deine eigenen Programmzeilen kommentieren kannst damit du in einem halben jahr noch weißt was du angestellt hast. bei größeren projekten von nöten !

{} : diese zwei klammern deuten den anfang und das ende einer funktionan. Sprich wenn du eine funktion o.ä. anfängst zu programmieren startest du mit { und wenn die funktion /prozedur fertig ist beendest du diese mit }

writeline: bedeute das selbe wie es übersetzt heißt ;) also ganz einfach das du damit eine textausgabe machst und diese am bildschirm angezeigt wir :)

Semikolon: das bezeichnet das ende einer zeile. also wenn du einen befehl fertig hast udn eine neue Zeile anäfngst ein semikolon setzen damit der Compiler weiß das ein neuer befehl kommt.


so bei den anderen sachen lasse ich den anderen mal vortritt da ich mir da nicht sicher bin ... wie gesagt komme aus der delphi / pascal ecke und kann nur bissl c-programmieren aus diversen robotikprojekten

LG

EDIT : Argh zu langsam getippt und zu viel geschieben :D da waren doch einige schneller als ich ^^
 
Erstmal danke, nun habe ich schon was verstanden. Ich wusste Ihr CB´ler seit spitze. ;)

Hat euer Lehre das nicht erklärt?!
Nein, das sollten wir ja selber herrausfinden im Internet. Wir haben einen Zettel bekommen wo die Fragen druafstehen.

Bleibt das am Anfang immer gleich, bei jeder Programmierung?
// C# XXX

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XXX


kann ich das stumpf auswendig lernen, oder gibt es da noch andere Sachen die dort hinkommen können?
 
Zuletzt bearbeitet:
Ok, dann ist gut :D.

Dachte er schreibt da was und lässt euch damit allein^^.
 
Es gibt zig - nein eher hunderte - Möglichkeiten was du alles noch außer den paar Namespaces nutzen kannst, deshalb nein.
Für den Anfang reicht allerdings eigentlich das was ich oben gepostet habe, also using System;.

Zu Beginn ist es nicht wichtig all diese Namespaces zu kennen o.ä., sondern die grundlegenden Prinzipien zu verstehen, die in allen Sprachen (mehr oder weniger) gleich sind: Verzweigungen, Schleifen, Funktionen usw.
Mach dir keinen Kopf, das kommt alles.
 
Zuletzt bearbeitet:
godofkills schrieb:
Dachte er schreibt da was und lässt euch damit allein^^.

Hat er doch. Er ist seinem Bildungsauftrag eigentlich nicht nachgekommen. Irgendwie eine seltsame Lehrmethode, klingt aber stark nach den Erfahrungen, die ich mit Berufsschullehreren vor einigen Jahren machen durfte. Die haben teilweise einfach keine Lust.

Wenn es immer so wäre, bräuchte man keine Schulen mehr. Dann könnte jeder alles selbst im Internet erlernen...
 
Bleibt das am Anfang immer gleich, bei jeder Programmierung?
// C# XXX

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XXX


kann ich das stumpf auswendig lernen, oder gibt es da noch andere Sachen die dort hinkommen können?

Theoretisch ja, praktisch nein ;)

also im prinzip bleibt es vom aufbau her schon so, allerdings wird sich oben bei den "usings" usw. mit der zeit immer noch was dazu gesellen ... sprich das du evtl. die ein oder adnere datei noch dazu einbindest usw usw. Auswendig lernen bringt meiner meinung nach in der Programmierung eh nichts. du musst verstehen was du da werkelst und nicht nur einfach hinschreiben ;)

LG
 
Je nach mit welchen SDK du da arbeitest ändern sich die Verweise und damit die using Zeilen ständig.
Für einfache Programme, die ihr da wohl erstmal macht reicht was da steht.

Und wie gesagt die hier "//" stehen für Kommentare. Kein Programm muss damit anfangen aber es sieht professioneller aus, wenn man ein gut kommentiertes Programm hat.
 
Zuletzt bearbeitet:
Ich programmiere zwar kein c#, sondern java und c++, aber eins möchte ich noch anmerken.

Die geschweiften Klammern dienen keinesfalls nur für den Beginn und das Ende von Funktionen bzw. Methoden, Klassen etc.
Sie grenzen generell Blöcke ein und umfassen somit Verbundsanweisungen.

Wie schon Zeroflow gesagt hat beispielsweise von if (Bedingungen) {Code}, wobei die if-Anweisung natürlich keine Funktion ist.

Ausserdem legst du mit den geschweiften Klammern den scope fest, also den Gültigkeitsbereich von Variablen.

Ein gut gemeinter Tip: Auf alle deine Fragen wird in jedem vernünftigen Programmier-Handbuch in den ersten beiden Kapiteln geantwortet, mit Ausnahme von vlt "namespace" und "using".
 
inter2k3 schrieb:
Ausserdem legst du mit den geschweiften Klammern den scope fest, also den Gültigkeitsbereich von Variablen.

Wenn man davon absieht, dass man Variablen auch global deklarieren kann.
Auch wenn es ein no go ist!
 
Puhh....das muss ich mir ja keine Sorgen machen.

Aber Programmieren ist so wie Rechnungswesen, wenn man am Anfang nichts versteht ist man verloren, wenn es weiter geht.

Ich habe so das gefühl, dass ich das nicht versethe. Aber das ist grade mal der Anfang.

Irgendwie eine seltsame Lehrmethode, klingt aber stark nach den Erfahrungen, die ich mit Berufsschullehreren vor einigen Jahren machen durfte. Die haben teilweise einfach keine Lust.
Naja ich habe Lust sogar sehr viel, da es auch mein Traum ist, was im IT Bereich zu machen.
Die Hoffnung stirbt zuletzt.

Ach ja, was ich noch fragen wollte, bevor ich einen neuen Thread aufmachen.
Hilft es was wenn ich das Buch "C# in 21 Tagen" durchlese?
 
Ja, lies es dir durch. Du kannst daraus nur lernen. Vermutlich werden aber die ersten 3-4 Tage des Buches fuer dich bereits erstmal mehr als ausreichend sein. Programmieren ist keine Kunst, das ist lernen und logisches Denken. Wenn du erstmal die Grundbegriffe verstehst, ist es, zumindest bei C# von Relevanz zur Objektorientierung rueberzugehen, selbst wenns nur theoretisch ist.
 
The_1st_Knight schrieb:
Hat er doch. Er ist seinem Bildungsauftrag eigentlich nicht nachgekommen. Irgendwie eine seltsame Lehrmethode, klingt aber stark nach den Erfahrungen, die ich mit Berufsschullehreren vor einigen Jahren machen durfte. Die haben teilweise einfach keine Lust.

Wenn es immer so wäre, bräuchte man keine Schulen mehr. Dann könnte jeder alles selbst im Internet erlernen...

Selbst rausfinden ist besser als es vorgesetzt zu bekommen.
Lehre sollte Hilfe zur Selbsthilfe bieten, denn nur so wird man selbstständig.


@topic: Hohe Programmiersprachen wie c# usw. ist englisch ohne zeiten ;). besonders mit c# und VS2010 da, da alles automatisch vorgeschlagen wird.
 
War bei mir nicht der Fall. Denn wenn man wirklich was will dann sollte man in der Lage sein sich auch richtig dahinter zu Knien.
 
Manchmal fehlt grundlegendes Wissen um weiterzukommen - ich habs auch eigenstaendig gelernt, aber grundsaetzliche Theorien wie die der Objektorientierung wurde mir in der Schule beigebracht. Wobei das auch alles kein wirkliches Hexenwerk ist. Und das kann schon sehr frustrierend sein, schliess nicht immer von dir auf Andere.
 
OK. Dann werde ich mir mal das Buch durchlesen.
Und das Buch von Gallileo Visual Basic 2008 auch. Kapitel 2!

greeetz & Danke für die Bemühungen.
Xsp
 
Zurück
Oben