Autor Beitrag
r0xta
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 04.05.10 13:46 
Hallo zusammen,

bin kürzlich in C# auf folgende Elemente gestoßen und wusste nicht wie ich dieses lesen kann / was diese bewirken.

ausblenden C#-Quelltext
1:
2:
3:
4:
    static someMethodName()
    {
      _properties["#highlightedbutton"] = string.Empty;
      ...


sowie



ausblenden C#-Quelltext
1:
2:
3:
public class someClassName{
    [TableColumn("idRecording", NotNull = true), PrimaryKey(AutoGenerated = true)] private int idRecording;
    ...


Kann mir jemand kurz erklären was das jeweils ist / wie ich sowas lesen muss?

Danke schon mal!
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 04.05.10 14:13 
Hallo,

ausblenden C#-Quelltext
1:
_properties["#highlightedbutton"] = string.Empty;					

Den Zugriff mit eckigen Klammern nennt man Index. Dieser kann von einem beliebigen Datentyp sein. In diesem Fall handelt es sich um einen String. Die genaue Datenstruktur hast du nicht mitgeliefert, so dass ich nur raten kann um welche es sind handelt. Ich vermute ein Dictionary<string,string>.

Dabei handelt es sich um ein Key-Value-Container. Der ein Objekt mit einem Schlüssel in dieser Struktur ablegt. Sowohl Schlüssel als auch Wert sind vom Typ string.

Mit _properties["name"] kann man eben auf das Element zugreifen welches man dem Schlüssel "name" zugeordnet hat. In diesem Fall wird es nicht gelesen sondern gesetzt. (setzt voraus, dass der Schlüssel bereits vorhanden ist).

Was [TableColumn("idRecording", NotNull = true), PrimaryKey(AutoGenerated = true)] private int idRecording; genau bewirkt kann ich dir nicht sagen. Ich weiß dass Attribute sind, die für den idRecording Member zählen. So wie es ausschaut gibt man dabei Datenbank Attribute an (Tabellenname, Nullable und das es ein Primary mit Autoincrement ist).

Gruß
r0xta Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 04.05.10 15:18 
Danke schon mal.

Kann es sein dass TableColumn eine Spalte innerhalb einer Tabelle anlegt?

Leider find ich diese Schreibweise in der mir vorliegenden Literatur so nirgends.
Hier wird es bei mir so geführt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
[Table(Name = "Tabelle"]
public class Tabelle
{
   [Column(Name = "Spalte")]
   public string Spalte;
}

public static void Main()
{...}


In dem mir vorliegenden Quellcode geschieht dies eben wie folgt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
  [TableName("Tabelle")]
  public class Tabelle
  {
    [TableColumn("Spalte")] public string Spalte;

...


... kleiner Unterschied mit dem selben Ergebnis?
r0xta Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 04.05.10 17:27 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:

Den Zugriff mit eckigen Klammern nennt man Index


Bin ich hier richtig?:
msdn.microsoft.com/d...tx%28v=VS.80%29.aspx
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 04.05.10 17:36 
Ja, das ist das richtige Kapitel. Jürgen
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 04.05.10 19:58 
Zitat:
Kann es sein dass TableColumn eine Spalte innerhalb einer Tabelle anlegt?

Leider find ich diese Schreibweise in der mir vorliegenden Literatur so nirgends

Da TableColumn offensichtlich ein Attribut ist und man bei Attributen wenn man sie im Code benutzt den PostFix Attribute des Klassennamens weglassen darf solltest du deine Dokumentation bzw. Source Code mal nach dem Klassennamen TableColumnAttribute durchsuchen.
r0xta Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mi 05.05.10 09:38 
Vielen Dank für den Tipp.

Doku ist leider keine vorhanden (OpenSourceProjekt), deswegen muss ich mich grad mit bescheidenen Kenntnissen selbst durchwühlen.
Eine Klasse TableColumnAttribute ist auch nicht vorhanden. Sowohl als Dateiname als auch innerhalb einer Datei (Klassenname und Dateiname weichen bei dem Projekt hin und wieder voneinander ab).
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 05.05.10 10:30 
Dann kommt es wahrscheinlich von einem Third Party Produkt auf das dein OpenSource Projekt aufsetzt. Von der Verwendung des Attributs her errate ich mal das es sich um den Gentle.Net ORM handelt.