C#中的字段与属性

字段:

字段是类的一个构成部分,它使类和结构可以封装数据.

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Example_2

{

    class Farmer

    {

        /// <summary>

        /// Farmer类的无参数构造函数

        /// </summary>

        public Farmer()

        {

 

        }

 

        /// <summary>

        /// Farmer类的有参数构造函数

        /// </summary>

        /// <param name="n_Name"></param>

        public Farmer(String n_Name)

        {

            name = n_Name;

        }

 

        /// <summary>

        /// 姓名字段

        /// </summary>

        String name = String.Empty;

 

    }

 

属性:

属性提供灵活的机制来读取数据,编写或计算私有字段的值.

通过属性可以方便的放问或修改字段的值.

通常属性包括get代码块与set代码块.

get代码块用来访问字段的值.

set代码块用来设置字段的值.

当然,属性也不必对字段进行任何操作.

在属性可以不同时包括get和set代码块,但至少应该包含其要的一个.因为两都不包含的属性是没有意义 的.

示例

using System;

using System.Collections.Generic;

using System.Text;

 

namespace sampsong

{

    class Program

    {

        static void Main(String[] args)

        {

            Farmer song = new Farmer("宋井华 ");

            Console.WriteLine(song.Name);

            song.Name = "sampsong";

            Console.WriteLine(song.Name);

            Console.ReadLine();

        }

    }

 

    class Farmer

    {

 

        /// <summary>

        /// Farmer无参数的构造函数

        /// </summary>

        public Farmer()

        {

 

        }

 

        /// <summary>

        ///Farmer有参数的构造函数

        /// </summary>

        /// <param name="N_Name"></param>

        public Farmer(string N_Name)

        {

            name = N_Name;

            

        }

 

       

        /// <summary>

        /// Name属性,用于设置和访问Farmar类的姓名

        /// </summary>

        public String Name

        {

            get

            {

                return name;

            }

 

            set

            {

                name = value;

            }

        }

 

        /// <summary>

        /// 姓名字段

        /// </summary>

        private String name = String.Empty;

    }

}

结果:

宋井华

sampsong

注意:

在定义属性时的时候,如果只编写get代码块,哪么该属性只能是只读的

如果对其赋值,将会生异常

using System;

using System.Collections.Generic;

using System.Text;

 

namespace sampsong

{

    class Program

    {

        static void Main(String[] args)

        {

            Farmer song = new Farmer("宋井华 ");

            Console.WriteLine(song.Name);

            song.Name = "sampsong";

            Console.WriteLine(song.Name);

            Console.ReadLine();

        }

    }

 

    class Farmer

    {

 

        /// <summary>

        /// Farmer无参数的构造函数

        /// </summary>

        public Farmer()

        {

 

        }

 

        /// <summary>

        ///Farmer有参数的构造函数

        /// </summary>

        /// <param name="N_Name"></param>

        public Farmer(string N_Name)

        {

            name = N_Name;

            

        }

 

       

        /// <summary>

        /// Name属性,用于设置和访问Farmar类的姓名

        /// </summary>

        public String Name

        {

            get

            {

                return DateTime.Now.ToString();

            }

        }

 

        /// <summary>

        /// 姓名字段

        /// </summary>

        private String name = String.Empty;

    }

}

 

按Ctrl+F5的时候将出现

错误 1 无法对属性或索引器“sampsong.Farmer.Name”赋值 -- 它是只读的 D:/Charp/test/Solution2/ConsoleApplication1/Program1.cs 13 13 ConsoleApplication1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值