云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > c#定义

c#定义

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 5:52:59

static void main() {

int i = 0; int j;

while(i < 10){

j = i * i;

console.writeline(\

i = i + 1; } } }

c#要求局部变量在其值被获得之前明确赋值(definitely)。例如,假设前面的变量i的声明没有包含初始值,那么,在接下来对i的使用将导致编译器报告错误,原因就是i在程序中没有明确赋值。

方法能够使用return语句将控制返回给它的调用方。如果方法是void的,则return语句不能指定表达式;如果方法是非void的,则return语句必须包含表达式,用于计算返回值。

1.6.5.3 静态方法和实例方法

若一个方法声明中含有static修饰符,则称该方法为静态方法(static method)。静态方法不对特定实例进行操作,只能访问静态成员。

若一个方法声明中没有static修饰符,则称该方法为实例方法(instance method)。实例方法对特定实例进行操作,既能够访问静态成员,也能够访问实例成员。在调用实例方法的实例上,可以用 this来访问该实例,而在静态方法中引用this是错误的。

下面的entity类具有静态和实例两种成员:

class entity {

static int nextserialno;

int serialno;

public entity() {

serialno = nextserialno++; }

public int getserialno() {

return serialno; }

public static int getnextserialno() {

return nextserialno; }

public static void setnextserialno(int value) {

nextserialno = value; } }

每一个entity实例包含一个序列号(并且假定这里省略了一些其他信息)。entity构造函数(类似于实例方法)用下一个有效的序列号初始化新的实例。因为构造函数是一个实例成员,所以,它既可以访问serialno实例字段,也可以访问nextserialno静态字段。

getnextserialno和setnextserialno静态方法能够访问nextserialno静态字段,但是如

果访问serialno实例字段就会产生错误。

下面的示例展示了entity类的使用:

using system;

class test {

static void main() {

entity.setnextserialno(1000);

entity e1 = new entity();

entity e2 = new entity();

console.writeline(e1.getserialno()); //输出 \

console.writeline(e2.getserialno()); //输出 \

console.writeline(entity.getnextserialno()); //输出 \ } }

注意,setnextserialno和getnextserialno静态方法通过类调用,而getserialno实例成员则通过类的实例调用。

1.6.5.4 虚拟方法、重写方法和抽象方法

若一个实例方法的声明中含有virtual修饰符,则称该方法为虚拟方法(virtual method)。若其中没有virtual修饰符,则称该方法为非虚拟方法(nonvirtual method)。

在一个虚拟方法调用中,该调用所涉及的实例的运行时类型(runtime type)确定了要被调用的究竟是该方法的哪一个实现。在非虚拟方法调用中,实例的编译时类型(compile-time type)是决定性因素。

虚拟方法可以由派生类重写(override)译注7实现。当一个实例方法声明中含有override修饰符时,该方法将重写所继承的相同签名的虚拟方法。虚拟方法声明用于引入新方法,而重写方法声明则用于使现有的继承虚拟方法专用化(通过提供该方法的新实现)。

抽象(abstract)方法是没有实现的虚拟方法。抽象方法的声明是通过abstract修饰符实现的,并且只允许在抽象类中使用抽象方法声明。非抽象类的派生类需要重写抽象方法。

下面的示例声明了一个抽象类expression,它表示一个表达式树的节点;它有三个派生类constant,variablereference,operation,它们实现了常数、变量引用和算术运算的表达式树节点。

using system;

using system.collections;

public abstract class expression {

public abstract double evaluate(hashtable vars); }

public class constant: expression {

double value;

public constant(double value) {

this.value = value; }

public override double evaluate(hashtable vars) {

搜索更多关于: c#定义 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

static void main() { int i = 0; int j; while(i < 10){ j = i * i; console.writeline(\ i = i + 1; } } } c#要求局部变量在其值被获得之前明确赋值(definitely)。例如,假设前面的变量i的声明没有包含初始值,那么,在接下来对i的使用将导致编译器报告错误,原因就是i在程序中没有明确赋值。 方法能够使用return语句将控制返回给它的调用方。如果方法是void的,则return语句不能指定表达式;如果方法是非void的,则return语句必须包含表达式,用于计算返回值。 1.6.5.3 静态方法和实例方法 <

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com