1

好的。我试图掌握构造函数。我想把这个员工命名为 Stormtrooper。但它似乎没有调用它。我不知道我是否没有正确阅读构造函数或什么,但这就是我所拥有的

任何帮助,将不胜感激。我意识到这是一个非常菜鸟的问题。

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

namespace ConsoleApplication297
{
public class Program
{
    static void Main(string[] args)
    {
        Employee s = new Employee(name);
        Console.WriteLine(s.Name);
        Console.ReadKey();
    }

    public class Employee
    {
        private string name;

        public string Name
        {
            get
            {
                return name;
            }
        }
        public Employee(string name)
        {
            name = Stormtrooper;
        }
    }
}

}

4

4 回答 4

7

在您的构造函数中,您将局部变量设置为StormTrooper(这是无效的,因为它没有在任何地方声明。如果您希望它是一个字符串,它需要用引号引起来,即"StormTrooper"

应该是这样的:

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

关键字代表类的this实例,然后设置私有变量name为named传入的变量name

我通常这样命名我的私有变量private string _name,所以我可以有一个这样的构造函数:

public Employee(string name)
{
      _name = name;
}
于 2013-08-13T02:19:25.493 回答
4

您需要向 Employee 发送一个字符串。

您从未在此代码中定义名称

Employee s = new Employee(name);

所以改为尝试

String name = "Stormtrooper";
Employee s = new Employee(name);

或者,您可以在不创建变量的情况下直接发送字符串。如果您只是构建类,则无需初始化和存储变量。

Employee s = new Employee("Stormtrooper");

感谢 PostMan,还修复了您的实际构造函数

public Employee(string name)
{
this.name = name;
}
于 2013-08-13T02:19:06.657 回答
2

您需要将 a 传递string给构造函数,如下所示:

Employee s = new Employee("Stormtrooper");

此外,这通常是一个坏主意,因为它会使阅读/维护您的代码的人混淆以调用类成员变量和构造函数的参数相同的东西(name在这种情况下)。而是使用属性 value Name,如下所示:

public Employee(string name)
{
    Name = Stormtrooper;
}

注意:很多时候,您会在类成员变量上看到下划线 ( _) 或其他前缀(如),如下所示:my

public class Employee
{
    private string _name;

    public string Name
    {
        get
        {
            return _name;
        }
    }
    public Employee(string name)
    {
        _name = Stormtrooper;
    }
}

同样,这通常更容易从构造函数参数中的属性名称中快速区分变量。

于 2013-08-13T02:23:43.107 回答
1

Microsoft 网站上有一篇关于构造函数的官方帖子 - http://msdn.microsoft.com/en-us/library/vstudio/ace5hbzh.aspx这将帮助您正确使用构造函数以及选择合适的构造函数构造函数

于 2013-08-13T03:03:41.957 回答