Probabil ați observat că dacă faceți o căutare pe google cu o expresie matematică Google vă va returna mai întâi rezultatul expresiei și abia mai apoi vă va prezenta o listă de documente de conțin acea expresie. Ceea ce probabil nu știați este că Google știe să calculeze expresii destul de complexe de genul e*lg 7+15/(22-33).

Știe care este ordinea operațiilor. 

Știe logaritmi în mai multe baze (log  - logaritm în baza 10, lg - logaritm în baza 2, ln - logaritm natural)

Știe de factorial și de radical(de ordin n). 

Știe de sinus,cosinus,tangentă, sinus hiperbolic, cosinus hiperbolic.

Știe să facă și combinări.

Știe ce este un număr complex. Știe chiar să facă adunări,înmulțiri și împărțiri cu numere complexe.

Cam atât despre matematică însă mai există multe constante din fizică și mai știe să facă și conversii între unități de măsură..

Deștept nenea Google ăsta...ar fi bine să îl folosim la potențial maxim dacă tot știe atâtea... 

 

Fii primul care dă o notă acestei însemnări

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

Cred că mulți oameni au auzit de Earth Hour. Ideea ar fi să închizi becurile din casă pentru o oră pentru a te declara un mare ecologist și pentru a salva plantea. Păi..nu e chiar așa. Hai să vedem. Cât la sută din becurile din casa dumneavoastră sunt economice? Adică în loc să consume 120W să consume 20W? Păi ia să vedem. Dacă în casă ai să zicem 5 becuri de 120W pe care le stingi pentru o oră rezultă o economie de 600W. Dacă în schimb în casă ai avea becuri de 20W aceeași economie pe care o faci dacă ai stinge becurile de 120W o oră ai face-o cu becul APRINS în o oră și un pic.

Trist...Dar există moduri mai inteligente de a proteja natura. Nu e nevoie să facem chestii radicale. Trebuie doar să ne adaptăm puțin modul de viață.

Eu am un site de reciclare și promovez tot ce mi se pare normal să facem însă nu vreau să promovez ideea de a face totul în turmă. Reciclarea este ceva personal ce ar trebui să apară natural și nu doar pentru că cineva ne spune să facem ceva...

Fii primul care dă o notă acestei însemnări

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
vlad , scris pe 27. martie 2008, 13:43

Prima

this.Invoke(
delegate { this.Text = "x"; }
);

Nu funcționează.Veți primi eroarea "Cannot convert anonymous method to type 'System.Delegate' because it is not a delegate type"

Însă

this.Invoke(
(MethodInvoker) delegate { this.Text = "x"; }
);

Funcționează..Văzut aici

A doua

public event EventHandler Updated = delegate { };

Acest mod de declarare a evenimentelor te scapă te testul Updated == null. Mai e și trhread safe pe deasupra.Văzut aici.

Fii primul care dă o notă acestei însemnări

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
vlad , scris pe 25. martie 2008, 22:15

Dacă ești programator probabil că "Best Practice" sau "Design Pattern" înseamnă ceva. De curând m-am apucat să citesc cartea "C# 3.0 Design Patterns". Am găsit multe patternuri interesante și chiar vă recomand să o citiți, însă nu am scris această însemnare pentru a vă recomanda cartea ci pentru a expune o idee excelentă de pattern.

Singleton generic.

Codul este extrem de simplu, la obiect, thread safe(f important) și generic(și mai important).

public class Singleton<T> where T: class, new()
{
Singleton() { }
class SingletonCreator
{
internal static readonly T instance = new T();
static SingletonCreator()
{
}
}
     public static T UniqueInstance
{
get
{
     return SingletonCreator.instance;
}
}
}

Cam ce știe să facă această clasă?

Știe să păstreze o singură instanță a unei clase. Mai bine vedem o clasă de test și un mod de folosire..

Clasa ce va fi instanțiată o singură dată:

public class TestClass
{
public string Mesaj
{
get;
set;
}
public TestClass()
{
Mesaj = "Initial";
}
}

Și o metodă de test.

public void TestUniqueInstance()
{
TestClass prima = Singleton<TestClass>.UniqueInstance;
Console.WriteLine(prima.Mesaj);
TestClass aDoua = Singleton<TestClass>.UniqueInstance;
prima.Mesaj = "Mesaj schimbat";
Console.WriteLine(aDoua.Mesaj);
}

De ce mi s-a părut atat de bună această implementare?

Pentru că este cu adevărat refolosibilă.

Pentru că nu folosește un test de genul instance == null ce ar fi însemnat că aceasă clasă nu ar mai fi thread safe(decât dacă s-ar fi folosit mecanisme de sincronizare).

Pentru că modul de instanțiere este lazy(leneș în română?), adică instanțierea instanței unice se face doar dacă este cerut acest lucru.

 

Notat cu 4.2 de 5 persoane

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