Re: Falsch Typ Erkennung ?



Hallo Milan,

Milan schrieb:
ich werde deine Schreibvorschläge akzeptiert, danke für sie.

Danke für das bessere Zitieren, so ist das erheblich leichter zu lesen.

C#-"Standard" bei der Benennung wäre z.B. eine Variable nicht als
"string str_class_X" zu deklarieren, sondern als "string clazz" oder
"string typeName" o.ä.

[ Naming Guidelines ]
http://msdn.microsoft.com/en-us/library/xzf533w0%28VS.71%29.aspx

Einen deutschen Artikel finde ich dazu gerade nicht.

Ich muss von NHibernate eine Funktion aufrufen die gib zurück eine IList<T>.

Welche? Ich habe auch schon mit NHibernate gearbeitet.

Ich habe hier vereinfache dass ist mehr verstehbar.

Das hat es eher verkompliziert...

Statt IList<T> ich
spreche hier über List<T> und wie gesagt ich sollte nicht selber eine liste
Herstellen sonst eine List<T> bekommen, und dann mit dem "ElementAt" einzelne
Elemente zugreifen.

Warum ElementAt?!
Lass doch den Blödsinn und nimm den korrekten Weg über Item.

Für jede Iteration im "for" schleife ich muss
andere Deklaration von
List <class_X>

benutzen und um mit immer unterschiedliche Typ zu umgehen desto habe ich als
linke Seite immer ein "object" Typ deklariert.

object listClass_X = NHibernate(str_class_X);

Ja, das sieht gut aus.

wie kann ich jetzt innerhalb listClass_X eine Methode ElementAt finden ? Typ
"object" hat keine ElementAt Methode.

Hättest Du das einfach mal am Anfang so erklärt...

Hier die Lösung:

// Schöner wäre es, direkt mit Type-Instanzen
// statt mit Strings zu arbeiten
foreach( string className in classNames )
{
object list = NHibernateMethod( className );

Type listType = list.GetType( );

// nur zu Demozwecken
PropertyInfo pCount = listType.GetProperty( "Count" );
int count = ( int )pCount.GetValue( list, null );

PropertyInfo pItem = listType.GetProperty( "Item" );

for( int i=0; i < count; i++ )
{
object obj = pItem.GetValue( list, new object[] { i } );
Console.WriteLine( "ElementAt({0}): {1}", i, obj ?? "<null>" );
}
}

Ich hoffe, das beantwortet jetzt Deine Frage.

Gruß
Marvin
.



Relevant Pages

  • Re: Create Forms via Parameter
    ... need the classname to retrieve a class registered via RegisterClasses. ... Function ShowFormByName(const formname: String; ... variable, the form reference, and that can be had the way shown above. ... The VCL contains a suitable class registry, ...
    (borland.public.delphi.language.objectpascal)
  • Re: DirectCom.dll: vb sample -> vfp
    ... GETINSTANCE erwartet als String-Parameter jeweils den Pointer ... Dim D As Object, FName As String, ClassName As String ... ClassName = StrConv'nach ANSI ...
    (microsoft.public.de.fox)
  • Re: String problem VS 2005
    ... the console the Classname and the text in the notepad window. ... The first output to the console is "N" and not ... I dont understand how to work with all the C++ string format. ...
    (microsoft.public.dotnet.languages.vc)
  • Re: Get Path Where A Class Is Located
    ... Call it jwhich. ... And then use the class file compiled from the code below: ... @param className The full name of the class. ... public static String which ...
    (comp.lang.java.programmer)

Loading