Forum: PC Hard- und Software c#: Modulnamen


von Uhu U. (uhu)


Lesenswert?

Wie findet man am einfachsten heraus, in welchem Modul der gerade 
benutzten .net-Version eine Klasse steckt?

Beispiel: die Klasse Monitor.
Wenn man in VisualStudio den Namen tippt, ohne daß der zugehörige Modul 
mit using vereinbart ist, tut sich nichts, wenn man mal von 
einschlägigen Fehlermeldungen absieht.

Ich habe mehr oder weniger per Zufall herausgefunden, daß
1
   using System.Threading;
die Klasse unter .net 2.0 Compact hervorzaubert. (In anderen Versionen 
gibt es einen Modul System.Threading.Monitor)

Ziemlich unbefriedigend...

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Beispiel: die Klasse Monitor.

einfach on die doku zu Monitor schauen?

von Uhu U. (uhu)


Lesenswert?

Peter II schrieb:
> einfach on die doku zu Monitor schauen?

Die führt in meinem speziellen Fall auf System.Threading.Monitor - den 
es unter .net 2.0 Compact nicht gibt.

M$-Dokus sind eine Pest.

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Die führt in meinem speziellen Fall auf System.Threading.Monitor - den
> es unter .net 2.0 Compact nicht gibt.

laut doku schon

Versionsinformationen
.NET Framework
Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 3.5, 2.0, 1.0
XNA Framework
Unterstützt in: 2.0, 1.0

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> M$-Dokus sind eine Pest.

nur weil du damit nicht umgehen kannst? Sie sind eines der besten doku 
wo wirklich alles drin steht, auch viele Anmerkungen auf was man zu 
achten hat.

von Uhu U. (uhu)


Lesenswert?

Peter II schrieb:
> laut doku schon

Witzbold. Doku lesen kann ich selbst und einen Rat, was zu tun ist, wenn 
die Implementierung offensichtlich nicht zur Doku paßt, hast du 
Schlaumeier auch nicht.

> nur weil du damit nicht umgehen kannst?

Aber saudumme Sprüche klopfen...

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Witzbold. Doku lesen kann ich selbst und einen Rat, was zu tun ist, wenn
> die Implementierung offensichtlich nicht zur Doku paßt, hast du
> Schlaumeier auch nicht.

woher soll ich wissen welche Fehlermeldung du bekommst?
Muss man eventuell unter dem CF die mscorlib als Referenz erst 
hinzufügen?
Welche Namespace ist denn unter System verfügbar?

von Peter II (Gast)


Lesenswert?

oder kann es sogar sein das du nur CF1.1 hast? Denn dort gibt es das 
wirklich nicht.

von Uhu U. (uhu)


Lesenswert?

Lesen ist nicht dein Ding. Die Lösung zu dem Monitor-Problem steht im 
Eingangsposting.

Eine generelle Lösung für derlei Probleme suche ich, weil ich immer 
wieder auf solche Klippen auflaufe.

Und nein, ich habe definitiv 2.0.

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Eine generelle Lösung für derlei Probleme suche ich, weil ich immer
> wieder auf solche Klippen auflaufe.

gut also hast du es schon gelöst, und welche info davon steht nicht in 
der doku?

http://msdn.microsoft.com/de-de/library/system.threading.monitor%28v=vs.90%29.aspx

Es steht drin, in welchen namespace sie verfügbar ist. Es steht da unter 
welchen Platform sie verfügbar ist. Und es steht da in welchen assembly 
sie ist. Was hat dir also zu deinen glück gefehlt?

von Peter II (Gast)


Lesenswert?

nachtrag:

Es steht doch wohl eindeutig da

> Namespace:  System.Threading

verstehe also immer noch nicht wo du damit ein Problem hattest.

von Uhu U. (uhu)


Lesenswert?

Peter II schrieb:
> Was hat dir also zu deinen glück gefehlt?

Ich suche nach einer Möglichkeit, derlei Informationen aus dem SDK 
heraus zu holen. Bei c guckt man bei derlei Dingen in den .h-Files, oder 
grept und weiß bescheid.

Bei C# kenne ich bisher nichts vergleichbares. Aber die Information muß 
irgendwo drin stecken, denn VS kennt die Symbole ja ab dem Moment, wo 
man die entsprechende using-Anweisung gibt.

