C# 属性(Property) | 菜鸟教程
文章推薦指數: 80 %
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
微信关注
延伸文章資訊
- 1屬性(Property) 與欄位(Field) - mrkt 的程式學習筆記
Property:FullDescription為主要資料取得的地方,對外公開;. Field:_FullDescription為物件私有成員,是用來存放屬性的資料。 MSDN - 使用屬性(C...
- 2C# - Properties - Tutorialspoint
C# - Properties ... Properties are named members of classes, structures, and interfaces. Member v...
- 3C# Properties (Get and Set) - W3Schools
C# also provides a way to use short-hand / automatic properties, where you do not have to define ...
- 4[C#.NET] 使用屬性(Property) 的好處| 余小章@ 大內殿堂- 點部落
[C#.NET] 使用屬性(Property) 的好處. 我相信很多人寫很久的程式從沒有習慣使用property,甚至連property 是什麼都不知道,長期以來都是一直 ...
- 5屬性- C# 程式設計手冊
_seconds = value * 3600; } } } class Program { static void Main() { TimePeriod t = new TimePeriod...