Biz CAD programı için bir SDK yazıyoruz ve işlevi belirli bir tip (değil farklı insanlar arasında sadece anlaşmazlık, benim iki beyin yarı arasındaki da anlaşmazlık) ilgili hafif anlaşmazlık haline çalıştırmak..Net SDK sorunu, hangi yoldan gidiniz?
belirli bir eğri türleri (elips, daire, yay, çizgi, Bezier vs.) sınıfları bir sürü düşünün. Tüm bu sınıflar bir Nurbs eğrisi ile temsil edilebilir. Bu yüzden Circle Circle-> Nurbs işlevini koymak gerekir:
public NurbsCurve Circle.ToNurbsCurve()
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
veya NurbsCurve statik olmalıdır: Bu bir, çünkü
public static NurbsCurve NurbsCurve.CreateFromCircle(Circle)
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
Tek seçenek, uzantı yöntemleri olabilir. 'Kamu statik NurbsCurve ToNurbs (bu Çember daire) {}' Gerçekten burada anlamlı olmaz –
@Chris, ... buna bir NurbsCurve değil NurbsCurve sınıfı için dönüştürücü nasıl olması gerektiğini bilir Çemberi. Uzantı yöntemleri harika bir özelliktir, ancak birçok kişi (benim dahil) onları aşırı kullanıyor –