Как получить название объектов класса - PullRequest
2 голосов
/ 02 апреля 2011

Как мне получить имена TextLine объектов класса PageHeader (textline1, textline2) в классе формы и отобразить его в форме.Классы как ниже

class Textline
{
    string text;
    string name;
}

class PageHeader
{
    TextLine textline1;
    TextLine textline2;
}

Ответы [ 3 ]

2 голосов
/ 02 апреля 2011

Предположим, у вас есть экземпляр pgHead из PageHeader.Вы можете получить имя textline1 следующим образом:

pgHead.textline1.name

, но в этом примере вы должны добавить public ключевых слов перед всеми членами ваших классов

[EDIT] Если вы хотите получитьтолько имена полей типа PageHeader пробуют отражение, как показано ниже:

var items = typeof(PageHeader).GetFields(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);

string fieldsNames = "";

foreach (System.Reflection.FieldInfo fld in items)
{
    fieldsNames += fld.Name + "\n";
}

MessageBox.Show(fieldsNames);
1 голос
/ 02 апреля 2011

Если вы согласны с ответом Барны, не забудьте установить свойство Имя. Я хотел бы представить соответствующий конструктор:

class TextLine
{
    private string text;
    private string name;

    public TextLine( string name )
    {
       this.name = name;
    }

    public string Name
    {
        get {return name;}
    }
}

А затем используйте его с:

TextLine tl = new textLine("MyName");
System.Console.Out.Writeln( "name of tl: {0}", tl.Name );

НТН

Mario

0 голосов
/ 02 апреля 2011

Я думаю, это то, что вам нужно:

class Textline
{
    string text;
    string name;
    public string Name { get { return name; } }
}

и затем:

textline1.Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...