Pytania oznaczone «generics»

85
Prześlij Int do Generic Enum w C #

Podobnie jak rzutowanie int na wyliczenie w C #, ale moje wyliczenie jest parametrem typu ogólnego. Jak najlepiej sobie z tym poradzić? Przykład: private T ConvertEnum<T>(int i) where T : struct, IConvertible { return (T)i; } Generuje błąd kompilatora Cannot convert type 'int' to...

84
Tworzenie metody ogólnej w C #

Próbuję połączyć kilka podobnych metod w metodę ogólną. Mam kilka metod, które zwracają wartość kwerendy lub null, jeśli ten obiekt kwerendy nie istnieje lub ma nieprawidłowy format. Byłoby to wystarczająco łatwe, gdyby wszystkie typy natywnie dopuszczały wartość null, ale muszę użyć typu...

84
Czy .NET ma wbudowaną funkcję EventArgs <T>?

Przygotowuję się do utworzenia ogólnej klasy EventArgs dla argumentów zdarzeń, które zawierają pojedynczy argument: public class EventArg<T> : EventArgs { // Property variable private readonly T p_EventData; // Constructor public EventArg(T data) { p_EventData = data; } //...

83
C # typy ogólne i sprawdzanie typów

Mam metodę, która używa IList<T>parametru jako parametru. Muszę sprawdzić, jaki jest typ tego Tobiektu i zrobić coś na jego podstawie. Próbowałem użyć Twartości, ale kompilator na to nie pozwala. Moje rozwiązanie jest następujące: private static string BuildClause<T>(IList<T>...

83
Wyjaśnienie zasady get-put

Przeczytałem książkę O'Reilly, dzięki której poznałem zasadę wstępu . Użyj extendssymbolu wieloznacznego, gdy otrzymujesz wartości tylko ze struktury. Użyj supersymbolu wieloznacznego, gdy umieszczasz tylko wartości w strukturze. I nie używaj symbolu wieloznacznego, gdy oboje chcecie...

81
Jak porównać wartości typów ogólnych?

Jak porównać wartości typów ogólnych? Zredukowałem to do minimalnej próbki: public class Foo<T> where T : IComparable { private T _minimumValue = default(T); public bool IsInRange(T value) { return (value >= _minimumValue); // <-- Error here } } Błąd: Operator „> =”...

79
Co oznacza „T” w C #?

Mam tło VB i przechodzę do C # dla mojej nowej pracy. Generalnie staram się też polepszyć .NET. Widziałem słowo kluczowe „T” często używane w próbkach, które ludzie publikują. Co oznacza „T” w języku C #? Na przykład: public class SomeBase<T> where T : SomeBase<T>, new() Co robi...