Effective C#: Item 6:Understand the Relationship Among the Many Different Concepts of Equality

Þetta var bara frekar áhugavert item. Hann fer að vísu ferlega djúpt í hvert atriði og 9 bls um þetta reyndi á heilan á mér! Cool

En ég náði þó 2 hlutum út úr þessu!

  1. Þú ættir alltaf að yfirskrifa Equals()  og operator==() fyrir gagnatýpur (value types) til að ná mun meiri hraða því annars er reflection notuð til að finna jafnræðið út.
  2. Aldrei yfirskrifa static Object.ReferenceEquals().

Hérna er linkur á bæði virtual bool Equelas og static Equals(). Þeir sem þekkja ekki munin á tilvísunar-týpum og ganga-týpum ættu að lesa þessa grein

Síðan var gefið munstur (pattern) fyrir því hvernig ætti að yfirskrifa System.Object.Equal fyrir tilvísunar (reference) týpur. Ég vill nú ekki kópera það beint upp úr bókinni hanns, þið verðið bara að kaupa hana!  Annars er þetta mjög góð grein um það að yfirskrifa tilvísunar (reference) týpur "Overriding Object.Equals() for Reference Types".

   

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: sturlath
Posted on: 1/17/2011 at 9:32 AM
Tags: ,
Categories: Forritun
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Effective C#: Item 5:n Always Provide ToString()

Jáhá... þetta er s.s ekki eitthvað sem ég hef spáð mikið í eða þurft á að halda þar sem ég er ekki að skrifa kóða sem verður að t.d dll-um sem aðrir nota. Hingað til hef ég aðeins skrifað kóða sem er allur aðgengilegur mér. En ég hef hinsvegar oft notast við kóða frá öðrum sem er bundinn inn í dll-a. Mig minnir hinsvegar ekki að ég hafi þurft að notast oft við ToString() á týpur.

 En þetta item gengur útá það að maður eigi að yfirskrifa ToString() á allar týpur  sem þú skrifar. Annars verður notandi að týpunum þínum að yfirskrifa sjálfur ToString() og púsla þar saman í return gildið því sem hann vill skila á "mannlega læsilegu formi". Auk þess að geta auðveldað debugging þá er stærsta notkunin eflaust í databinding.  Punkturinn var að hafa þetta stutt og laggott. Hérna er t.d mjög gott dæmi um notkunina þegar um er að ræða databinding.

Dæmi:

public class Mynt

 {

       public double Amount {get; set;}

 

      public override string ToString()

     {

        return string.Format("Courier New" size="2">"{0:c}",Amount);

      }

}

  [/code]

Þetta skilar frá sér $1.42 ef Amount er == 1.42.  Þ.e.a.s $ ef CultureInfo skilar "en-us" en ef það á að skila t.d íslenskum kr. þá þarf að skipta return línuninni út fyrir þessa return String.Format(CultureInfo.CreateSpecificCulture(“is”), “{0:C}”, Amount);

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: sturlath
Posted on: 1/11/2011 at 4:56 PM
Tags: , ,
Categories: Forritun
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Effective C#: Item 4

Fyrir jól þá byrjaði ég að lesa þessa bók Effective C#: 50 Specific Ways to Improve Your C# 2.ed  eftir Bil Wagner (sem ég les of bloggið hjá) g ákvað að lesa 1 "item" á hverjum morgni í vinnunni! Núna er það orðið nýársheit hjá mér að klára þessa bók svona. Hvert "item" er aðeins 2-4 bls þannig að þetta tekur ekki mikinn tíma en ætti að gera mig betri.

 Í dag er það  "Use Conditional Attributes Instead of #if". Ég smelli kannski einhverjum kommentum á þessi blogg fyrir áhugasama!

 

Currently rated 1.5 by 2 people

  • Currently 1.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: sturlath
Posted on: 1/4/2011 at 9:37 AM
Tags: ,
Categories: Forritun
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed