<?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>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Delegates</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45845.aspx</link><pubDate>Wed, 29 Oct 2008 22:10:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45845</guid><dc:creator>PALLADIN</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45845.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=45845</wfw:commentRss><description>Μια μικρή διόρθωση... στα C# generic types δεν μπορούμε να χρησιμοποιήσουμε arithmetic operators&lt;br&gt;&lt;a href="http://www.codeproject.com/KB/cs/genericnumerics.aspx"&gt;&lt;br&gt;Ένα workaround&lt;/a&gt;&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c6cyy67b.aspx"&gt;Και διαφορες ανάμεσα σε C++ templates και C# generics&lt;/a&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Delegates</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45826.aspx</link><pubDate>Wed, 29 Oct 2008 09:10:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45826</guid><dc:creator>spantos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45826.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=45826</wfw:commentRss><description>Η αλήθεια είναι ότι δεν χρειάζεται να κάνεις όλο αυτό το κόπο που κάνεις στο Snippet που παρέθεσες.&lt;br&gt;Αλλά πριν προχωρήσω στο τι θα μπορούσες να κάνεις πιο εύκολα ας προσπαθήσω να ξεκαθαρίσω λίγο την έννοια των delegates γιατί από το κώδικα που είδα νομίζω ότι υπάρχει κάποια σύγχηση.&lt;br&gt;Ένα Delegate αποτελεί πρακτικά ένα Function Pointer (δείκτη) σε μια μέθοδο και χρησιμοποιείται πολύ συχνά (έως πάντα) ως ένας τρόπος να δώσεις στο χρήστη της κλάσης σου (όχι τον user, αλλά το developer χρήστη) ένα τρόπο να γράψει κώδικά που εσύ σαν &lt;b&gt;implementor μόνο της κλάσης σου δε γνωρίζεις εξαρχής&lt;/b&gt;, ο οποίος θα τρέξει κάποια δεδομένη χρονική στιγμή που εσύ θα αποφασήσεις. Έτσι για παράδειγμα θα μπορούσα να γράψω μια κλάση Person που να ενημερώνει το χρήστη για την αλλαγή ενός property και να του επιτρέπει να γράψει και να εκτελέσει κώδικα (που εγώ αυτή τη στιγμή&lt;b&gt; δε γνωρίζω&lt;/b&gt;) καλώντας το delegate ως εξής:&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;delegate&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; OnPersonChange(Person p);&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;public&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; Person&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; OnPersonChange RegisteredDelegate { get; set; }&lt;br&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; m_name;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;  &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;string&lt;/span&gt; Name&lt;br&gt;&amp;nbsp;&amp;nbsp;  {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    get { &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; m_name; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    set&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;       m_name &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; value;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;       &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (&lt;/span&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;RegisteredDelegate &lt;/span&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt; !&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;null&lt;/span&gt;)&lt;br&gt;&lt;/span&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RegisteredDelegate&lt;/span&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;this&lt;/span&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    }&lt;br&gt;&amp;nbsp; }&lt;br&gt;}&lt;/span&gt;&lt;br&gt;&lt;br&gt;Τότε από το κώδικα που χρησιμοποιεί το Person θα μπορούσα να γράψω κάτι της μορφής:&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;....&lt;br&gt;Person p &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; Person();&lt;br&gt;&lt;br&gt;p.RegisteredDelegate &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;delegate&lt;/span&gt;(Person p)&lt;br&gt;{&lt;br&gt;&amp;nbsp;   System.Diagnostics.Debug.WriteLine(p.Name);&lt;br&gt;};&lt;br&gt;&lt;br&gt;p.Name &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="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"spantos"&lt;/span&gt;; &lt;span style="color:Green;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;// Μετά από αυτό το σημείο τρέχει ο πιο πάνω κώδικας που γράφει το όνομα&lt;/span&gt;&lt;br&gt;....&lt;/span&gt;&lt;br&gt;&lt;br&gt;Στη περίπτωση σου δε χρειάζεται πάντως κάτι από αυτά μιας και ξέρεις εξαρχής τι θέλεις να κάνει ο κώδικας σου. Οπότε μπορείς πολύ απλά να μετατρέψεις τη μέθοδο που κατασκευάζει και επιστρέφει ένα delegate σε μέθοδο που κάνει τη δουλειά πραγματικά. Δηλαδή:&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;br&gt;&lt;br&gt;    &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; T CalcDiscount&amp;lt;T&amp;gt;( T result, T disc1, T disc2, T disc3 ) &lt;br&gt;{&lt;br&gt;&amp;nbsp;      &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; result  &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;-&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;        ( result &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; disc1 &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;+&lt;/span&gt; result  &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; disc2 &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;+&lt;/span&gt; result  &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; disc3 );&lt;br&gt;    }&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;static&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; Main( String[] args ) &lt;br&gt;{&lt;br&gt;&amp;nbsp;      &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; result &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 100;&lt;br&gt;&amp;nbsp;      &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;double&lt;/span&gt; discount &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; CalcDiscount&amp;lt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;double&lt;/span&gt;&amp;gt;(result &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; 1.19, 0.10f, 0.08f, 0.09f);&lt;br&gt;&amp;nbsp;      Console.WriteLine(discount.ToString(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"####0.000"&lt;/span&gt;));&lt;br&gt;&amp;nbsp;      Console.Read();&lt;br&gt;    }&lt;br&gt;  &lt;br&gt;&lt;br&gt;&lt;/span&gt;και βέβαια όπως είπε και ο Παναγιώτης νωρίτερα δε σου χρειάζονται τα castings αφού η μέθοδος σου είναι Generic και ξέρει το τυπο του T. Ίσως όμως έχεις πρόβλημα αν προσπαθήσεις να περάσεις Reference Type ως παράμετρο στη Generic μέθοδο σου που να μην έχει υλοποιήσει τα operators +, -, * κλπ οπότε καλύτερα να κάνεις restrict το T σε promitive types μονο ή και να το ελέγχεις στο body της μεθόδου σου.&lt;br&gt;&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;&lt;/span&gt;&lt;/span&gt;</description></item><item><title>Απ: Delegates</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45815.aspx</link><pubDate>Wed, 29 Oct 2008 01:30:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45815</guid><dc:creator>m6s</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45815.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=45815</wfw:commentRss><description>Η παρατήρηση για την μετατροπή string-&amp;gt;double...να πώ την αλήθεια είναι καλή παρατήρηση που δεν μπορώ να απαντήσω. &lt;br&gt;Μπορούσα σε C#2, χωρίς να κάνω 2 φορές return να έχω το αποτέλεσμα αυτό...Και σε C#3? ποια ήταν η εναλλακτική πρόταση;&lt;br&gt;</description></item><item><title>Απ: Delegates</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45814.aspx</link><pubDate>Wed, 29 Oct 2008 00:49:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45814</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45814.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=45814</wfw:commentRss><description>&lt;P&gt;Τερατούργημα δεν είναι, αν και υπάρχουν ευκολότεροι τρόποι να κάνεις το ίδιο πράγμα στη C# 3.0. Γιατί όμως κάνει τη μετατροπή σε string και μετά σε Double? Από τη στιγμή που χρησιμοποιείς generics, μπορείς να γράψεις απευθείας τη συνάρτηση χωρίς μετατροπές φτάνει αν ο τύπος που χρησιμοποιείς να έχει ορισμένους τους τελεστές *, +. &lt;/P&gt;</description></item><item><title>Delegates</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45810.aspx</link><pubDate>Tue, 28 Oct 2008 22:36:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45810</guid><dc:creator>m6s</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45810.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=45810</wfw:commentRss><description>Διάβαζα για delegates και "ανόνυμες μεθόδους" και έκανα αυτό το μικρό αλγόριθμο : &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;enum&lt;/span&gt; FunctionType {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WithTax,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WithOutTax&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;delegate&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;double&lt;/span&gt; Discount&amp;lt;T&amp;gt;( T result, T disc1, T disc2, T disc3 );&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; Discount&amp;lt;T&amp;gt; Machine&amp;lt;T&amp;gt;() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;delegate&lt;/span&gt;( T result, T disc1, T disc2, T disc3 ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; Double.Parse(result.ToString()) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;-&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;( Double.Parse(result.ToString()) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; ( Double.Parse(disc1.ToString()) ) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;+&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Double.Parse(result.ToString()) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; ( Double.Parse(disc2.ToString()) ) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;+&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Double.Parse(result.ToString()) &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; ( Double.Parse(disc3.ToString()) ) );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; Main( String[] args ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Discount&amp;lt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;double&lt;/span&gt;&amp;gt; Discount &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; Machine&amp;lt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;double&lt;/span&gt;&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; result &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 100;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(Discount(result &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; 1.19, 0.10f, 0.08f, 0.09f).ToString(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"####0.000"&lt;/span&gt;));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.Read();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br&gt;&lt;br&gt;Σας τον υποβάλω, και θέλω να ρωτήσω αν είναι βλακεία το διπλό return? Μου κάνει εντύπωση πως το έκανα, δεδομένου ότι δεν έχω δει κάτι παρόμοιο στο ιnternet, και πραγματικά Δεν μπορώ να καταλάβω αν αυτός ο κώδικας είναι λίγο "τερατούργημα". Πρακτικά...δουλεύει(!)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item></channel></rss>