Gibt es irgend einen Viewer für Assemblies, oder besser noch ein 
Kommandozeilen-Tool mit dem man die Symbole in eine Textdatei holen 
kann?

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Gibt es irgend einen Viewer für Assemblies
ja, einfach im Studio den Klassenbrowser verwenden.

> Ich suche nach einer Möglichkeit, derlei Informationen aus dem SDK
> heraus zu holen. Bei c guckt man bei derlei Dingen in den .h-Files, oder
> grept und weiß bescheid.
naja ich lese lieber die doku wo genau das drin steht und auch auch die 
infos über die Verwendung rauslesen kann. Warum sollte ich mich durch 
irgendwelche headerfile hangeln die sich selber wieder inlcude und bei 
ifdef unleserlich werden.

Selbst bei C gebe ich einfach

man fopen

ein, und dort steht alles notwendige drin.

von Uhu U. (uhu)


Lesenswert?

Solche Symbolverzeichnisse erleichtern die Grobsuche. Wenn ein Name 
nicht vorkommt, braucht man im betreffenden Kontext nicht weiter zu 
suchen. Außerdem bekommt man schnell einen Überblick, was vorhanden ist 
und wo.

ClassView ist schonmal was, aber wenn man keine Idee hat, was in Frage 
kommen könnte, dann kann man ganz schön rumklicken. Eine poplige 
ASCI-Text-Liste mit Namespace : Symbol ist da doch deutlich überlegen.

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Solche Symbolverzeichnisse erleichtern die Grobsuche.

also wenn ich eine klasse nicht kenne kann ich sie auch nicht suchen.

Und für den Rest gibt es die Klassenübersicht in der MSDN.

von Uhu U. (uhu)


Lesenswert?

Peter II schrieb:
> also wenn ich eine klasse nicht kenne kann ich sie auch nicht suchen.

Wenn ich einen Topf habe, in dem einfach alle Symbole aus allen 
Komponenten habe, dann sind mögliche Kandidaten für eine gesuchte 
Funktion sehr schnell gefunden.

Kennst du die Kompaktversionen näher?
Der Pocket-PC hat ja keine Maus und man bekommt vom Stift nur 
MouseUP-Events mit der linken Taste. (MouseDown bekomme ich nicht, aber 
vielleicht verdeckt das Click-Event da irgendwas.)

Kontextmenüs werden durch einen längeren Druck auf ein Control 
ausgelöst. Bevor das Menü hochpappt, wird um die Stiftspitze aus blauen 
Punkten eine Kreisanimation gezeichnet, wenn der Kreis geschlossen ist, 
kommt das Menü.

Ich hätte gerne diese Kreis-Funktion, weiß aber nicht, ob ich da 
überhaupt ran komme. Hast du eine Idee?

von Peter II (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Kennst du die Kompaktversionen näher?

nein leider nicht. Ich musste nur mal für jemand in C etwas 
Programmieren was ein CF 1.1 nicht machbar war.

von Arc N. (arc)


Lesenswert?

Uhu Uhuhu schrieb:
> Ich hätte gerne diese Kreis-Funktion, weiß aber nicht, ob ich da
> überhaupt ran komme. Hast du eine Idee?

SHRecognizeGesture dürfte für die Animation zuständig sein
http://msdn.microsoft.com/en-us/library/aa925176.aspx
Ansonsten könnte das vielleicht auch mit LoadAnimatedCursor/SetCursor 
umsetzbar sein.

von Uhu U. (uhu)


Lesenswert?

SHRecognizeGesture gibt es natürlich auf 2.0 compact nicht - aber mit 
dem Hinweis habe ich zumindest einen Link auf eine Trickserei gefunden, 
die vielversprechend aussieht: 
http://msdn.microsoft.com/de-de/magazine/cc185722%28en-us%29.aspx#S3

Danke für den Tipp!

von Uhu U. (uhu)


Angehängte Dateien:

Lesenswert?

So, jetzt habe ich was gefunden, was die Sucherei entscheidend 
vereinfacht:

   http://www.pinvoke.net/default.aspx/

Und die Liste der von den DLLs des .net CF habe ich mir auch entliehen - 
siehe Anhang.

Und SHRecognizeGesture ist dort auch begraben und ich kann es sogar 
absturzfrei aufrufen. Wenn ich es jetzt auch noch zum Funktionieren 
kriege, ists perfekt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.