<?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>Απ: C# Force Pass-By-Value?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/34097.aspx</link><pubDate>Sat, 04 Aug 2007 17:37:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:34097</guid><dc:creator>Δημήτρης Γκανάτσιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/34097.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=34097</wfw:commentRss><description>δες κι &lt;A href="http://en.wikipedia.org/wiki/Object_copy"&gt;εδώ&lt;/A&gt;. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;</description></item><item><title>Απ: C# Force Pass-By-Value?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/34096.aspx</link><pubDate>Sat, 04 Aug 2007 17:31:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:34096</guid><dc:creator>γιωργος μπακογιαννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/34096.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=34096</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face=verdana,geneva&gt;Μπορείς να δεις το άρθρο του&amp;nbsp;Varad &lt;/FONT&gt;&lt;A class="" href="http://weblogs.asp.net/varad/archive/2004/09/13/229182.aspx"&gt;&lt;FONT face=verdana,geneva&gt;C#: Shallow Copy&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Απ: C# Force Pass-By-Value?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/34095.aspx</link><pubDate>Sat, 04 Aug 2007 17:03:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:34095</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/34095.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=34095</wfw:commentRss><description>Το φαντάστηκα ότι δεν μπορεί να γίνει απλά.&lt;br&gt;Τώρα τι εννοείς Shallow copy και deep copy?&lt;br&gt;&lt;br&gt;Εγώ έκανα αυτό τελικά:&lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; SortedList&amp;lt;Point, NeighbourhoodPoint&amp;gt; SortedLists_Copy(SortedList&amp;lt;Point, NeighbourhoodPoint&amp;gt; List)&lt;br&gt;        {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SortedList&amp;lt;Point, NeighbourhoodPoint&amp;gt; retVal &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; SortedList&amp;lt;Point, NeighbourhoodPoint&amp;gt;(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; PointComparer());&lt;br&gt;&lt;br&gt;            &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach&lt;/span&gt; (KeyValuePair&amp;lt;Point, NeighbourhoodPoint&amp;gt; pair &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; List)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; retVal.Add(pair.Key, pair.Value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;            &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; retVal;&lt;br&gt;        }&lt;br&gt;
&lt;/span&gt;&lt;br&gt;Έχω μια υποψία ότι είναι αυτό που εννοείς Shallow Copy αλλά γιατί είναι τόσο διαφορετικό?? Τι πρόβλημα δημιουργούν τα αντικείμένα μέσα στην λίστα?&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;/span&gt;&lt;/span&gt;</description></item><item><title>Απ: C# Force Pass-By-Value?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/34091.aspx</link><pubDate>Sat, 04 Aug 2007 07:15:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:34091</guid><dc:creator>Δημήτρης Γκανάτσιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/34091.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=34091</wfw:commentRss><description>&lt;P&gt;Το reference του object περνιέται by value. Για να κάνεις αυτό που θες, πρέπει να στείλεις σαν όρισμα έναν κλώνο. Μπορείς να κάνεις φτιάξεις δικό σου SortedList που να κάνει inherit το SortedList, implement το ICloneable και μετά να προσθέσεις αυτή την συνάρτηση&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="BORDER-RIGHT:#e5e5e5 1px solid;BORDER-TOP:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;BORDER-BOTTOM:#e5e5e5 1px solid;BACKGROUND-COLOR:#f2f2f2;" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;

&lt;TR style="VERTICAL-ALIGN:top;LINE-HEIGHT:normal;"&gt;
&lt;TD style="WIDTH:40px;TEXT-ALIGN:right;"&gt;&lt;PRE style="BORDER-RIGHT:#e7e7e7 1px solid;PADDING-RIGHT:2px;PADDING-LEFT:2px;FONT-SIZE:11px;PADDING-BOTTOM:2px;MARGIN:0px;COLOR:gray;PADDING-TOP:2px;FONT-FAMILY:courier new;"&gt;1&lt;BR&gt;2&lt;BR&gt;3&lt;BR&gt;4&lt;BR&gt;5&lt;BR&gt;6&lt;BR&gt;7&lt;BR&gt;8&lt;BR&gt;9&lt;BR&gt; &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;PRE style="PADDING-RIGHT:2px;PADDING-LEFT:8px;PADDING-BOTTOM:2px;MARGIN:0px;PADDING-TOP:2px;"&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;public&lt;/SPAN&gt; SortedList&amp;lt;Foo,Foobar&amp;gt; Clone()&lt;BR&gt;        {&lt;BR&gt;            BinaryFormatter bFormatter &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; BinaryFormatter();&lt;BR&gt;            MemoryStream stream &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; MemoryStream();&lt;BR&gt;            bFormatter.Serialize(stream, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;);&lt;BR&gt;            stream.Seek(0, SeekOrigin.Begin);&lt;BR&gt;            SortedList&amp;lt;Foo,Foobar&amp;gt; newobj &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; SortedList&amp;lt;Foo,Foobar&amp;gt;bFormatter.Deserialize(stream);&lt;BR&gt;            &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; newobj;&lt;BR&gt;        }    &lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Αυτή κάνει το απαραίτητο deep copy. Προϋπόθεση είναι τα Foo και Foobar (και, πιθανώς, ότι άλλο object "κρέμεται" από κάτω τους)&amp;nbsp;να είναι &amp;lt;Serializable&amp;gt;, ώστε να μπορούν να γίνουν serialize στο memory stream.&lt;/P&gt;
&lt;P&gt;edit: κάνουμε deep copy γιατί στο SortedList κρέμονται objects τύπου Foo και Foobar, οπότε δεν μας βολεύει το shallow copy &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/P&gt;</description></item><item><title>C# Force Pass-By-Value?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/34090.aspx</link><pubDate>Sat, 04 Aug 2007 06:17:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:34090</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/34090.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=34090</wfw:commentRss><description>Υπάρχει τρόπος να αναγκάσω ένα όρισμα σε μιά συνάρτηση να περάσει με τιμή?&lt;br&gt;Αντιμετωπίζω το εξής πρόβλημα:&lt;br&gt;Έχω ένα πολύ όμορφο Generic, το SortedList&amp;lt;Foo,Foobar&amp;gt; beautifulGeneric,&amp;nbsp; το οποίο και περνάω σαν όρισμα σε μιά συνάρτηση για να αποθηκευτεί κάπου(σε ένα άλλο όμορφο generic&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;)&lt;br&gt;Το πρόβλημά μου είναι ότι περνάει και αποθηκεύεται με αναφορά, με αποτέλεσμα ,επειδή αποθηκεύω πολλά τέτοια , στο τέλος όλα να έχουν τα περιεχόμενα του τελευταίου που αποθήκευσα. &lt;br&gt;Δυστυχώς η SortedList Δεν έχει κάποια Clone ή κάτι τέτοιο, και πριν φτοιάξω ξεχωριστή συνάρτηση είπα να ρωτήσω μπας και υπάρχει γενικά κάποιος άλλος τρόπος.&lt;br&gt;&lt;br&gt;Ευχαριστώ &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;</description></item></channel></rss>