C#程序设计:继承与接口详解

需积分: 1 0 下载量 93 浏览量 更新于2024-08-01 收藏 229KB PDF 举报
C#编程中的高阶程序设计,主要涉及了词法分析(Tokenizing)、算术运算符处理以及表达式求值的相关知识点。 这段代码展示了C#中的一个简单计算器的实现,它处理基本的算术运算,如加、减、乘、除。代码主要包含以下几个部分: 1. **词法分析**: `gettoken()` 函数是词法分析器的实现,它的目的是从输入的字符序列`prog`中识别出操作符和数字。它首先清空`token`字符串,然后遍历字符,跳过空格,当遇到加号、减号、乘号或除号时,标记当前操作符类型为`DILIM`并添加到`token`中;如果遇到数字,则标记类型为`NUM`,并将数字连续添加到`token`直到非数字字符出现。如果遇到无法识别的字符,标记为`ERR`。 2. **算术运算处理**: `arith(char op, ref float r, float h)` 函数处理基本的算术运算,根据传入的操作符`op`(+、-、*、/),对两个浮点数`r`和`h`执行相应的运算。 3. **优先级处理**: `lev1(ref float r)` 和 `lev2(ref float r)` 函数用于处理不同优先级的运算。`lev2`处理乘法和除法,`lev1`处理加法和减法。这两个函数通过递归调用彼此,实现了从更高优先级到更低优先级的运算。在`lev1`中,当遇到加号或减号时,会先计算右侧表达式,然后将结果应用到当前的累加和上。`lev2`则处理乘法和除法,同样通过获取右侧表达式的值并应用运算。 4. **访问修饰符**: 在C#中,访问修饰符如`public`, `private`, `protected`, `internal`等用于控制类和类成员的可见性,但在这段代码中并未直接提及。 5. **继承和接口**: 虽然提供的内容没有直接涉及到继承和接口,但在上下文中,可以联想到C#支持这两种类型的继承。实现继承允许一个类从另一个类派生并继承其成员,而接口继承则允许类实现接口定义的一组方法,但不提供具体实现,通常用于规定类必须实现的特定行为。 6. **面向对象编程**: 代码虽然简洁,但它体现了面向对象编程的一些关键概念,如方法(`gettoken`, `arith`, `lev1`, `lev2`)和数据成员(`token`, `prog`, `i`)。这些方法处理了程序中的特定任务,符合面向对象设计原则。 这段代码展示了如何在C#中进行简单的词法分析、表达式解析和计算,同时提供了关于面向对象编程的线索,如方法的定义和使用。虽然没有涉及继承和接口的具体实现,但可以从上下文中理解它们在C#中的重要性和用法。