C#学习日记27—-属性

属性可以是 类(class)、结构(struct)、接口(interface)的命名成员,他提供灵活的机制来读取、写入、或计算私有(private)字段的值,属性可以看作是公共(public)字段的成员,但他实际上是定义了一个“访问器”的特殊方法让私有字段的值可以被读写或操作。

   说的形象点吧,比如我们定义一个person类里面有一个私有成员 private string name; 在外界我们实例化一个person对象per,要求为per起个名字,并且输出这个名字,也就是为per.name赋一个值,然后输出??经过前面的学习我们知道,类中的private修饰的变量外界对象是访问不到的,(无法直接per.name=”HC666″来搞定^_^) 因此只能在类里面定义一个public修饰的setname与getname方法将“HC666”作为参数来进行写入与输出,这样有点繁琐,这个时候“属性”就该登场了,我们为name定义一个读写属性Name就可以弥补这个不足。

“访问器”

            属性的访问器包含有获取或者设置属性的可执行语句,访问器的声明可包含一个get访问器(表示只读),或者一个set访问器(表示只写),或者两个同时包含(表示可读可写)。(上面的例子中我们使用get访问器输出name,使用set访问器写入)

 

定义属性:

             上面的例子中我们可以为name 定义一个读写属性Name,使用外界对象能够访问的public修饰符

private string name;     //声明name变量         public string Name     //声明变量的属性,读写            {                 get { return name;  }   //定义读访问器,其实就是一个方法                           set { name = value;  }  //定义写访问器,set 方法有一个隐含的参数value             }

        再定义一个只读属性吧,比如我们的年龄 age 是固定的只读

 private uint age=10;  //声明变量 age        private string Age     //声明变量的属性,只读            {                 get { return age;  }   //读访问器             }

 

