C# 属性(Property) | 菜鸟教程

文章推薦指數: 80 %
投票人數:10人

C# 属性(Property) 属性(Property) 是类(class)、结构(structure)和接口(interface)的命名(named)成员。

类或结构中的成员变量或方法称为域(Field)。

菜鸟教程--学的不仅是技术,更是梦想! 首页 HTML CSS JavaScript Vue Bootstrap NodeJS Python3 Python2 Java C C++ C# Go SQL Linux jQuery 本地书签 首页 HTML CSS JS 本地书签 Search Python3教程 Python2教程 Vue3教程 vue2教程 Bootstrap3教程 Bootstrap4教程 Bootstrap5教程 Bootstrap2教程 C#教程 C#教程 C#简介 C#环境 C#程序结构 C#基本语法 C#数据类型 C#类型转换 C#变量 C#常量 C#运算符 C#判断 C#循环 C#封装 C#方法 C#可空类型 C#数组(Array) C#字符串(String) C#结构体(Struct) C#枚举(Enum) C#类(Class) C#继承 C#多态性 C#运算符重载 C#接口(Interface) C#命名空间(Namespace) C#预处理器指令 C#正则表达式 C#异常处理 C#文件的输入与输出 C#高级教程 C#特性(Attribute) C#反射(Reflection) C#属性(Property) C#索引器(Indexer) C#委托(Delegate) C#事件(Event) C#集合(Collection) C#泛型(Generic) C#匿名方法 C#不安全代码 C#多线程 C#反射(Reflection) C#索引器(Indexer) C#属性(Property) 属性(Property)是类(class)、结构(structure)和接口(interface)的命名(named)成员。

类或结构中的成员变量或方法称为域(Field)。

属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。

它们使用访问器(accessors)让私有域的值可被读写或操作。

属性(Property)不会确定存储位置。

相反,它们具有可读写或计算它们值的访问器(accessors)。

例如,有一个名为Student的类,带有age、name和code的私有域。

我们不能在类的范围以外直接访问这些域,但是我们可以拥有访问这些私有域的属性。

访问器(Accessors) 属性(Property)的访问器(accessor)包含有助于获取(读取或计算)或设置(写入)属性的可执行语句。

访问器(accessor)声明可包含一个get访问器、一个set访问器,或者同时包含二者。

例如: //声明类型为string的Code属性 publicstringCode {   get   {    returncode;   }   set   {    code=value;   } } //声明类型为string的Name属性 publicstringName {   get   {    returnname;   }   set   {    name=value;   } } //声明类型为int的Age属性 publicintAge {   get   {    returnage;   }   set   {    age=value;   } } 实例 下面的实例演示了属性(Property)的用法: 实例 usingSystem; namespacerunoob {   classStudent   {    privatestringcode="N.A";    privatestringname="notknown";    privateintage=0;    //声明类型为string的Code属性    publicstringCode    {      get      {       returncode;      }      set      {       code=value;      }    }       //声明类型为string的Name属性    publicstringName    {      get      {       returnname;      }      set      {       name=value;      }    }    //声明类型为int的Age属性    publicintAge    {      get      {       returnage;      }      set      {       age=value;      }    }    publicoverridestringToString()    {      return"Code="+Code+",Name="+Name+",Age="+Age;    }   }   classExampleDemo   {    publicstaticvoidMain()    {      //创建一个新的Student对象      Students=newStudent();             //设置student的code、name和age      s.Code="001";      s.Name="Zara";      s.Age=9;      Console.WriteLine("StudentInfo:{0}",s);      //增加年龄      s.Age+=1;      Console.WriteLine("StudentInfo:{0}",s);      Console.ReadKey();     }   } } 当上面的代码被编译和执行时,它会产生下列结果: StudentInfo:Code=001,Name=Zara,Age=9 StudentInfo:Code=001,Name=Zara,Age=10 抽象属性(AbstractProperties) 抽象类可拥有抽象属性,这些属性应在派生类中被实现。

