C# i generics

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
najczarniejszy
Posty: 68
Rejestracja: 11 grudnia 2007, 18:28
Lokalizacja: wziąć na piwo ?

C# i generics

Post autor: najczarniejszy »

Wiem że to temat dotyczący programowania pod Linuksem, zapewne jednak wiele osób programujących robi to również pod, o zgrozo, Windowsem, zatem proszę o nieusuwanie tematu, a nuż znajdzie się znawca gotowy mi pomóc.

Do rzeczy. Jest sobie klasa generyczna:

Kod: Zaznacz cały

public class GenericProperty<T> {
    T Value;

    public GenericProperty(T initial) {
        Value = initial;
    }

    public String Property {
        get {
            return Value.ToString();
        } set {
            //T.TryParse(value, out Value);
        }
    }
}
Chcielibyśmy, aby przechowywała w prywatnym polu Value wartości typu Double, Byte, Int16, jednym słowem tylko takie, które definiują statyczną metodę TryParse, a zapewniała dostęp do tego pola przez właściwość Property typu String. Oczywiście kompilator się burzy o zakomentowaną linijkę, i słusznie, bo skąd ma niby wiedzieć, że we wszystkich instancjach tej klasy będziemy używać tylko tych wyżej wspomnianych typów. Oczywiście, można by to rozwiązać stosując tam drabinkę if else sprawdzającą typ, jednak mija się to trochę z celem, którym jest uniwersalność - lub inaczej - samoorientowanie się klasy w typie obiektów T. Pytanie więc brzmi, czy da się to napisać bez sprawdzania typu.
bachu69
Posty: 3
Rejestracja: 09 marca 2008, 08:44

Post autor: bachu69 »

Poczytaj sobie o klauzuli 'where', za jej pomocą możesz określić jakie typy argumentów są akceptowalne :-)
ODPOWIEDZ