C#中类的字段,方法和属性的区别
2013-08-19 16:05
513 查看
一、字段、方法和属性的概念区别
类的字段准确地说应该是类的数据成员,其定义是:用于存储类和类的实例相关数据的变量。
方法就是类的函数成员,是一个为实现类的某一个特定功能的函数。因此也称为类的方法。
属性是一个代表类的实例或类中的一个数据项的函数成员。从定义可以看出,属性是类的一个函数成员或者说是方法。对类的属性的设定和获取可以用两个访问器set和get来实现。
字段,方法和属性的定义的区别如下示例:
class MyClass
{
//数据成员或者字段的定义
public int iTemp = 10;
private int iTestValue;
//属性的定义
public int MyValue
{
set //设定属性
{
iTestValue= value;
}
get //从属性获取值
{
return iTestValue;
}
}
//方法的定义
public void SetValue(ref int iValue)
{
TheRealValue = iValue;
}
public int GetValue()
{
return TheRealValue;
}
}
从概念上可以区分字段和属性的区别,字段是一个用于存储数据的变量,属性是一个方法或者说是一个函数成员。
那么既然属性是一个方法,那么他和方法的区别是什么呢?
从定义就可以看出来,属性其实本身就是方法。但既然把属性和方法定义成为两个概念,那么他们之间肯定有不同地地方。个人感觉,他们最大的区别首先是属性没有参数列表,而方法必须要有参数列表,哪怕没有参数,也要放一个空括号在那。其次,属性定义里要有set和get两个访问器,用于获得属性的值和设定属性的值。其余的地方没有发现不同之处,属性里也可以判定数据的合法性,和方法没有什么两样。
类的字段准确地说应该是类的数据成员,其定义是:用于存储类和类的实例相关数据的变量。
方法就是类的函数成员,是一个为实现类的某一个特定功能的函数。因此也称为类的方法。
属性是一个代表类的实例或类中的一个数据项的函数成员。从定义可以看出,属性是类的一个函数成员或者说是方法。对类的属性的设定和获取可以用两个访问器set和get来实现。
字段,方法和属性的定义的区别如下示例:
class MyClass
{
//数据成员或者字段的定义
public int iTemp = 10;
private int iTestValue;
//属性的定义
public int MyValue
{
set //设定属性
{
iTestValue= value;
}
get //从属性获取值
{
return iTestValue;
}
}
//方法的定义
public void SetValue(ref int iValue)
{
TheRealValue = iValue;
}
public int GetValue()
{
return TheRealValue;
}
}
从概念上可以区分字段和属性的区别,字段是一个用于存储数据的变量,属性是一个方法或者说是一个函数成员。
那么既然属性是一个方法,那么他和方法的区别是什么呢?
从定义就可以看出来,属性其实本身就是方法。但既然把属性和方法定义成为两个概念,那么他们之间肯定有不同地地方。个人感觉,他们最大的区别首先是属性没有参数列表,而方法必须要有参数列表,哪怕没有参数,也要放一个空括号在那。其次,属性定义里要有set和get两个访问器,用于获得属性的值和设定属性的值。其余的地方没有发现不同之处,属性里也可以判定数据的合法性,和方法没有什么两样。
相关文章推荐
- Python中字段(属性)、方法、特性的区别
- 类。字段。方法。属性之间的定义及部分区别。
- C#中类的字段,方法和属性的区别
- 面向对象 字段、方法、属性
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- C#类的成员(字段、属性、方法)
- 属性与字段的区别
- Chapter 8. 面向对象(类、对象、字段、方法、属性、构造函数)
- C#中属性和字段的区别
- 常量、字段、方法、属性和索引器(C#)
- 转载:C#中的属性、和字段的区别
- Ninject依赖注入——构造函数、属性、方法和字段的注入(三)
- C#中,当声明类、方法、字段、属性等时,访问权限的说明。
- 非静态的字段、方法或属性要求对象引用
- Java 语言的类、属性、方法各有哪些修饰符?简述各修饰符的区别
- 反省字段与属性的区别
- JS点击任意标签获得该标签属性,以获得ID为例,以及AJAX的异步原理和 $(document).ready()与window.onload加载方法的区别
- C#属性、字段和成员变量的关系区别
- 属性与字段的区别
- C#中属性和字段的区别