Проблема с консолью C # - PullRequest
1 голос
/ 25 апреля 2009

Рассмотрим этот класс:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Game.Items
{
    class Item
    {
        private string name;
        public string Name
        {
            get { return this.name; }
        }

        private string description;
        public string Description
        {
            get { return this.description; }
        }

        public Item(string name, string description)
        {
            this.name = name;
            this.description = description;
        }

        public override string ToString()
        {
            return this.name;
        }
    }
}

Затем я создаю новый объект, подобный этому:

Item item1 = new Item("Item1", "Description...");

Теперь проблема в том, что я не могу получить доступ к свойствам объекта с помощью метода getter, т.е. это не работает:

Console.WriteLine(item1.Name);
Console.WriteLine(item1.Description);
Console.ReadLine();

Под «не работает» я имею в виду, когда я нажимаю «Начать отладку», появляется окно консоли, но ничего нет, оно пустое. Тем не менее, это прекрасно работает:

Console.WriteLine(item1); // ToString()
Console.ReadLine();

Что я делаю не так?

Richard

Ответы [ 2 ]

3 голосов
/ 25 апреля 2009

отлично работает у меня:

using System;

namespace Application
{
    class Test
    {
        static void Main()
        {
            Item item1 = new Item("Item1", "Description...");
            Console.WriteLine(item1.Name);
            Console.WriteLine(item1.Description);
        }
    }
}

(С твоим классом тоже.)

Когда вы говорите «это не работает», что именно идет не так?

0 голосов
/ 25 апреля 2009

Работаете ли вы с основным классом в проекте, отличном от проекта, в котором содержится "Элемент"? если так, то

  • Ссылка на другой проект
  • Пометить свой класс предметов как общедоступный

    public class Item {
        // your code
    }
    

Или вы можете попытаться получить доступ к этому способу, чтобы увидеть, связана ли проблема с пространствами имен

Console.WriteLine(Application.item1.Name);
Console.WriteLine(Application.item1.Description);

Кроме того, ставьте паузу после выполнения, иначе окно консоли будет отображаться, ничего не показывая

Console.ReadLine();

Проверьте также условия использования, в соответствии с последним комментарием, вам нужно использовать предложение использования в верхней части файла, где вы пытаетесь использовать класс Item

using Game;
...