您好,登录后才能下订单哦!
小编给大家分享一下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#类中字段、行为和属性的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。