花牌
public int Age
{
get => age;
set { if (3 < value && value < 7) age = value; }
}
乌薪王
将属性设置为私有变量,然后只声明公有get方法,然后通过设置一个有参的构造方法,将你要设置的属性值在构造方法中赋值,这样在外部类访问的时候只能赋值一次且不可修改,可以通过公有的访问器方法获取属性值
我简写一点代码示例
前面头部和命名空间我省略
class Child{
private string name;
private char sex;
public Childern(string name,char sex){
this.name = name;//将传进来的值赋值给当前对象
this.sex = sex;
}
public string Name{
get {return name;}//只声明get访问器,不要声明set访问器
}
public char getSex(){
get{return sex;}//只声明get访问器,不要声明set访问器
}
}
这样你在其他的类中创建该对象时只有一次赋值操作,但是你要是在Child中写Main方法访问该值,那仍然是可以修改的,因为private的限制范围为“类私有”,只要不出了本类的作用域还是可以修改,但是在其他类新建了Child对象就不可以修改了,比如你在一个叫People的类中new了一个Child对象,这时通过构造器赋值的属性就不可以再修改了
慕的地6526711
qq_世界_19
set后面语句删掉改成如下:
set{添加判断逻辑}
慕容814163
这里value其实就是你在组函数调用的setter所赋予的值
比如主函数里面xiaoMing.Name = "xia";则value是来自于这里的value。给value赋值的函数实际是set函数自动帮你完成的
qq_過客i_0
后来赋值的把前面的覆盖了,就像你本来叫“小明”,后来父母给你改名叫“小强”,那你现在叫什么呢?当然是“小强”
Rainary
stativc void main(string[] args)
{
zai zhe li xie
}
慕粉3508730
西江月i
private int age;
public int Age
{
get { return age; }
set {
if (value>=3&&value <= 7)
age = value; }
}方法中 value 是形参,也就是自己传入的值,所以是对value进行判断, age是类的变量属性,在set方法中,用来接收赋值就可以了。
如果问题已解决,请采纳下答案。 祝你学习顺利 。
冷_格调
用了set访问器就可以修改字段。 5变成6两个值都符合value的条件,后者覆盖前者的值。
无言80
weibo_林夕君Kyu_03150698
贴出你的代码来
dxyz
可以的,你被上面误导了,正确的方式应该是
if(value=="男"||value==“女”){
_sex=value;
}
慕设计7170223
代码全部复制出来,不要截图