C# 语法基础
作者:parno 日期:2010-04-30
1、变量定义
- int myInt; //变量类型 变量名
- myInt = 10; //初始化
- int myInt2 = 10; //变量类型 变量名 = 初始化值
- int myInt3, myInt4; // 多个相同类型的变量在同一行一起声明
- int myInt5 = 11, myInt5 = 12; //多个相同的类型的变在同一行一起声明并初始化
C#变量在声明后必需要先初始化才能访问,否则编译会报错。如上面代码中 myInt3 和 myInt4 还没有初始化。
- using System;
- class MyInit
- {
- static void Main()
- {
- double r = 2, h = 3;
- double v = 3.14159 * r * h;
- Console.WriteLine("V is " + v);
- }
- }
变量的作用域、生命周期:
C# 可以用{}来定义程序,一个程序块就是一个作用域,作用域可以嵌套,在外层作用域声明的变量对内层的代码是可见的,反之,内层作用域声明的变量对外屋来说 不可见。
- void myfun()
- { //外层代码块开始
- int a;
- { //内层代码块开始
- int b;
- a = 1;
- } //内层代码块结束
- a = 2;
- b = 3; //出错,因为 b 声明于内层代码块,外层不能访问
- } //外层代码块结束
常见运算符:+、-、*、/、%、++、--
关系运算符:==、!=、>、<、>=、<=
逻辑运算符:&、|、^、||、&&、!
^ 表示逻辑 XOR
C# 中 && 和 || 是 AND(&) 和 or(|) 的“短路”版本,意思是如果第一个检查满足的话那就不再进行查运算符后面的检查。
赋值:=
复合赋值:+=、-=、*=、/=、%=、&=,|=,^=
强制类型转换:(type) expression,type 是期望的类型。
(int) myExpression
基本数据类型:
整型:sbyte(8位),byte(8位),short(16 位),ushort(16位),int(32位),uint(32位),long(64位),ulong(64位)
浮点型:float(32位),double(64位),decimal(128位)
其它类型:bool(16位),char(16位),string
整数默认为 int 类型,浮点数默认为 double 类型,decimal 精度最高,常用于货币计算。char 表示的是一个 Unicode 字符,string 几乎没有长度限制。
2、静态变量和非静态变量
静态变量是带有 static 修饰符的变量,不带 static 的非静太变量称为实例变量。
- class Class1
- {
- static int b = 0; //静态变量
- int a = 0; //非静态变量
- }
静态变量通过“类名.静态变量名”来调用,类的实例不能调用。如上例访问静态变量 b 时:Class1.b = 1
非静态变量要在类被实例化后通过实例化的对象名来访问。如上例访问非静态变量时:
- Class1 c1 = new Class1();
- c1.a = 0; //访问非静态变量 a 成功
- Class1.b = 1; //使用类名访问静态变量 b 成功
- c1.b = 1; //这里会出错,因为静态变量不能通用实例引用
静态变量被所有类的实例对象共享,即一个实例改变了静态变量的值,其它同类的实例读到是改变后的新值,非静态变量是不共享的。
静态变量生命周期从类装载直到类消亡,非静态变量存在期从类实例创建到实例消亡。
3、局部变量、数组元素、值参数、引用参数、输出参数
局部变量指在独立程序块、for、switch 或 using 语句中声明的变量,它只在范围内有效。
一般参数的使用:
- int i = 1, j = 2;
- //i 和 j 是一般参数,一般参数传递进函数的是参数的拷贝值
- int add(int i, int j)
- {
- return i + j;
- }
- main()
- {
- print(add(i, j));
- }
引用参数的使用:
- int i = 1, j = 2;
- //void 表示函数无返回值或可以说是返回 void 类型,main 可以不写,这里的 i 和 j 是引用参数,ref 和 out 参数直接修改内存中的值。
- {
- void add(ref int i, ref int j)
- i = i + j
- }
- main()
- {
- add(i, j);
- print(i);
- }
ref 和 out 的区别:
ref 要求参数在传递之前进行初始化,而 out 要求在函数中对参数进行初始化。所以,ref 是输入输出参数,而 out 是输出参数。
4、常量
常量的值固定不可改变。
静态常量:
const 声明的常量叫静态常量,声明时必须初始化,且只能用常数值。
常量声明语法:属性修饰符 const 类型 名称 = 值
属性修饰符包括:new、public、protected、internal、private
类型包括:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string、enum-type(枚举类型)和 reference-type(引用类型)。
- class Class1
- {
- const double PI = 3.14; //常量 PI 作为一个字段或属性
- myfun()
- {
- const int i = 2; //i 作为一个本地常量
- }
- }
动态常量:
readonly 声明的常量叫动态常量,在声明时可以不初始化,但必须在每个构造函数中初始化,可能使用变量值初始化,可以作为一个实例的成员或一个静态类的成员。
- class Class1
- {
- readonly float VALUE1; //动态常量 VALUE,最好用大写字母
- readonly int VALUE2 = 3; //动态常量 VALUE
- readonly StringBuilder SB1;
- public myfun()
- {
- VALUE1 = 9.80F; //9.80后面的 F 表示强制常量类型是 float 类型,long 为 L,uint 为 U,ulong 为 UL,decimal 为 M
- sb1 = new StringBuilder();
- }
- public myfun(float value) //每个构造函数中都要初始化,而且可以使用变量
- {
- VALUE1 = value;
- }
- }
5、C# 程序典型框架
- using System; //引用 .NET 框架中的类库资源
- namespace YourNamespace //命名空间
- {
- class YourClass //类
- {
- }
- struct YourStruct //结构
- {
- }
- interface IYourInterface //接口
- {
- }
- delegate int YourDelegate(); //委托
- enum YourEnum //枚举
- {
- }
- namespace YourNestedNamespace //嵌套的命名空间
- {
- struct YourStruct //结构
- {
- }
- }
- class YourMainClass //应用程序主类
- {
- /* C# 可执行程序入口是 Main 方法,程序的执行从 Main 方法开始,
- 到 Main 方法结束,但动态连接库 DLL 程序可以没有 Main 方法,入口
- 方法唯一且为一个类中的静态方法,通常无返回值 void(也可以返回
- int),通常传递进该方法的是字符串数组类型的命令行参数 */
- static void Main(string[] args) //入口
- {
- int myINT; //语句以;结束
- string myString; //编译器会忽略空白字符(空格/回车/Tab)
- myINT = 10; //编译器对大小写敏感
- }
- }
- }
下一篇: 中星9号直播卫星(中九)刷机经验谈
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: .NET dotNet C# C
相关日志: