博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 类成员的定义 定义方法、字段和属性【转】
阅读量:5141 次
发布时间:2019-06-13

本文共 1449 字,大约阅读时间需要 4 分钟。

c# 类成员的定义 定义方法、字段和属性

c#类的成员包括字段、属性和方法。所有成员都有自己的访问级别,用下面的关键字之一来定义:
public----成员可以有任何代码访问;
private----成员只能有类中的代码访问(如果没有使用任何关键字,默认使用这个关键字);
internal----成员有定义他的项目(程序集)内部的代码访问;
protected----成员只能由类或派生类的代码访问。
后两个关键字可以合并
protected internal----他们只能由项目(程序集)中的派生代码来访问。

1.定义字段:

字段用标准的变量声明格式和前面介绍的修饰符来声明(也可以初始化),例如: 
class myClass
{
public int MyInt;
}

公共字段推荐用PascalCasing的形式来命名,私有字段没有推荐的命名形式,一般使用camelCasing的形式来命名。

字段可以使用关键字readonly,表示这个字段只能在执行构造函数的过程中赋值,或由初始化语句赋值,例如: 
class myClass
{
public readonly int MyInt=17;
}
字段也可以使用static声明为静态的: 
class myClass
{
public static int MyInt;
}

2.定义方法:

方法使用标准的函数格式,以及可访问性,和可选的static修饰符来声明,例如: 

class myClass
{
public string MyString()
{
return “这是一个方法”;
}
}
解析: 
class myClass
{
//开始声明方法代码
public string MyString()
{
return “这是一个方法”;
}
//结束声明方法代码
}

公共方法也用PascalCasing的形式来命名。

注意:如果声明了static关键字,这个方法就只能通过类来访问,而不能通过对象实例还访问。
也可以在方法定义中使用下面的关键字:
virtual----方法可以重写;
abstract----方法必须在非抽象的派生类中重写(只用于抽象类);
override----方法重写了一个基类方法(要重写方法,必须用这个关键字);
extern----方法定义在其他地方;

3.定义属性

属性定义与地段类似,但内容比较多。属性有两个类似于函数的块,一个用于获取属性的值,一个用于设置属性的值,例子: 

class myClass
{
private int myInt;//字段
//(下面为属性)
public int MyInt
{
get 
{
return myInt;
}
set 
{
myInt=value;
}
}
}

get 块一般有一个属性类型的返回值,简单的属性一般与一个私有字段相关联,用来控制对这个字段的访问,这是get块可以直接返回该字段的值;

上面的myInt字段外部不能访问,只能通过属性来访问该字段。

set函数以类似的方式把一个值赋给字段,这里可以使用关键字value引用用户提供的属性值;value值等于类型和属性相同的一个值,如果属性的类型和字段的类型相同,就不用进行类型转换。

属性可以使用vartual、override和abstract关键字,但是不能将这几个关键字用于字段。

转载于:https://www.cnblogs.com/gates/p/3549064.html

你可能感兴趣的文章
用HTML的select+option标签实现下拉框
查看>>
[改善Java代码]asList方法产生的List对象不可更改
查看>>
ACM题目————Find them, Catch them
查看>>
LeetCode Weekly Contest 119
查看>>
Angular2-之开发环境搭建/调试环境配置
查看>>
DDA, Bresenham line's algorithm and Voxel Traversal used in the Grid-Accelerator in PBRT
查看>>
执行p4 submit后,perl文件丢了可执行属性
查看>>
数字电路中表示频率误差的ppm是什么意思?
查看>>
获取当前焦点所在元素
查看>>
11.8输入一个整数,求它是几位数
查看>>
你不知道的parseInt
查看>>
python基础之python基本数据类型
查看>>
vue中-webkit-box-orient:vertical打包放到线上不显示
查看>>
[Swift通天遁地]一、超级工具-(20)图片面部聚焦:使图像视图自动聚焦图片人物的面部位置...
查看>>
解决SVN提交和更新代码冲突?
查看>>
rem布局注意问题和meta标签
查看>>
[React Testing] Children with Shallow Rendering
查看>>
关于游戏引擎的选择——博客第一篇文章
查看>>
servlet的同步请求异步请求以及请求转发与重定型的区别
查看>>
delphi之TDataset
查看>>