美文网首页
c#中自定义属性有无get、set 的区别

c#中自定义属性有无get、set 的区别

作者: 大龙10 | 来源:发表于2023-07-14 20:35 被阅读0次

    一、c#中自定义属性有无get、set 的区别

    public string Name;//一般属性,可写、可读
    
    Public string Email{get;set;}//可写、可读
    
    Public string Age{get;}//只读
    
    public string Height{set;}//只写
    
    • 首先,这是一堆属性,Name属性在C#里面可以称之为字段,只要在同一个命名空间下面就可以可读可写。

    • 如Email属性是也可度可写的,那么这两个区别在哪呢,当然在你的业务逻辑上,如果我想对Email的格式做出校验(当你设置邮箱格式的时候就可以校验),那么Email就可以,
      Name属性这种写法就不能加入逻辑代码。而且,Name属性编译之后,就是一个字段Name,但是Emai{get;set;}属性编译之后就是两个函数:

    //字段
    private string email;
    //读取邮箱
    public string GetEmail(){
        return this.email;  
    }
    //设置邮箱
    public void SetEmail(string value){
        this.email=value;
    }
    
    
    • 那么Age{get;}这个属性是只读的,那么在编译之后会变成一个函数:
    private string age;
    public string GetAge(){
        return this.age;
    }    
    
    • 同样的,可以得出 Height{set;}会编译成一个函数:
    private string height;
    public string SetHeight(string value){
        this.height=value;
    }
    

      总之,一个属性,就是用来给内部或者外部访问的,读写权限总要有一个,get,set 就是让你知道属性是否可读可写。

    资料:https://q.cnblogs.com/q/77170/
    

    相关文章

      网友评论

          本文标题:c#中自定义属性有无get、set 的区别

          本文链接:https://www.haomeiwen.com/subject/ojqbudtx.html