我是编程初学者,我想问你最简单的问题 我做了这样的事情:
class person
{
private string name;
public string surname;
private int year;
}
class student : person
{
}
class Program
{
static void Main(string[] args)
{
List<student> list = new List<student>();
list.Add(new student()
{
surname = "jordan"
// name ... ???
// year .. ?
});
}
}
如果我有get
字段,我该如何正确使用set
和private
?如何为name
或year
分配值?
答案 0 :(得分:0)
(注意对类和属性使用大写,为字段和局部变量保留小写)。
声明为public
properties,如此:
class Person
{
public string Surname {get; set;}
}
用法:
new Person{
Surname = "jordan"
};
或使用private
setter,并在构造函数中设置。
class Person
{
public Person(string surname)
{
Surname = surname;
}
public string Surname {get; private set;}
}
用法:
new Person("jordan");
或private
字段,也在构造函数中设置(相同用法)。
class Person
{
private string surname;
public Person(string surname)
{
this.surname = surname;
}
public string Surname {get{return surname;}}
}
答案 1 :(得分:0)
您可以在构造函数中设置私有属性,如下所示:
public class person
{
private string name { get; set; };
public string surname { get; set; };
private int year { get; set; };
public person(string name, int year)
{
this.name = name;
this.year = year;
}
}
public class student : person
{
public student(string name, int year) : base (name, year) { };
}
并且可以使用:
list.Add(new student("name", 45)
{
surname = "jordan"
});
答案 2 :(得分:0)
即使字段是私有的,您也可以提供公共属性。你应该这样做,因为这些字段不应该从外部访问,如果它们只是支持属性的字段,则更是如此。
class person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string surname;
public string Surname
{
get { return surname; }
set { surname = value; }
}
private int year;
public int Year
{
get { return year; }
private set { year = value; }
}
}
现在这些字段是私有的,您可以根据需要更改属性的访问修饰符。您甚至可以将setter设为私有,如Year
属性中所示。
List<Person> list = new List<Person>();
list.Add(new Person()
{
Name = "Michael",
Surname = "jordan",
});
现在您无法从外部修改Year
,因为它是private
。您可以提供适当的构造函数来初始化它。