• 属性和方法的区别


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Windows.Forms;

    namespace @string
    {
        class Program//这段是用属性的
        {
            static void Main(string[] args)
            {
                propertyTest pro = new propertyTest(20,"匿名");
                Console.WriteLine(pro.Age);
                Console.WriteLine(pro.Name);
                pro.Age = 23;
                pro.Name = "Jerryzhang";
                Console.WriteLine(pro.Age);
                Console.WriteLine(pro.Name);
                pro.Age = 666;
                pro.Name = "Jerryzhang";
              
                Console.WriteLine(pro.Name);
                Console.WriteLine(pro.Age);
            }
        }
        class propertyTest
        {
            private int _age;
            private string _name;
            public propertyTest(int age, string name)
            {
                this._age = age;//age字段
                this._name = name;//name字段
            }


            public int Age//age的属性
            {
                get { return _age; }
                set
                {

                    if (value >= 100 || value <= 0)
                    {
                      MessageBox.Show("您的年龄不合常理");//这里需要抛出异常,我就简单点用个messagebox显示
                    }
                    else
                    {
                        _age = value;//这个value是系统默认的一个参数
                    }


                }
            }
            public string Name//name的属性
            {
                get { return _name; }
                set { _name = value; }
            }
        }
    }


    res4

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Windows.Forms;

    namespace @string
    {
        class Program//这段是没带属性的
        {
            static void Main(string[] args)
            {
                propertyTest pro = new propertyTest(20, "匿名");
                Console.WriteLine(pro.GetAge());
                Console.WriteLine(pro.GetName());
                int inAge = int.Parse(Console.ReadLine());
                string inName = Console.ReadLine();
                pro.SetName(inName);
                pro.SetAge(inAge);
                Console.WriteLine(pro.GetAge());
                Console.WriteLine(pro.GetName());
            }
        }
        class propertyTest
        {
            private int _age;
            private string _name;
            public propertyTest(int age, string name)
            {
                this._age = age;
                this._name = name;
            }
            public void SetAge(int value)
            {
                if (value >= 100 || value <= 0)
                {
                    MessageBox.Show("您的年龄填写不是很正确");
                }
                else
                {
                    this._age = value;
                }
            }
            public int GetAge()
            {
                return _age;
            }
            public void SetName(string value)
            {
                this._name = value;
            }
            public string GetName()
            {
                return this._name;
            }


    res5

             从这两个例子可以看出来,虽然做的不是很好但是可以看出,其实属性和方法在一定意义上可以转换,就是说在一定程度上可以把属性看做方法。

    但是属性有不等同于方法,有些人说属性比较安全,因为它对字段进行了封装,但我觉得用方法也没什么不安全的,所以我觉得方法和属性只是在不同的

    区域所进行的不同的表示而已,小人也只是乱说,望了解的朋友多多指点!

  • 相关阅读:
    Mysql 取整的方法
    方法、选择比努力更重要, 所以既要低头干活,更要抬头看路!
    mysql索引
    MYSQL 存储过程 多表更新异常捕捉和异常处理方式
    JavaScript中in的用法
    中美印日四国程序员比较
    ubuntu下Django的下载与安装(三种方法)
    ubuntu下下载并安装H265(hm.x.x代码和X265代码)
    s3c-u-boot-1.1.6源码分析之一start.s
    s3c-u-boot-1.1.6源码分析
  • 原文地址:https://www.cnblogs.com/jessie/p/1440758.html
Copyright © 2020-2023  润新知