属性的实例:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Test1  {      class person      {  //定义变量name,并且为name定义一个读写属性          private string name;          //定义属性          public string Name          {//访问器              get { return name; }              set { name = value; } //set自带一个value参数          }          //定义变量age,并且为age定义一个只读属性          private uint age=10;          public uint Age          {              get { return age; }          }      }      class Program      {          static void Main(string[] args)          {              person per = new person();              per.Name = "HC666";  //执行写入属性              Console.WriteLine("我的名字叫:{0}t今年 {1} 岁了",per.Name,per.Age); //读属性          }      }  }

结果:

659.png

抽象属性:

          前面也说了,属性可以使类、结构、接口的成员,自然也可以是抽象类的抽象属性了,抽象属性同抽象方法一样在派生类中被实现。

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Test1  {//定义一个person抽象类      abstract class person      {//定义抽象属性          public abstract string Name          {//读写              get;              set;          }          public abstract uint Age          {//只读              get;          }        }      //定义派生类      class student : person      {          private string name;          private uint age=10;          //实现抽象属性          public override string Name          {              get              {                  return name ;              }              set              {                  name=value;              }          }          public override uint Age          {              get { return age; }          }      }      class Program      {          static void Main(string[] args)          {              student stu = new student();              stu.Name = "HC666";  //执行写入属性              Console.WriteLine("我的名字叫:{0}t今年 {1} 岁了",stu.Name,stu.Age); //读属性          }      }  }

结果与上一个例子是一样的。

以上就是 C#学习日记27—-属性的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:05:31
下一篇 2025年12月17日 06:07:09

相关推荐

  • 构建模拟:从头开始的实时交易模拟器

    简介 嘿,开发社区!我很高兴分享我的业余项目 Simul8or – 一个实时日间交易模拟器,旨在为用户提供一个无风险的环境来练习交易策略。该项目 100% 构建在 ASP.NET WebForms、C#、JavaScript、CSS 和 SQL Server 技术堆栈上,没有外部库或框架。从头开始构…

    2025年12月24日
    300
  • 花 $o 学习这些编程语言或免费

    → Python → JavaScript → Java → C# → 红宝石 → 斯威夫特 → 科特林 → C++ → PHP → 出发 → R → 打字稿 []https://x.com/e_opore/status/1811567830594388315?t=_j4nncuiy2wfbm7ic…

    2025年12月24日
    000
  • CSS中bottom属性语法

    CSS中bottom属性语法及代码示例 在CSS中,bottom属性用于指定一个元素与容器底部之间的距离。它可以控制一个元素相对于其父元素底部的位置。 bottom属性的语法如下: element { bottom: value;} 其中,element表示要应用该样式的元素,value表示要设置的…

    2025年12月24日
    000
  • 总结CSS中的Margin属性

    CSS中margin属性总结 CSS中的margin属性用来设置元素的外边距,它可以控制元素与周围元素之间的间距。本文将对margin属性进行总结,并提供一些具体的代码示例供参考。 margin属性有四个值,分别表示元素上、右、下和左的外边距。可以使用以下几种方式来设置margin值: 单个值:设置…

    2025年12月24日
    000
  • 揭开CSS属性选择器的神秘面纱

    CSS属性选择器的秘密揭示 CSS属性选择器是一种非常有用和强大的工具,它允许我们通过元素的属性值来选择和样式化特定的元素。这些属性选择器可以根据元素的属性值、属性值的出现位置以及属性值的特定字符等条件进行匹配和选择。本文将通过具体的代码示例来揭示CSS属性选择器的秘密。 首先,让我们来了解一些基本…

    2025年12月24日
    000
  • CSS 响应式图像属性优化技巧:max-width 和 object-fit

    CSS 响应式图像属性优化技巧:max-width 和 object-fit 在设计响应式网页时,优化图像是至关重要的一环。图像的处理不仅影响页面的加载速度,还会影响用户体验。在传统的网页开发中,经常会使用 max-width 属性来实现图像的响应式调整,但这往往会导致图像变形或者失真。而近年来引入…

    2025年12月24日
    000
  • CSS 径向渐变属性优化技巧:radial-gradient 和 background-position

    CSS 径向渐变属性优化技巧:radial-gradient 和 background-position 引言:CSS 径向渐变(radial-gradient)是一种用于创建圆形渐变效果的属性,常用于设计网页的背景、按钮样式等。在使用径向渐变时,结合合理的 background-position …

    2025年12月24日
    000
  • CSS 外边距属性指南:margin-top,margin-right,margin-bottom 和 margin-left

    CSS 外边距属性指南:margin-top,margin-right,margin-bottom 和 margin-left,需要具体代码示例 引言:在 CSS 中,外边距(margin)是定位元素与其周围元素之间的间距,可以用来控制元素与其他元素的距离,给网页设计带来更多的灵活性和美观性。 本文…

    2025年12月24日
    000
  • CSS 透明度属性:opacity 和 rgba

    CSS 透明度属性:opacity 和 rgba 在网页设计中,透明度是一种非常重要的效果,它可以使元素的背景或内容变得半透明。CSS 提供了不同的方法来实现透明度效果,其中最常用的两种就是 opacity 和 rgba。 opacity 属性 opacity 是 CSS 中的一个属性,它用于控制一…

    2025年12月24日
    000
  • CSS 动画属性优化技巧:animation 和 transition

    CSS 动画属性优化技巧:animation 和 transition 引言:随着 Web 技术的不断发展,CSS 动画成为了网页设计和开发中非常重要的一部分。在过去,开发者通常使用 JavaScript 来实现动画效果,但现在通过 CSS 动画属性,我们可以更加轻松和高效地创建各种动画效果。本文将…

    2025年12月24日
    000
  • CSS 模糊属性详解:filter 和 backdrop-filter

    CSS 模糊属性详解:filter 和 backdrop-filter 导语:在设计网页时,我们常常需要一些特效来增加页面的视觉吸引力。而模糊效果是其中一种常见的特效之一。CSS 提供了两种模糊属性:filter 和 backdrop-filter,它们分别用于对元素内容以及背景内容进行模糊处理。本…

    2025年12月24日
    000
  • CSS 内边距属性探索:padding-top,padding-right,padding-bottom 和 padding-left

    CSS 内边距属性探索:padding-top,padding-right,padding-bottom 和 padding-left,需要具体代码示例 引言:CSS(层叠样式表)是一种用于控制网页样式的标记语言,其中的各种属性能够实现丰富多样的排版效果。在CSS中,内边距属性(padding)是一…

    2025年12月24日
    000
  • CSS 渲染属性:box-shadow,text-shadow 和 filter

    CSS 渲染属性:box-shadow,text-shadow 和 filter 在现代的网络开发中,美观的界面设计和用户体验极其重要。CSS(Cascading Style Sheets)是一种样式表语言,用于描述文档的呈现方式,其中的渲染属性可以帮助开发者实现各种各样的效果。本文将重点介绍三个常…

    2025年12月24日
    000
  • CSS 行高属性指南:line-height 和 vertical-align

    CSS 行高属性指南:line-height 和 vertical-align,需要具体代码示例 标题:CSS 行高属性指南:line-height 和 vertical-align 引言:在进行网页设计或者前端开发过程中,我们经常需要调整文本的行高和垂直对齐方式,以达到更好的排版效果。在 CSS …

    2025年12月24日
    000
  • 如何使用CSS3属性创建网页导航栏?

    如何使用CSS3属性创建网页导航栏? 在现代网页设计中,导航栏在页面上起到非常重要的作用。它可以帮助用户快速导航到不同的页面或不同的部分,提高用户体验和网站的可用性。CSS3提供了许多新的属性和技术,使得创建和设计导航栏变得更加灵活和有趣。在本文中,我们将探讨如何使用CSS3属性来创建网页导航栏。 …

    2025年12月24日
    000
  • 如何使用CSS3属性创建网页背景效果?

    如何使用CSS3属性创建网页背景效果? 背景是网页设计中一个非常重要的元素,它能够提升用户体验,使网页更加吸引人。在CSS3中,有许多新的属性可以帮助我们创建各种各样的网页背景效果。本文将介绍一些常用的CSS3背景属性,并附带代码示例。 一、渐变背景 渐变背景可以为网页增添层次感,使其更加吸引人。在…

    2025年12月24日
    000
  • flex是css属性吗

    flex是css属性。css flex属性是flex-grow、flex-shrink和flex-basis属性的简写属性,用于设置或检索弹性盒模型对象的子元素如何分配空间;如果元素不是弹性盒模型对象的子元素,则flex属性不起作用。 本教程操作环境:windows7系统、CSS3&&amp…

    2025年12月24日
    000
  • css和c的区别是什么

    区别是:1、C语言是一门面向过程、抽象化的通用程序设计语言、计算机编程语言,广泛应用于底层开发;2、CSS是一种用来表现HTML或XML等文件样式的计算机语言,可以做到网页和内容进行分离的一种样式语言。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电…

    2025年12月24日
    000
  • css的属性有哪些

    css属性有:1、字体属性,font;2、背景属性,background;3、区块属性,block;4、方框属性,box;5、边框属性,border;6、列表属性,list-style;8、定位属性,position等。 本教程操作环境:windows7系统、CSS3&&HTML5版…

    2025年12月24日
    000
  • css哪些属性可以继承

    可以继承的有:1、字体系列,font-family、font-weight; 2、文本系列,text-indent、color;3、元素可见性,visibility;4、列表布局,list-style;5、光标,cursor。 本教程操作环境:windows7系统、CSS3&&HTM…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信