【问题标题】:How to pass parameter to constructor [closed]如何将参数传递给构造函数[关闭]
【发布时间】:2017-10-23 06:50:53
【问题描述】:

基本上我的代码如下。

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter the name of the coursebook");
            String cousebookname = Console.ReadLine();
            Person p1 = new Person(String cousebookname);
            p1.displayMessage();
        }
    }
}
public class Person
{
    private String courseName;
    Person(String name)
    {
        courseName = name;
    }
    public void displayMessage()
    {
        Console.WriteLine("The name of the course is \n{0}", courseName);
    }

}

我创建了 Person 类并将 courseName 定义为私有变量、构造函数和方法。在主类中,我创建了 Person 对象的创建实例。根据我的理解,一旦创建实例,构造函数就会被初始化。当我传递参数 String coursebookname 时,出现错误,提示“当前上下文中不存在名称 cousebookname”。请帮忙。

【问题讨论】:

  • 您只能定义一次coursebookname 变量(即在您指定类型时)。当您将变量名称传递给 Person 构造函数时,从变量名称之前删除 String 名称,它应该可以正常工作。
  • Person p1 = new Person(cousebookname); 抛开拼写。
  • 该错误的原因是您的类 Person 存在于命名空间之外。

标签: c# constructor


【解决方案1】:

应该是:

Person p1 = new Person(cousebookname);

【讨论】:

  • 错误仍然存​​在
  • 'Person.Person(string)' 由于其保护级别而无法访问
  • @pallavidestiny22 那么让构造函数public怎么样?
  • 是的,然后谢谢
【解决方案2】:

做一些调整:

    Person p1 = new Person(cousebookname);

只传递变量名。

public Person(String name)
    {
        courseName = name;
    }

将构造函数公开。

【讨论】:

    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多