Εισαγωγή στη C#

1)Τι είναι η C#;

Η C# είναι μία ολοκληρωμένη αντικειμενοστραφής γλώσσα προγραμματισμού σχεδιασμένη για τη δημιουργία λογισμικού σε .Net Framework.

  • Τα πάντα στη C# είναι αντικείμενα
  • Παρέχει άμεση πρόσβαση σε τεράστιες βιβλιοθήκες κλάσεων του .Net Framework
    & ασφάλεια των τύπων της.

2)Απλό παράδειγμα C# προγράμματος:

Θα δούμε παρακάτω τη σύνταξη και τη δομή ενός απλού προγράμματος (Console Application) στη C# που εμφανίζει το μήνυμα ‘’Hello World’’ και θα αναλύσουμε γραμμή γραμμή τα μέρη του:

 

1.    using System;      

2.    namespace MyNamespace 
3.    
4.    {
5.       class Helloworld   
6.       {
7.        static void Main() 
a.        {
i.          Console.WriteLine("Hello World");
ii.          Console.ReadKey();

b.        }
8.       }
9.      }

3)Χώροι ονομάτων (Namespaces):

Σε ένα C# πρόγραμμα χρησιμοποιούμαι Namespaces για την οργάνωση του κώδικα μας.
Στο παραπάνω πρόγραμμα χρησιμοποιήσαμε τον χώρο ονομάτων System (γραμμή 1 του παραδείγματος) μέσο της λέξης κλειδιού using ,το οποίο περιλαμβάνει έτοιμες κλάσεις και μεθόδους του .ΝΕΤ με έτοιμο επαναχρησιμοποιήσιμο κώδικα!

Ένα Namespace μπορεί να περιέχει τους εξής τύπους :

• Namespaces
• Classes
• Delegates
• Enums
• Structs
• Interfaces

Για τη δημιουργία ενός δικού μας Namespace χρησιμοποιούμε τη δεσμευμένη λέξη-κλειδί namespace (γραμμή 2), έτσι η κλάση Helloworld (γραμμή 4) εμπεριέχεται στο MyNamespace που δημιουργήσαμε.

Στη συνέχεια του κώδικα μπορούμε να δούμε πως μπορούμε να εμφανίσουμε στη γραμμή εντολών το μήνυμα "Hello World". Η μέθοδος Main() (γραμμή 6) περιέχει την εντολή Console.WriteLine("Hello World"); ,η οποία εμφανίζει το τελικό μήνυμα.

ΠΑΡΑΤΗΡΉΣΕΙΣ:

  • Η κλάση Console ανήκει στο χώρο ονομάτων System
    και η WriteLine() είναι μέθοδος της Console.
    Εάν δεν χρησιμοποιούσαμε την εντολή using System; Η εντολή θα συντασσόταν System.Console.WriteLine("Hello Word");

  • Χρησιμοποιούμε την τελεία ανάμεσα από Namespaces, κλάσεις και μεθόδους για να δείξουμε τι εμπεριέχεται σε τι. Πχ.
namespace N1     // N1
{
    class C1      // N1.C1
    {
        Method() C2   // N1.C1.C2()
        {
        }
    }
    namespace N2  // N1.N2
    {
        class C2   // N1.N2.C2
        {
        }
    }
}
  • Την εντολή Console.ReadKey(); την χρησιμοποιούμε απλά για να κρατήσουμε το
    παράθυρο της γραμμής εντολών ανοικτό και να δούμε το μήνυμα που εμφανίζουμε,
    το πρόγραμμα απλά περιμένει ο χρήστης να πατήσει κάποιο κουμπί και στη
    συνέχεια τερματίζει.

4)Ψευδώνυμα (Aliases):

Μπορούμε να χρησιμοποιούμε ψευδώνυμα (Aliases) για να κάνουμε τον κώδικα μας ακόμα πιο σύντομο και να αποφύγουμε να γράφουμε μακροσκελείς εντολές. Πχ.

 

Μπορούμε να χρησιμοποιούμε ψευδώνυμα (Aliases) για να κάνουμε τον κώδικα μας ακόμα πιο σύντομο και να αποφύγουμε να γράφουμε μακροσκελείς εντολές. Πχ.
using  Alias = System.Console ;
            
namespace MyNamespace
{
    public class Helloworld
    {
       static void Main()
        {   
            Alias.WriteLine("Hello World");
            Console.ReadKey();
        }
     }
 }

5)Σχόλια:

Μπορούμε να χρησιμοποιούμε σχόλια στον κώδικά μας κυρίως για να εξηγούμε κάποια σημεία του, όπως τη λειτουργία μιας κλάσης/μεθόδου που δημιουργήσαμε ,έτσι ώστε να γίνεται ο κώδικας εύκολος στην ανάγνωση τόσο για μας ,αν θελήσουμε κάποια στιγμή να τον ανατρέξουμε να δούμε τη λειτουργία του, αλλά και για κάποιο τρίτο πρόσωπο που θα χρειαστεί να τον δει.

Τα σχόλια συντάσσονται χρησιμοποιώντας αυτόν τον συμβολισμό ( // ) ,εάν επρόκειτο για μία γραμμή σχολίου:
//Αυτό είναι ένα σχόλιο

ή αν το σχόλιο απαιτεί παραπάνω γραμμή με αυτόν τον τρόπο:
/* Αυτό είναι
ένα σχόλιο */

Με τον τρόπο αυτό ο compiler προσπερνάει οτιδήποτε βρίσκεται μετά τα εισαγωγικά και δεν επηρεάζει το τελικό αποτέλεσμα του προγράμματος.

Παραδείγματα σχολίων:

Console.WriteLine("Hello World"); //Output a greeting

Console.WriteLine("Hello World"); /*Output
a greeting*/

Π Ρ Ο Σ Ο Χ Η
Εάν χρησιμοποιούσαμε τα διπλά εισαγωγικά μπροστά από την Console.WriteLine κάπως έτσι: // Console.WriteLine("Hellow Word"); Output a greeting ,τότε ο compiler θα προσπερνούσε αυτήν την εντολή σαν σχόλιο και το αποτέλεσμα της δεν θα εμφανιζόταν ποτέ στην οθόνη.

5)Δήλωση μεταβλητών, Ανάθεση-Σύγκριση τιμών &
Εμφάνιση αποτελεσμάτων στην οθόνη:

