Odbicie to zdolność programu do obserwowania i / lub modyfikowania jego struktury i / lub zachowania w czasie wykonywania. Refleksja zależy od obsługiwanego języka programowania - należy oznaczyć język programowania używany podczas używania tego znacznika.
Ze względu na implementację generycznych Java, nie możesz mieć takiego kodu: public class GenSet<E> { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation } } Jak mogę to zaimplementować, zachowując bezpieczeństwo typu? Na forach Java zobaczyłem takie rozwiązanie: import java.lang.reflect.Array; class Stack<T> { …
Jaki jest najlepszy sposób na wywołanie metody ogólnej, gdy parametr type nie jest znany w czasie kompilacji, a zamiast tego jest uzyskiwany dynamicznie w czasie wykonywania? Rozważ następujący przykładowy kod - w jaki Example()sposób najbardziej zwięzły sposób wywołać GenericMethod<T>()za pomocą Typeprzechowywanej w myTypezmiennej zmiennej? public class Sample { public void …
Próbuję zaimplementować transformację danych przy użyciu przykładu Reflection 1 w moim kodzie. GetSourceValueFunkcja posiada przełącznik porównujące różne typy, ale chcę, aby usunąć te rodzaje i właściwości i mają GetSourceValueuzyskać wartość właściwości przy użyciu tylko jednego ciągu jako parametru. Chcę przekazać klasę i właściwość w ciągu i rozstrzygnąć wartość właściwości. czy …
Czy istnieje sposób na uzyskanie ścieżki do zestawu, w którym znajduje się bieżący kod? Nie chcę ścieżki do wywołującego zestawu, tylko tego zawierającego kod. Zasadniczo mój test jednostkowy musi odczytać niektóre pliki testowe xml, które znajdują się w stosunku do biblioteki dll. Chcę, aby ścieżka zawsze była poprawnie rozwiązywana bez …
Nie zawsze można znać Typeobiekt w czasie kompilacji, ale może być konieczne utworzenie instancji obiektu Type. Jak uzyskać nową instancję obiektu z Type?
Jeśli mam dwie zmienne: Object obj; String methodName = "getName"; Nie znając klasy obj, jak mogę wywołać metodę identyfikowaną przez methodNamenią? Wywoływana metoda nie ma parametrów i Stringzwraca wartość. To jest getter dla fasoli Java .
Ma odbicie w C#ofercie taki sposób, aby ustalić, czy niektórych podanych System.Typemodeli typu jakiś interfejs? public interface IMyInterface {} public class MyType : IMyInterface {} // should yield 'true' typeof(MyType)./* ????? */MODELS_INTERFACE(IMyInterface);
Używając refleksji, w jaki sposób mogę uzyskać wszystkie typy, które implementują interfejs z C # 3.0 / .NET 3.5 z najmniejszym kodem i minimalizując iteracje? Oto, co chcę ponownie napisać: foreach (Type t in this.GetType().Assembly.GetTypes()) if (t is IMyInterface) ; //do stuff
Korzystam z odbicia, aby przeglądać Typewłaściwości a i ustawiać niektóre typy na domyślne. Teraz mógłbym zmienić typ i ustawić default(Type)jawnie, ale wolałbym to zrobić w jednym wierszu. Czy istnieje programowy odpowiednik wartości domyślnej?
Jak mogę to osiągnąć? public class GenericClass<T> { public Type getMyType() { //How do I return the type of T? } } Wszystko, czego do tej pory próbowałem, zawsze zwraca typ, Objecta nie określony typ.
Chciałbym wiedzieć, czy można uzyskać atrybuty enumwartości, a nie enumsamego? Załóżmy na przykład, że mam następujące elementy enum: using System.ComponentModel; // for DescriptionAttribute enum FunkyAttributesEnum { [Description("Name With Spaces1")] NameWithoutSpaces1, [Description("Name With Spaces2")] NameWithoutSpaces2 } To, czego chcę, to typ wyliczenia, wykonanie 2 krotek wartości ciągu wyliczeniowego i jego opis. …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.