zoukankan      html  css  js  c++  java
  • 17.属性

    什么是属性?

    属性类似于java中的setter和getter方法,其本质上就是get和set方法

    属性的作用?

    属性的作用就是保护字段、对字段的赋值和取值进行限定。

    基本语法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Demo {
    
    
        class Program {
    
            //字段
            private string _name;
            private int _age;
    
            //属性
            public string Name {
                get;
                set;
            }
    
            public int Age {
                get;
                set;
            }
    
        }
    }
    
    

    上述可以看做一个简写。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Demo {
    
    
        class Program {
    
            //字段
            private string _name;
            private int _age;
    
            //属性
            public string Name {
                get { return _name; }
                set { _name = value; }
            }
    
            public int Age {
                get { return _age; }
                set { _age = value; }
            }
        }
    }
    
    

    使用属性可以对字段进行保护,当字段的值有某些范围时,例如_age不可为负数,那么这时就可以在属性中进行一个限制,如下例代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Demo {
    
    
        class Program {
    
            //字段
            private string _name;
            private int _age;
    
            //属性
            public string Name {
                get { return _name; }
                set { _name = value; }
            }
    
            public int Age {
                get { return _age; }
                set {
                    if (value < 0) {
                        value = 0;
                    }
                    _age = value;
                }
            }
        }
    
        class Test {
            static void Main(string[] args) {
                Program p = new Program();
                p.Name = "zs";
                p.Age = -1;
    
            }
        }
    }
    
    

    当通过debug模式调试时,会发现_age最后是为0的。

    总结

    既有get()也有set()我们诚之为可读可写属性。
    只有get()没有set()我们称之为只读属性
    没有get()只有set()我们称之为只写属性

  • 相关阅读:
    平均值(Mean)、方差(Variance)、标准差(Standard Deviation) (转)
    4.3 使用 SQL 语句操作数据框
    4.2 数据框的行、列选择
    4.1 基本数据管理
    2.2.5 因子的使用
    Python执行时间的计算方法
    pypy安装与使用
    win7下查看进程端口
    python去除BOM头ufeff等特殊字符
    java查看线程的堆栈信息
  • 原文地址:https://www.cnblogs.com/lz32158/p/12892306.html
Copyright © 2011-2022 走看看