首页 > 解决方案 > 如何将我的数组属性包含到类构造函数中并能够通过对象初始化访问它?

问题描述

我对编程非常陌生,并且正在学习中。这是我的代码

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person("john", "doe", tittles:null);
            Person td = new Person("tom","jones");
            Person w = new Person();
            Console.WriteLine(td);
            Console.WriteLine(p.SayHello("vahid"));
            var str = p.SayHello("nick");
            Console.WriteLine(str);
            p.DoSome();
            var m = w.Tittles[0];
            Console.WriteLine(m);



        }
    }
    public class Person
    {

        public string FirstName { get; private set; }
        public string LastName { get; private set; }
        private string[] tittles = new string[6] {
            "Mr","Mrs", "Miss","Sir", "Doctor","Sister"
        };
        public string[] Tittles
        {
            get { return tittles; }
            set { tittles = value; }
        }

        public Person()
        {

        }
        public Person(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }
        public Person(string firstName, string lastName, string[] tittles  )
        {
            FirstName = firstName;
            LastName = lastName;
            Tittles = tittles;

        }
        public override string ToString()
        {
            return "Welcome to C# " + Tittles[0] + " " + FirstName + " " + LastName;
        }
        public string SayHello(string name)
        {
            return "hello " + name;
        }
        public void DoSome()
        {
            Console.WriteLine(FirstName + " "+ LastName + " this is a void method.");
        }

    }
}

我的问题是如何在 Person p = new Person("john", "doe", tittles:null); tittles 是我的字符串数组,例如我尝试过 tittles[1] 但最终出现错误。有没有办法做到这一点?谢谢

标签: c#oop

解决方案


这是一种方法:

Person p = new Person("john", "doe", new string[] { "one", "two" });

或者,您可以使用params关键字来定义一个接受任意数量的字符串的构造函数:

        public Person(string firstName, string lastName, params string[] tittles)
        {
            FirstName = firstName;
            LastName = lastName;
            Tittles = tittles;
        }

然后,您可以创建具有任意数量标题的 Person 对象,而无需创建临时字符串数组:

Person p = new Person("john", "doe", "one", "two");
Person j = new Person("jane", "doe", "one", "two", "three");
Person td = new Person("tom", "jones", "mr");

推荐阅读