Strona 1 z 1

C# i generics

: 16 stycznia 2010, 23:17
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.

: 17 stycznia 2010, 10:56
autor: bachu69
Poczytaj sobie o klauzuli 'where', za jej pomocą możesz określić jakie typy argumentów są akceptowalne :-)