小编给大家分享一下c#类中字段、行为和属性的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
一、c#的值类型和引用类型
1、值类型有:结构体(数值类型,如int之类;bool型,用户定义的结构体),枚举类型,可控类型。值类型存在栈上。
2、引用类型:数组,用户定义的类,接口,委托,object,字符串。引用类型存在堆上。
(内存块分为栈,堆,静态存储区)
3、几点说明:
(1)结构体中即使包含了引用类型的成员,也依然是值类型。
(2)数组的元素,不管是引用类型的还是值类型的,都存在托管堆上。
(3)值类型总是分配在申明它的地方,作为字段时,跟随其所属的变量(实例)存储,作为局部变量时存储在栈上。
(4)值类型在内存管理上具有更好的效率,并且不支持多态,适合做存储内型载体;引用类型支持多态,适合用于定义应用程序的行为。
二、c#类的访问控制:
public ,protect ,private ,internal,protect internal
public 公共的,任何其他的对象都能访问,子类继承了,其他对象子类该属性的访问性由子类的访问性决定
protect 受保护的,子类能继承,其他类不能直接访问
private,子类继承了,但是子类里面是不可访问的,其他对象也不能访问
internal,是说在同一个程序集中可以访问
protect internal同一个程序集内部的子类可以继承,其他类不能访问
系统默认是私有的。
三、类的字段,方法,和属性
类是面向对象编程的基本单位,类的成员包括事件、字段、嵌套类型、方法和属性。作为初学者,我们首先得了解类的成员中的字段,方法和属性。
1、类的字段。类的字段准确地说应该是类的数据成员,其定义是:用于存储类和类的实例相关数据的变量。
2、类的方法。方法也称行为,是类的函数成员,是一个为实现类的某一个特定功能的函数。
3、类的属性。所谓“属性”,很大程度可以看作是对“字段”的一种封装,它利用一种被称为“get/set访问器”分别控制对字段的读写操作,并暴露一个属性值。
下面我们举一个例子来说明属性的作用。
Class Student
{
//数据成员或者字段的定义
public string name ;
private string accnumber;//这里,我们本来把学生的帐号定义为私有
//的,是不能被继承和访问的。
//属性的定义
public string Accnumber
{
Get
{
return name;
}
Set
{
accnumber = value;
}
}
...
}
//这里,我们利用属性,通过get访问器,外界就可以读到accumber的值;通过set访问器,我们就可以给accumber赋新值。在子类和其他类中我们可以把Accnumber看作是accnumber的替身,如: Student std = std.Accnumber = “s001”,我们就成功的给accnumber赋了值“s001”。
当然属性里不是get和set都要用的,当我只要读accnumber的值而不要改变其值的时候,只要用get访问器就可以了。以后我们会介绍readonly访问修饰符,它控制变量只能被读而不能被写。
上面这个例子中,get就是取值,set就是设值。在set里,我们还可以加一些限制、选择条件什么的,比如if(value.Length==4){accnumber = value};
字段是一个用于存储数据的变量,属性是一个方法或者说是一个函数成员。那么既然属性是一个方法,那么他和方法的区别是什么呢?从定义就可以看出来,属性其实本身就是方法。但既然把属性和方法定义成为两个概念,那么他们之间肯定有不同地地方。个人感觉,他们大的区别首先是属性没有参数列表,而方法必须要有参数列表,哪怕没有参数,也要放一个空括号在那。其次,属性定义里要有set和get两个访问器,用于获得属性的值和设定属性的值其余的地方没有发现不同之处,属性里也可以判定数据的合法性,和方法没有什么两样。
看完了这篇文章,相信你对“c#类中字段、行为和属性的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联网站制作公司行业资讯频道,感谢各位的阅读!
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
当前题目:c#类中字段、行为和属性的示例分析-创新互联
文章地址:https://www.cdcxhl.com/article26/gsojg.html
成都网站建设公司_创新互联,为您提供定制开发、用户体验、移动网站建设、服务器托管、关键词优化、网页设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联