2010-05-17 22 views
9

Bir süre önce bu çeşit gördük ama ne denirdi hatırlamak ve bu nedenle böyle bir şey nasıl uygulanacağı konusunda hiçbir ipucu olamaz: ayrıştırmak bazı aşırı yük işlevini çağırırBu sözdizimi nedir? SomeMoneyFormat f = "€ 5,00";

SomeMoneyFormat f = "€ 5,00"; 

dize, SomeMoneyFormat nesnesine.

cevap

14

bunu öyle döküm gerektiğini belirtmediğinizde bir implicit cast

public static implicit operator SomeMoneyFormat(string d) 
    { 
     return new SomeMoneyFormat(d); 
    } 

Sonra € 5,00 Bu konuda daha dize d

olarak geçirilir: Ayrıca http://msdn.microsoft.com/en-us/library/z5z9kes2(VS.71).aspx

, Bunun sadece veri kaybetme riski olmadığında yapılması gerektiğini ekleyebilirim. Örneğin, bir double'un bir int'a dönüştürülmesi bazı kesinlikleri kaybedecektir, bu nedenle bir explicit cast. Aksi takdirde kazayla dökülmek ve veri kaybetmek kolay olurdu.