<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Γλώσσες προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/74/ShowForum.aspx</link><description>Τα πρώτα βήματα στις γλώσσες VB6, VB.NET, και C#</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39242.aspx</link><pubDate>Wed, 16 Jan 2008 22:15:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39242</guid><dc:creator>Alexander</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39242.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39242</wfw:commentRss><description>Κατάλαβα, ευχαριστώ πολύ! Απέφυγα να βάλω τον κώδικα γιατί ήταν αρκετός, την επόμενη φορά θα το κάνω!&lt;br&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39238.aspx</link><pubDate>Wed, 16 Jan 2008 21:20:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39238</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39238.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39238</wfw:commentRss><description>&lt;P&gt;Λίγος κώδικας = 1.000.000 λέξεις. Αν μας δείξεις την κλάση θα καταλάβουμε αμέσως. Αλλά η stack.empty()? Η μέθοδος empty υπάρχει στο stack της C++, όχι στο stack του .NET. &lt;/P&gt;
&lt;P&gt;Τώρα να υποθέσω ότι η στοίβα έχει οριστεί σαν πεδίο? Δηλαδή έχεις κάνει κάτι σαν αυτό?&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; Problem&lt;BR&gt;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/SPAN&gt; Stack stack;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; find_Solution()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while&lt;/SPAN&gt; (stack.Count !&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; 0)&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Object next &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; stack.Pop();&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return&lt;/SPAN&gt; next;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;null&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Αν έχεις κάνει κάτι τέτοιο, και προσπαθείς να δώσεις τιμή στην stack από άλλη κλάση πράγματι θα πάρεις warning γιατί ο compiler δεν μπορεί να ξέρει ότι εσύ κάπου αλλού θα δώσεις τιμή στην stack πριν καλέσεις την find_Solution. Αυτό δείχνει και ένα πρόβλημα στη&amp;nbsp;σχεδίαση της κλάσης Problem, ασχέτως γλώσσας. H find_Solution χρησιμοποιεί μία εξωτερική σε αυτή μεταβλητή την οποία δεν μπορεί να ξέρει αν έχει τιμή ή όχι. Μπορεί κάποιο άλλο κομμάτι κώδικα να πάει και να βάλει ένα null στο stack με αποτέλεσμα να σκάσει η find_solution χωρίς να καταλάβει το γιατί. Είναι πολύ καλύτερο να περνάς την stack ως παράμετρο στην find_Solution παρά να την έχεις σαν πεδίο.&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39234.aspx</link><pubDate>Wed, 16 Jan 2008 20:20:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39234</guid><dc:creator>Alexander</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39234.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39234</wfw:commentRss><description>Οκ, πιο πολύ σαν απορία το είχα, γιατί τώρα μαθαίνω τη γλώσσα. Αυτό που
κάνω (όσο πιο αναλυτικά γίνεται) είναι ότι έχω 2 αρχεία .cs, και στο
ένα είναι η Main. Στο άλλο υπάρχει μια κλάση problem και μια συνάρτηση
find_solution. Η problem έχει τη στοίβα. Στη Main λοιπόν δημιουργώ ένα
αντικείμενο problem και δύο αντικείμενα (με new), τα οποία βάζω στη
στοίβα του problem και καλώ την problem.find_solution(). Η
find_solution, πρέπει να επεξεργαστεί τα αντικείμενα της στοίβας.
Δημιουργεί στην αρχή το next, και μετά μπαίνει σε ένα
while(!_stack.empty()){...}. Μέσα στο while πρώτα παίρνει το επόμενο
στοιχείο της στοίβας, (με Peek() ή Pop()) και έπειτα κοιτάει να δει τι
είναι. Εκεί μου βγάζει το λάθος, και μου υπογραμμίζει τα if όπου ελέγχω
να δω τι γίνεται με το next.&lt;br&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39232.aspx</link><pubDate>Wed, 16 Jan 2008 19:46:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39232</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39232.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39232</wfw:commentRss><description>&lt;P&gt;Αν φτιάξεις ένα νέο πρόγραμμα και βάλεις μόνον τον κώδικα που σου έγραψα στην Main θα δεις ότι δουλεύει. Το ίδιο και αν φτιάξεις μία καθαρή φόρμα και στο Load της βάλεις μόνο τον κώδικα αυτό. Προφανώς κάνεις και άλλα πράγματα που δεν αναφέρεις. Αν δεν απομονώσεις όλο τον σχετικό κώδικα σε ένα σημείο και να μας τον δώσεις δεν θα βγάλουμε άκρη - όλο θα μαντεύουμε. &lt;/P&gt;
&lt;P&gt;Ο elam σωστά μάντεψε ότι μάλλον χρησιμοποιείς την next πριν την γραμμή στην οποία της δίνεις τιμή. Αυτό θα έχει σαν βέβαιο αποτέλεσμα ένα Null Reference Exception όταν εκτελέσεις τον κώδικα. O compiler της C# είναι αρκετά έξυπνος για να το καταλάβει αυτό και να σε ειδοποιήσει. Την ειδοποίηση την παρακάμπτεις θέτοντας μία οποιαδήποτε τιμή στη next όταν την ορίζεις, είτε null είτε ένα πραγματικό αντικείμενο.&lt;/P&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39229.aspx</link><pubDate>Wed, 16 Jan 2008 19:32:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39229</guid><dc:creator>Alexander</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39229.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39229</wfw:commentRss><description>Το new γίνεται σε κάποιο άλλο σημείο, αλλά γίνεται, και η στοίβα
γεμίζει με νέα αντικείμενα. Η απορία μου είναι γιατί να πρέπει το next
να αρχικοποιείται;&amp;nbsp; Με τον τρόπο που λες δηλαδή, δεν μου δουλεύει.&lt;br&gt;
&lt;br&gt;
Με Class1 next = null; όντως δουλεύει μια χαρά.&lt;br&gt;
&lt;br&gt;
Ξέχασα να αναφέρω κάτι, που ίσως να φταίει. Τα αντικείμενα που
βρίσκονται στη στοίβα είναι αντικείμενα κλάσεων, που κληρονομούν μία
πιο γενική. Το next είναι του τύπου της γενικής (και abstract) κλάσης.
πχ&lt;br&gt;
&lt;br&gt;
public abstract class abstract_class { };&lt;br&gt;
&lt;br&gt;
public class Class1 : abstract_class{};&lt;br&gt;
&lt;br&gt;
public class Class2 : abstract_class{};&lt;br&gt;
&lt;br&gt;
H stack έχει είτε Class1 είτε Class2 αντικείμενα&lt;br&gt;
&lt;br&gt;
abstract_class next = null;&lt;br&gt;
&lt;br&gt;
next = stack.peek();&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
η stack.peek() επιστρέφει αντικείμενα abstract_class (έχω φτιάξει μια
δική μου κλάση Stack, και η peek είναι ιδιότητά της που απλώς κάνει το
εξής: { return (abstract_class)_stack.Peek(); } )&lt;br&gt;
&lt;br&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39219.aspx</link><pubDate>Wed, 16 Jan 2008 06:48:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39219</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39219.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39219</wfw:commentRss><description>&lt;P&gt;Οι δύο κλήσεις είναι απολύτως ταυτόσημες. Αυτό μπορείς να το δεις και αν κοιτάξεις το il που δημιουργείται για τις δύο κλήσεις, ο οποίος είναι ακριβώς ο ίδιος. Για τον παρακάτω κώδικα:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Stack stack &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; Stack();&lt;BR&gt;stack.Push(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; Class1());&lt;BR&gt;&lt;BR&gt;Class1 next;&lt;BR&gt;next &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; (Class1)stack.Peek();&lt;BR&gt;&lt;BR&gt;Class1 next2 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; (Class1)stack.Peek();&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Δημιουργείται το παρακάτω IL:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;.maxstack&lt;/SPAN&gt; 2&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;.locals&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;init&lt;/SPAN&gt; (&lt;BR&gt;[0] &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; [mscorlib]System.Collections.Stack stack,&lt;BR&gt;[1] &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; StackTest.Class1 next,&lt;BR&gt;[2] &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; StackTest.Class1 next2)&lt;BR&gt;L_0000: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nop&lt;/SPAN&gt; &lt;BR&gt;L_0001: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;newobj&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;instance&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; [mscorlib]System.Collections.Stack::&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;.ctor&lt;/SPAN&gt;()&lt;BR&gt;L_0006: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;stloc.0&lt;/SPAN&gt; &lt;BR&gt;L_0007: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ldloc.0&lt;/SPAN&gt; &lt;BR&gt;L_0008: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;newobj&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;instance&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; StackTest.Class1::&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;.ctor&lt;/SPAN&gt;()&lt;BR&gt;L_000d: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;callvirt&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;instance&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; [mscorlib]System.Collections.Stack::Push(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt;)&lt;BR&gt;L_0012: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nop&lt;/SPAN&gt; &lt;BR&gt;&lt;STRONG&gt;L_0013: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ldloc.0&lt;/SPAN&gt; &lt;BR&gt;L_0014: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;callvirt&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;instance&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; [mscorlib]System.Collections.Stack::Peek()&lt;BR&gt;L_0019: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;castclass&lt;/SPAN&gt; StackTest.Class1&lt;BR&gt;L_001e: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;stloc.1&lt;/SPAN&gt; &lt;BR&gt;L_001f: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ldloc.0&lt;/SPAN&gt; &lt;BR&gt;L_0020: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;callvirt&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;instance&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; [mscorlib]System.Collections.Stack::Peek()&lt;BR&gt;L_0025: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;castclass&lt;/SPAN&gt; StackTest.Class1&lt;BR&gt;L_002a: &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;stloc.2&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;To next δημιουργείται στις γραμμές L_0013-L_001e ενώ το next2 στις γραμμές L_001f-L_002a. Όπως βλέπεις, ο κώδικας είναι ακριβώς ο ίδιος. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Υποψιάζομαι ότι δεν έχει καταλάβει πως δουλεύουν οι κλάσεις και οι μεταβλητές. Για να δημιουργήσεις ένα καινούριο αντικείμενο της κλάσης Class1 πρέπει οπωσδήποτε να χρησιμοποιήσεις το keyword new. Υποψιάζομαι ότι στον κώδικα σου δεν έχεις κάνει new τη μεταβλητή stack γι αυτό και σου εμφανίζει το πρόβλημα. Πρέπει δηλαδή να γράψεις ό,τι γράφω κι εγώ στην πρώτη γραμμή του κώδικα. Όταν γράφεις Class1 next, απλά λες στον compiler ότι κάποια στιγμή θα φτιάξεις ένα αντικείμενο, χωρίς να το φτιάχνεις εκείνη τη στιγμή.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Από εκεί και πέρα, είτε ορίσεις τη μεταβλητή σε μία γραμμή και της δώσεις τιμή στην επόμενη, είτε κάνεις και τα δύο βήματα στην ίδια γραμμή, ο κώδικας που δημιουργείται όπως είδες είναι ακριβώς ο ίδιος.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39218.aspx</link><pubDate>Wed, 16 Jan 2008 06:44:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39218</guid><dc:creator>elam</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39218.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39218</wfw:commentRss><description>&lt;P&gt;Στον κώδικά σου πρέπει να εξασφαλίσεις ότι οπουδήποτε, πριν διαβάσεις το αντικείμενο next, πρέπει να του έχεις δώσει μια τιμή.&lt;/P&gt;
&lt;P&gt;Αυτό σημαίνει και το μήνυμα λάθους που σου βγαίνει. Εν τέλει, αυτό καμμία σχέση δεν έχει με το stack.&lt;/P&gt;
&lt;P&gt;Αν δώσεις στην αρχή Class1 next &lt;STRONG&gt;= null; &lt;/STRONG&gt;-και το αλλάζεις έπειτα όταν&amp;nbsp;και όπου θέλεις- δεν θα έχεις πρόβλημα. &lt;/P&gt;
&lt;P&gt;Μόνο βεβαιὠσου ότι χειρίζεσαι σωστά την περίπτωση που έχει μένει το null.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39214.aspx</link><pubDate>Wed, 16 Jan 2008 03:00:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39214</guid><dc:creator>Alexander</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39214.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39214</wfw:commentRss><description>όχι, δε βοηθάει, γιατί δηλώνω πρώτα το next, και μετά ακολουθεί ένα if - else για να δω που ακριβώς θα δείχνει. &lt;br&gt;
Αλλά αυτό δεν είναι ίδιο με το &lt;br&gt;
&lt;br&gt;
Class1 next; &lt;br&gt;
next = stack.Peek(); &lt;br&gt;</description></item><item><title>Απ: Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39213.aspx</link><pubDate>Wed, 16 Jan 2008 02:38:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39213</guid><dc:creator>spantos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39213.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39213</wfw:commentRss><description>&lt;P&gt;Αν κατάλαβα καλά την ερώτηση κάτι τέτοιο φνατάζομαι ότι θα σε βοηθούσε:&lt;/P&gt;
&lt;P&gt;Class1 next = stack.Peek();&lt;/P&gt;
&lt;P&gt;υπό την προηπόθεση ότι τα αντικείμενα μέσα στο stack είναι τύπου Class1.&lt;/P&gt;</description></item><item><title>Stack</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/39212.aspx</link><pubDate>Wed, 16 Jan 2008 01:53:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:39212</guid><dc:creator>Alexander</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/39212.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=39212</wfw:commentRss><description>Καλησπέρα,&lt;br&gt;
Έχω ένα προβληματάκι - απορία.&lt;br&gt;
Έχω μια κλάση, και γεμίζω μια στοίβα με αντικείμενά της. Μετά, θέλω να δω τι είναι το πάνω-πάνω στοιχείο. Κάνω λοιπόν το εξής:&lt;br&gt;
&lt;br&gt;
Class1 next;&lt;br&gt;
next = stack.Peek();&lt;br&gt;
&lt;br&gt;
Και μου βγάζει αυτό το λάθος:&lt;br&gt;
Use of anassigned local variable 'next'&lt;br&gt;
&lt;br&gt;
Αν κάνω αυτό, δουλεύει μια χαρά:&lt;br&gt;
&lt;br&gt;

Class1 next = new Class1();&lt;br&gt;

next = stack.Peek();&lt;br&gt;
&lt;br&gt;
Στη δεύτερη περίπτωση δημιουργήθηκε άλλο ένα αντικείμενο Class1, έτσι; Πώς μπορώ να το αποφύγω αυτό;&lt;br&gt;
&lt;br&gt;
Ευχαριστώ&lt;br&gt;</description></item></channel></rss>