Chcę wygenerować listę wszystkich metod w klasie lub w katalogu klas. Potrzebuję również ich typów zwrotu. Wyprowadzenie go do pliku tekstowego zrobi ... Czy ktoś wie o narzędziu, sprzęcie dla VS lub coś, co wykona zadanie? Im przy użyciu C# przy okazji i Visual Studio 2008 jako IDEWygeneruj listę metod klasy z typami metod
Odpowiedz
Oczywiście - użyj Type.GetMethods(). Będziemy chcieli, aby określić różne flagi wiążących aby uzyskać metody niepubliczne itp Jest to dość surowy, ale wykonalne punkt wyjścia:
using System;
using System.Linq;
class Test
{
static void Main()
{
ShowMethods(typeof(DateTime));
}
static void ShowMethods(Type type)
{
foreach (var method in type.GetMethods())
{
var parameters = method.GetParameters();
var parameterDescriptions = string.Join
(", ", method.GetParameters()
.Select(x => x.ParameterType + " " + x.Name)
.ToArray());
Console.WriteLine("{0} {1} ({2})",
method.ReturnType,
method.Name,
parameterDescriptions);
}
}
}
wyjściowa:
System.DateTime Add (System.TimeSpan value)
System.DateTime AddDays (System.Double value)
System.DateTime AddHours (System.Double value)
System.DateTime AddMilliseconds (System.Double value)
System.DateTime AddMinutes (System.Double value)
System.DateTime AddMonths (System.Int32 months)
System.DateTime AddSeconds (System.Double value)
System.DateTime AddTicks (System.Int64 value)
System.DateTime AddYears (System.Int32 value)
System.Int32 Compare (System.DateTime t1, System.DateTime t2)
System.Int32 CompareTo (System.Object value)
System.Int32 CompareTo (System.DateTime value)
System.Int32 DaysInMonth (System.Int32 year, System.Int32 month)
(etc)
Co ciekawe, czy to zwraca wszystkie metody bieżącego typu, czy też zawiera wszystkie publiczne metody jego klas macierzystych? –
@ LoïcFaure-Lacroix: Istnieje bardzo prosty sposób na sprawdzenie go :) (Nie pamiętam od siebie, ale łatwo jest przetestować ...) –
OK, zrobiłem kilka testów. Jestem prawie pewien, że pokazuje wszystkie publiczne metody. Chociaż wydaje się, że istnieje atrybut "DeclaringType", który wydaje się być typem, który zadeklarował metodę. Jeśli więc ktoś chce filtrować dany obiekt w hierarchii, powinno to być możliwe. –
Możesz dostać się na tych listach bardzo łatwo z refleksji. na przykład z Type.GetMethods()
using (StreamWriter sw = new StreamWriter("C:/methods.txt"))
{
foreach (MethodInfo item in typeof(MyType).GetMethods())
{
sw.WriteLine(item.Name);
}
}
- 1. Uzyskaj listę metod klas dla dowolnej klasy
- 2. Programowe generowanie metod klasy
- 3. Eclipse IDE. Zobacz listę wszystkich odziedziczonych metod klasy
- 4. Wywoływanie metod modułu nadrzędnego z zagnieżdżonej klasy
- 5. Ogólne ograniczenia przeciążenia metod:
- 6. Zawijanie wywołań do metod klasy Pythona
- 7. Testowanie metod klas z pytestem
- 8. Efektywność Java przenoszenia metod do innej klasy
- 9. C++ inline metod klasy powoduje niezdefiniowane odniesienie
- 10. Rails & RSpec - Badanie dotyczy metod klasy
- 11. Zależne typy metod i klasy typów
- 12. Dynamicznie dostęp do metod klasy TypeScript
- 13. Lista metod instancji aktualnej klasy tylko
- 14. Jak mogę wyświetlić listę metod w module Python 2.5?
- 15. Porządkowanie metod rozszerzeń
- 16. W programie Scala łączenie metod obiektów jako metod klas
- 17. Jak uzyskać listę metod w Eclipse bez dziedziczenia (skrót)?
- 18. Jak dodać metod klasy wygoda do klasy Singleton w Ruby
- 19. Grupowanie metod javadoc
- 20. Dodanie dodatkowych metod do klasy JAXB wytwarzanej z schematu
- 21. Wywoływanie metod z klasy super, gdy tworzona jest podklasa,
- 22. Uzyskiwanie dostępu do metod z innej klasy w C#
- 23. Moduły ES6: Eksportuj pojedyncze klasy metod statycznych LUB wiele pojedynczych metod
- 24. Konstruktorzy vs Metod fabrycznych
- 25. Użyj metod Hub z kontrolera?
- 26. Wracając AnyVal z metod Scala
- 27. Nieoczekiwane zachowanie z przeciążonych metod
- 28. Złożoność czasowa metod HashMap
- 29. lista metod dla powłoki Pythona?
- 30. Woocommerce zwraca listę pustych tablic podczas pobierania metod dostawy
Czy masz źródło (.cs), czy skompilowałeś złożenia? Jest ogromna różnica ... –
Katalog klas sugeruje, że jego kod ... to komplikuje rzeczy nieco –
nie, to bardzo komplikuje rzeczy ;-p –