C# 中的 Lvalues 和 Rvalues:和 c 中的概念差不多(变量是 Lvalues,出现在等号的左右都可以,但是值只能是 Rvalues的)
2、常量
概念和 java 一样,就是运行过程中不能改变的特殊变量;
char 用单引号,string 用双引号,这和 java 又是一样的;
定义常量:const int h=1;
三、运算符
1、算术运算符
也有 ++ 和 - - :使用的细节都和 java 是一毛一样的像
2、关系、逻辑、位、赋值运算符:无话可说
3、其他运算符
sizeof 和 typeof
& 返回变量地址;* 变量的指针;
支持三目运算符
is 和 as:is 用于判断对象类型,as 用于强制转换,失败也不抛异常
运算符优先级有万能的括号
语句 | 方法 | 封装
一、语句
1、判断
if–else
和 java 一样
switch
使用和基本的特性和 java 也差不多是一样的
比较的类型可以是整形或枚举,或者可以转换为二者之一的 class
2、循环
while/do–while
for/foreach
break/continue
int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
foreach (int element in fibarray)
{
System.Console.WriteLine(element);
}
二、封装
一个访问修饰符定义了一个类成员的范围和可见性:
public:所有对象都可以访问;
private:对象本身在对象内部可以访问,类成员默认的修饰符;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型,就是两个修饰符的并集
三、方法
1、方法参数传递
方法的定义和调用和 java 没啥不同,方法参数传递存在一些差异
按值传递
按引用传递
using System;
namespace CalculatorApplication
{
class NumberManipulator
{
public void swap(ref int x, ref int y)
{
int temp;
temp = x; /* 保存 x 的值 */
x = y; /* 把 y 赋值给 x */
y = temp; /* 把 temp 赋值给 y */
}
static void Main(string[] args)
{
NumberManipulator n = new NumberManipulator();
/* 局部变量定义 */
int a = 100;
int b = 200;
Console.WriteLine("在交换之前,a 的值: {0}", a);