C#控制台问题

时间:2009-04-25 13:02:13

标签: c# .net visual-studio-2008 console getter

考虑这个课程:

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

我做错了什么?

理查德

2 个答案:

答案 0 :(得分:3)

对我来说很好:

using System;

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

(还有你的班级。)

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

答案 1 :(得分:0)

您是否在与包含“项目”的项目不同的项目中使用Main类?如果是的话,那么

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

    public class Item {
        // your code
    }
    

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

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

此外,在执行后暂停一下,否则你的控制台窗口将不会显示任何内容

Console.ReadLine();

同时检查using子句,根据最后的注释,您必须在文件顶部使用using子句来尝试使用Item类

using Game;