怎么能够引用后只能进行一次赋值

来源:2-4 C# 通过set块约束属性赋值

乌薪王

2018-10-24 00:04

比方说上面的性别,怎么写代码能让Main里赋值一次后就不允许第二次赋值或第二次无效

就像已经被赋值为男,下面在给同一个人赋值为女,下面的这个赋值命令无效

写回答 关注

1回答

  • 你最重要79
    2018-10-26 20:50:47
    已采纳

    将属性设置为私有变量,然后只声明公有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对象,这时通过构造器赋值的属性就不可以再修改了



    你最重要79

    第四行写错了,是 public Child(string name,char sex){

    2018-10-26 20:52:21

    共 1 条回复 >

用C#实现封装

C#视频教程教大家,用C#语言实现面向对象的封装

78013 学习 · 182 问题

查看课程

相似问题