下面的程序说明了这点: 实例 usingSystem; namespacerunoob {   publicabstractclassPerson   {    publicabstractstringName    {      get;      set;    }    publicabstractintAge    {      get;      set;    }   }   classStudent:Person   {    privatestringcode="N.A";    privatestringname="N.A";    privateintage=0;    //声明类型为string的Code属性    publicstringCode    {      get      {       returncode;      }      set      {       code=value;      }    }       //声明类型为string的Name属性    publicoverridestringName    {      get      {       returnname;      }      set      {       name=value;      }    }    //声明类型为int的Age属性    publicoverrideintAge    {      get      {       returnage;      }      set      {       age=value;      }    }    publicoverridestringToString()    {      return"Code="+Code+",Name="+Name+",Age="+Age;    }   }   classExampleDemo   {    publicstaticvoidMain()    {      //创建一个新的Student对象      Students=newStudent();             //设置student的code、name和age      s.Code="001";      s.Name="Zara";      s.Age=9;      Console.WriteLine("StudentInfo:-{0}",s);      //增加年龄      s.Age+=1;      Console.WriteLine("StudentInfo:-{0}",s);      Console.ReadKey();     }   } } 当上面的代码被编译和执行时,它会产生下列结果: StudentInfo:Code=001,Name=Zara,Age=9 StudentInfo:Code=001,Name=Zara,Age=10 C#反射(Reflection) C#索引器(Indexer) 1篇笔记 写笔记 #0   qqzzft  qqz***@163.com109抽象属性例子代码的简化版(使用C#6.0语言新特性) usingSystem; namespaceDemo.cs { classProgram { publicabstractclassPerson { publicabstractstringName{get;set;} publicabstractintAge{get;set;} } publicclassStudent:Person { publicstringCode{get;set;}="N.A"; publicoverridestringName{get;set;}="N.A"; publicoverrideintAge{get;set;}=0; publicoverridestringToString() { return$"Code:{Code},Name:{Name},Age:{Age}"; } } staticvoidMain(string[]args) { vars=newStudent() { Code="001", Name="Zara", Age=10 }; System.Console.WriteLine($"StudentInfo:={s}"); s.Age++; System.Console.WriteLine($"StudentInfo:={s}"); } } } qqzzft   qqzzft  qqz***@163.com4年前(2018-06-22) 点我分享笔记 取消 分享笔记 昵称昵称(必填) 邮箱邮箱(必填) 引用地址引用地址 分类导航 HTML/CSSHTML教程HTML5教程CSS教程CSS3教程Bootstrap3教程Bootstrap4教程Bootstrap5教程FontAwesome教程Foundation教程JavaScriptJavaScript教程HTMLDOM教程jQuery教程AngularJS教程AngularJS2教程Vue.js教程Vue3教程React教程TypeScript教程jQueryUI教程jQueryEasyUI教程Node.js教程AJAX教程JSON教程Echarts教程Highcharts教程Google地图教程服务端Python教程Python2.x教程Linux教程Docker教程Ruby教程Java教程C教程C++教程Perl教程Servlet教程JSP教程Lua教程Rust教程Scala教程Go教程PHP教程Django教程Zookeeper教程设计模式正则表达式Maven教程Verilog教程ASP教程AppML教程VBScript教程数据库SQL教程MySQL教程PostgreSQL教程SQLite教程MongoDB教程Redis教程Memcached教程数据分析Python教程NumPy教程Pandas教程Matplotlib教程Scipy教程R教程移动端Android教程Swift教程jQueryMobile教程ionic教程Kotlin教程XML教程XML教程DTD教程XMLDOM教程XSLT教程XPath教程XQuery教程XLink教程XPointer教程XMLSchema教程XSL-FO教程SVG教程ASP.NETASP.NET教程C#教程WebPages教程Razor教程MVC教程WebForms教程WebServiceWebService教程WSDL教程SOAP教程RSS教程RDF教程开发工具Eclipse教程Git教程Svn教程Markdown教程网站建设HTTP教程网站建设指南浏览器信息网站主机教程TCP/IP教程W3C教程网站品质 Advertisement 反馈/建议 在线实例 ·HTML实例 ·CSS实例 ·JavaScript实例 ·Ajax实例 ·jQuery实例 ·XML实例 ·Java实例 字符集&工具 ·HTML字符集设置 ·HTMLASCII字符集 ·HTMLISO-8859-1 ·PNG/JPEG图片压缩 ·HTML拾色器 ·JSON格式化工具 最新更新 · ASCII表 · Julia复数和有理数 · Julia数据类型 · Julia元组 · Python2与Pyth... · Julia数组 · Python3reload(... 站点信息 · 意见反馈 · 免责声明 · 关于我们 · 文章归档 关注微信 Copyright©2013-2022菜鸟教程  runoob.comAllRightsReserved.备案号:闽ICP备15012807号-1 微信关注



請為這篇文章評分?