Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#控制台问题_C#_.net_Visual Studio 2008_Console_Getter - Fatal编程技术网

C#控制台问题

C#控制台问题,c#,.net,visual-studio-2008,console,getter,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; }

以这一类为例:

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();
我做错了什么

理查德对我来说很好:

using System;

namespace Application
{
    class Test
    {
        static void Main()
        {
            Item item1 = new Item("Item1", "Description...");
            Console.WriteLine(item1.Name);
            Console.WriteLine(item1.Description);
        }
    }
}
(你的班级也在那里。)


当你说“这不起作用”时,到底出了什么问题?

你在一个与包含“Item”的项目不同的项目中使用你的主类吗?如果是,那么

  • 参考其他项目
  • 将项目类标记为公共

    public class Item {
        // your code
    }
    
或者,您可以尝试以这种方式访问,以查看问题是否与名称空间有关

Console.WriteLine(Application.item1.Name);
Console.WriteLine(Application.item1.Description);
此外,在执行后暂停,否则控制台窗口将不显示任何内容

Console.ReadLine();
还要检查using子句,根据最后的注释,您必须在试图使用Item类的文件顶部使用using子句

using Game;

关于我能想到的唯一一件事,如果在项目名称空间之外使用,则将类本身声明为公共的……嗯,当我单击“开始调试”时,控制台窗口出现,但它是空的。什么都没有。两个命令:Console.WriteLine(item1.Name);控制台写入线(项目1.说明);他们什么也不做。仅此项有效(ToString()):Console.WriteLine(item1);请将此信息添加到您的问题中(或者我猜有足够代表性的人迟早会这样做;(同时尝试包括实际使用的代码和类/文件/命名空间结构)鉴于我上面的简短但完整的程序运行良好,听起来你在做一些奇怪的事情-请发布一个简短但完整的程序,显示这种奇怪的行为。如果你没有,请尝试安装30天免费试用的Resharper-它将检测并修复许多问题,如名称空间问题、保护问题等等ot…以及建议良好的命名约定-良好的学习材料。当你说“这不起作用”时,你的确切意思是什么?编译器错误?运行时错误?结果不正确?崩溃?换行符打印出来了吗?控制台怎么样?
ReadLine
?它工作吗?请粘贴一个演示问题的完整程序,换句话说,将所有内容放在一个文件中,删除演示时不需要的所有内容问题,验证您仍然存在问题,然后将其粘贴到此处。建议关闭asn“不再相关”,因为他有一个答案,这是针对他完整的问题(他没有发布)的,没有人会遇到相同的问题。此外,主题行不好。我可能必须更改我的答案“十大最差主题行”至“二十大最差主题行”。