Σε ένα C# πρόγραμμα μπορούμε να δηλώσουμε μεταβλητές σε οποιοδήποτε σημείο του προγράμματος , πριν τις χρησιμοποιήσουμε για κάποια πράξη.

  • Για να δηλώσουμε μία μεταβλητή ορίζουμε πρώτα τον τύπο της και ύστερα το όνομα της.
    πχ. int x; string y1; long z_2;

 

  • Για να κάνουμε ανάθεση τιμής σε μεταβλητές χρησιμοποιούμε το ίσον ( = )
    πχ. x = 5; Ή η ίδια εντολή ως int x = 5; άν την δηλώναμε ταυτόχρονα μαζί με την
    ανάθεση της τιμής. char y = 'h'; Κτλ.

 

  • Για σύγκριση μεταβλητών ισχύουν :
    >= μεγαλύτερο ή ίσο
    <= μικρότερο ή ίσο
    == ίσο
    != διάφορο

 

  • Για να εμφανίσουμε το περιεχόμενο μεταβλητών στην οθόνη η C# χρησιμοποιεί τη μέθοδο WriteLine() με δύο τρόπους σύνταξης.

 

Παρακάτω θα δούμε σε ένα απλό πρόγραμμα που εμφανίζει το άθροισα δύο ακεραίων τον τρόπο δήλωσης μεταβλητών, την ανάθεση τιμών σε αυτές και τέλος πώς να εμφανίζουμε μεταβλητές με τη χρήση της WriteLine() :

using System;

namespace MyNamespace
{
    class Sum_x1_x2
    {
        static void Main()
        {   
            // 1ος τρόπος δήλωσης στην αρχή του προγράμματος
            int x1 = 5; 
            int x2 = 3;
            int y = x1 + x2;
            
            // 1ος τρόπος σύνταξης της WriteLine
            Console.WriteLine(" Το αποτέλεσμα είναι : {0} ", y) ;
            
            /* To output είναι: Το αποτέλεσμα είναι : 8
               Στη θέση του συμβόλου {0} η WriteLine 
               τοποθετεί την τιμή που έχει το y.Το μηδέν 
               μέσα στα άγκιστρα δείχνει τη θέση 
               της μεταβλητής μετά το κόμμα μέσα στη Writeline.
               Αν θέλαμε να εμφανίσουμε παραπάνω μεταβλητές
               θα κάναμε το εξής:
               Console.WriteLine("{0} + {1} = {2}",x1,x2,y);
               Το output εδώ θα ήταν : 5 + 3 = 8
               Στη θέση του {0} πάει η τιμή της x1, στο {1} η x2 
               και στο {2} η y.
            */

            string z = "!!!"; /*2ος τρόπος δήλωσης κατά τη ροή του 
                                προγράμματος */

           // 2ος τρόπος σύνταξης της WriteLine
            Console.WriteLine("To αποτέλεσμα είναι : {0}" +z ,y);
            
            /* Γιατί +z ??? 
               Στη WriteLIne οτιδήποτε είναι μέσα σε εισαγωγικά
               αποτελεί string. Η μεταβλητή z είναι επίσης ένα
               string. Βλέπουμε λοιπόν ότι μπορούμε να προσθέσουμε
               δύο strings μαζί και το αποτέλεσμα θα έιναι 
               το ένα string να "κολλήσει" πίσω από το άλλο. 
               Το output εδώ θα δώσει : To αποτέλεσμα είναι : 8!!! 
             */

             Console.ReadKey();

        }
    }
}

ΠΑΡΑΤΗΡΗΣΕΙΣ:

 

  • Η C# είναι Case sensitive ,
    Για να δηλώσουμε την Main() χρησιμοποιήσαμε κεφαλαίο M! Θα ήταν λάθος να λέγαμε static void main(). ο compiler εξ ορισμού καταλαβαίνει ότι το βασικό πρόγραμμα βρίσκεται στην μέθοδο Main() και όχι στην main().
    Εννοείται πως int y ≠ int Y !

 

  • Keywords,
    Στη C# υπάρχουν δεσμευμένες λέξεις-κλειδιά.
    Δεν μπορούμε να δηλώσουμε πχ μια μεταβλητή με όνομα Console/int/void/class,
    όπως επίσης δεν μπορούμε να βάζουμε αριθμό μπροστά από μεταβλητή!

 

  • Σταθερές ( Constans ),
    Η δήλωση των σταθερών στο C# πρόγραμμα όπως πχ. Η τιμή του π=3.14. γίνεται με αυτόν τον τρόπο : const double p = 3.14;

 

  • Στη WriteLine() υπάρχουν 2 τρόποι εμφάνισης μεταβλητών.
    1ος τρόπος ως συνεχόμενο string
    2ος τρόπος με int μεταβλητές :
    πχ.
    int x = 1;
    int y = 2;
    int sum = x + y;

 

//1ος τρόπος
Console.WriteLine(x + "+" + y + "=" + sum);
// outuput 1+2=3

//2ος τρόπος
Console.WriteLine("{0}+{1}={2}",x,y,sum);
//output 1+2=3