[nem-pl] Varianty, a ToString
Michal Moskal
malekith at pld-linux.org
Sun May 9 14:28:17 CEST 2004
On Sun, May 09, 2004 at 01:32:58PM +0200, rzyjontko wrote:
> Najpierw krótko o tym, co w tej chwili próbuję osiągnąć. Na zajęciach
> poznałem takie narzędzie JUnit (http://junit.org), które służy do
> automatyzacji testów. Istnieje również takie narzędzie dla .NETu
> (http://nunit.org), ale jest rozprowadzane w postaci MSI, poza tym
> działa chyba tylko z C#.
>
> No więc postanowiłem sobie coś takiego napisać, żeby można było
> automatycznie testować pewne fragmenty kodu. Niestety napotkałem
> wiele problemów...
>
> Jak wiadomo każda klasa w .NET dziedziczy po klasie System.Object i w
> związku z tym ma takie fajne metody jak Equals i ToString. Chciałoby
> się, żeby w Variantach też można było takie metody przeciążyć.
> Dlaczego? Bo wyświetlenie listy byłoby dużo prostsze, sprawdzenie,
> czy dwie listy zawierają te same elementy również.
Możesz zrobić te metody w jakieś klasie a potem odziedziczyć po niej
wariant. Ale to tylko brzydki workaround. Spróbuje to może dziś zrobić
(skoro jeszcze nie wiadomo co z indekserami).
> Oczywiście można sobie varianta opakować w klasę i dodać te metody,
> ale to nie jest rozwiązanie, bo traci się możliwość matchingu po tej
> klasie.
Chodzi mi raczej o coś takiego:
public class Type_base
{
public as_string () : string
{ Tyutil.string_of_type ((this :> Type)) }
public this () {}
}
public variant Type : Type_base
{
| T_app {
...
}
Tylko tu jest taki brzydki cast i konieczność dopisania tej dodatkowej
klasy...
--
: Michal Moskal :: http://www.kernel.pl/~malekith :: GCS !tv h e>+++ b++
: When in doubt, use brute force. -- Ken Thompson :: UL++++$ C++ E--- a?
More information about the devel-pl
mailing list