1

考虑这个类:

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();

我究竟做错了什么?

理查德

4

2 回答 2

3

对我来说很好:

using System;

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

(你的班级也在那里。)

当您说“这不起作用”时,究竟出了什么问题?

于 2009-04-25T13:04:38.437 回答
0

您是否在与包含“项目”的项目不同的项目中工作主类?如果是这样,那么

  • 参考其他项目
  • 将您的项目类标记为公开

    public class Item {
        // your code
    }
    

或者您可以尝试通过这种方式访问​​,看看问题是否与命名空间有关

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

另外,请在执行后暂停,否则您的控制台窗口将不显示任何内容

Console.ReadLine();

还要检查 using 子句,根据最后一条评论,然后您必须在尝试使用 Item 类的文件顶部使用 using 子句

using Game;
于 2009-04-25T13:08:26.040 回答