理解c#的Get Set访问器及测试脚本中的应用

假设我们需要定义一个新的数据类型,并要创建这种类型的变量,赋值,应用。

1. 理解概念:

先通过一个生动的例子来理解概念: 创建一个Cat类,其中定义私有属性(又名字段),和属性。

    class Cat
    {
        private string name;
        private int age;
        private string sex;

        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }

        public int Age //get访问器get到并返回该字段age的值。set访问器给这个字段赋值
        {
            get { return this.age; }
            set { this.age = value; }
        }

        public string Sex
        {
            get { return this.sex; }
            set { this.sex = value; }
        }
    }

  当要实例化一个cat类的对象时,可以理解为生一只小猫时,可以给新生的小猫的属性赋值,如:

    class Program
    {
        static void Main(string[] args)
        {
            Cat babyCat = new Cat();
            babyCat.Name = "xiaominhg";
            babyCat.Age = 2;
            babyCat.Sex = "female";
            //$是string.format中的新特性
            string msg = $"I‘m a new born baby cat, " +
                $"my name is {babyCat.Name}, my age is {babyCat.Age}, " +
                $"my sex is {babyCat.Sex}";
            Console.WriteLine(msg);
            Console.ReadKey();
        }
    }

  运行结果:I‘m a new born baby cat, my name is xiaominhg, my age is 2, my sex is female

2. 项目中实战:

最近的项目中需要加一个小功能,从xml文件里读取一个节点上的3个属性的值(a,b,c),遍历所有节点。最后返回遍历的所有结果。

思路:

1. 定义一个class来定义数据模型

    public class ValueNeed
    {
        private string a;
        private string b;
        private string c;

        public string A
        {
            get { return this.a; }
            set { this.a= value; }
        }

        public string B
        {
            get { return this.b; }
            set { this.b= value; }
        }

        public string C
        {
            get { return this.c; }
            set { this.c= value; }
        }

2. 实际项目中,需要把这个类型的数据每次遍历的结果放入List中,返回所有遍历结果。于是定义一个List<ValueNeed> TestFunction() 方法,在其中执行遍历,并返回List类型的该数据模型的数据。

3. 实例化这个类,创建新的数据对象,并获取需要的属性,赋值。

            {
                string path = xmlFilePath;
                XDocument doc = XDocument.Load(path);
                var node1= doc.Root.Elements(XName.Get("value1"));

                List<ValueNeed> returnResult = new List<ValueNeed>();

                foreach (var node in node1)
                {
                    ValueNeed xxx= new ValueNeed ();
                    xxx.a= node.Attribute(XName.Get("a")).Value;
                    xxx.b= node.Attribute(XName.Get("b")).Value;
                    xxx.c= node.Attribute(XName.Get("b")).Value;

                    returnResult.Add(xxx);
                }

                return returnResult;
            }

  

原文地址:https://www.cnblogs.com/TestBetter/p/10527590.html

时间: 2024-11-07 10:09:01

理解c#的Get Set访问器及测试脚本中的应用的相关文章

Js中的数据属性和访问器属性

Js中的数据属性和访问器属性 在javaScript中,对象的属性分为两种类型:数据属性和访问器属性. 一.数据属性 1.数据属性:它包含的是一个数据值的位置,在这可以对数据值进行读写. 2.数据属性包含四个特性,分别是: configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true enumerable:表示能否通过for-in循环返回属性 writable:表示能否修改属性的值 value:包含该属性的数据值.默

JavaScript中的Get和Set访问器

今天要和大家分享的是JavaScript中的Get和Set访问器,和C#中的访问器非常相似. 标准的Get和Set访问器的实现 function Field(val){      this.value = val;  } Field.prototype = {      get value(){          return this._value;      },      set value(val){          this._value = val;      }};var fie

javascript数据属性和访问器属性的理解

1 var book={}; 2 Object.defineProperties(book,{ 3 _year:{ 4 value:2014 5 }, 6 edition:{ 7 value:1 8 }, 9 year:{ 10 get:function(){ 11 return this._year; 12 }, 13 set:function(newValue){ 14 if(newValue>2014){ 15 this._year=newValue; 16 this.edition+=n

14.C#属性访问器、命名空间、pragma指令(七章7.3-7.5)

看到一些零星的知识片,今天就用自己的理解说明下,也是因为太简单了,一下就过的,也是我们日常开发中常用.留下一个脚印,当书不在手上的,也能翻出来看看.说下属性访问器.命名空间和pragma指令. 属性访问器在01.C#数据类型.排序.过滤(一章1.1-1.2)有所提到,在C#3后可以使用修饰符去修饰属性的取值和赋值,也可以使用加入一些验证,如下: 1 class Plant 2 { 3 private double Height = 0.0; 4 5 //是否需要修剪 6 public bool

JavaScript ECAMScript5 新特性——get/set访问器

之前对get/set的理解一直有误,觉得get set 是对象属性方法.看了别人的博客也有很多疑问,今天系统的做了很多测试终于弄明白了.(自己通过看书和写demo测试的,如有不对欢迎大家批评指正) get/set访问器不是对象的属性,而是属性的特性.大家一定要分清楚.特性只有内部才用,因此在javaScript中不能直接访问他们.为了表示特性是内部值用两队中括号括起来表示如[[Value]].  1.先简单介绍一下属性的这些特性(这里是简单的背书)          (1)数据属性——包含一个数

C#访问器

属性的访问器包含与获取或设置属性有关的可执行语句.访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含.声明采用下列形式之一:get {}set {} get 访问器get 访问器体与方法体相似.它必须返回属性类型的值.执行 get 访问器相当于读取字段的值.以下是返回私有字段 name 的值的 get 访问器: private string name; // the name field public string Name // the Name property { get

ECMAScript数据属性和访问器属性

ECMA-262 第 5 版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262 定义这些特性是为了实现 JavaScript 引擎用的,因此在 JavaScript 中不能直接访问它们.为了表示特性是内部值,该规范把它们放在了两对儿方括号中,例如 [[Enumerable]] . 1.数据属性:数据属性包含一个数据值的位置,在这个位置可以读取和写入值.数据属性有4个描述其行为的特性 1) configurable:表示能否通过 delet

C#属性访问器

属性的访问器包含与获取或设置属性有关的可执行语句.访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含.声明采用下列形式之一:get {}set {} get 访问器get 访问器体与方法体相似.它必须返回属性类型的值.执行 get 访问器相当于读取字段的值.以下是返回私有字段 name 的值的 get 访问器: private string name;  // the name field public string Name  // the Name  property { 

ECMAScript 5中的数据属性和访问器属性

简介 ECMAScript 定义的对象中有两种特殊的属性, 这两种特殊的属性在你定义对象属性时就会赋予, 我们在必要时可以改写这两种特殊的属性让其属性的访问更加的合理化, 这两种特殊的属性称呼及作用如下: 数据属性: 通过对数据属性的设置, 我们可以让用户操作普通的数据(obj.name)时限制他们可以操作的权限, 可以让其数据变得不可修改.不可在for...in中被其枚举.不可以删除该数据并且不能让其改变原有的部分数据属性([[ Enumerable ]].[[ Configurable ]]