kshen转C#基础语法
2006-06-01 09:45
615 查看
一,注释语句
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//*注释语句包含在"反斜杠* "和" *反斜杠"中,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者两个反斜杠和换行符之中,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
要注意注释中的/,该续行符会把下一行连上来一起注释掉出错。*/
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{//语句块包含在{}中
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int MyInterger;//语句以;结束
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
string MyString;/**////忽略空白字符(空格/回车/TAB)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
MyInterger = 17;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
//要注意防止注释嵌套出错,可用#if,#endif预处理语句。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
二,数据类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
1,基本型/内置型 用户自定义型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,内置类型:CS使用.net FrameWork库中的数据类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
sbyte = System.SByte,...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
类型 字节数 解释
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
byte 1 无符号字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
sbyte 1 有符号字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
short 2 有符号短字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
ushort 2 无符号短字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int 4 有符号整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
uint 4 无符号整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
long 8 有符号长整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
ulong 8 无符号长整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
float 4 浮点数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
double 8 双精度数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
decimal 8 固定精度数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string unicode字串型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char unicode字符型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
bool 真假布尔型//只接受true和false两种值。不接受任何整数类型。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,用户定义类型包括:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
类类型(class)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构类型(struct)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
接口类型(interface)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
2,值类型(Value Types)和引用类型(Reference Types)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enum type)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C++用delete)。它们使用new运算符来创建。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
3,数据类型转换
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数不行。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
显式转换
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
short shortResult, shortVal = 4;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int integerVal = 67;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
long longResult;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
float floatVal = 10.5F;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
double doubleResult, doubleVal = 99.999;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string stringResult, stringVal = "17";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
bool boolVal = true;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Variable Conversion Examples/n数据类型转换范例/n");
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
doubleResult = floatVal * shortVal;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Implicit,->double:{0}*{1}->{2}", floatVal, shortVal, doubleResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
shortResult = (short)floatVal;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Implicit,->short:{0}->{1}", floatVal, shortResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Explicit,->string:/"{0}/"+/"{1}/"->{2}", boolVal, doubleVal, stringResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
longResult = integerVal + Convert.ToInt64(stringVal);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Mixed,->long {0}+{1}->{2}", integerVal, stringVal, longResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
三,变量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
1,普通变量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(1),命名规则:字母或_或@ + 字母或_或数字 (/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(2),声明变量: 变量类型 变量名
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
变量赋值:变量 = 要赋的值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
C#变量被访问之前必须被初始化;否则编译时会报错。因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int i;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string text;//在循环外未初始化
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
for (i = 0;i<10;I++)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
text = "Line" + Convert.ToString(i);//在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("{0},text);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Last txet output in loop:{0},text);//出错。改正方法是在循环外初始化:string text="";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(4)命名约定:简单的用camelCase,复杂的用PascalCase
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(5)变量的七种类型:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
class A
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
public static int x;//静态变量,存在期从类装载直到该程序结束。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int y;//非静态变量,或实例变量,从类实例创建到实例空间释放。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**//*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数 */
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
void F(int[] v,int a,ref int b,out int c)...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int i = 1;//局部变量,不会被初始化
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
c = a + b++;//
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
2,枚举
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
enum 枚举名:枚举值类型(默认是int,默认赋值0,1,2...)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值1=...,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值2=...,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举名 变量名=枚举名.枚举值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
namespace Ch05Ex02
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
enum orientation:byte
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
north=1,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
south=2,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
east=3,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
west=4
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**////Class1's Desciption
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
class Class1
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
byte directionByte;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
string directionString;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
orientation myDirection = orientation.north;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("mydirection = {0}", myDirection);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
directionByte = (byte)myDirection;//因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
directionString = Convert.ToString(myDirection);//等价命令是directionString = myDirection.ToString();
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//反向转换命令是orientation myDirection = (orientation)Enum.Parse(typeof(orientation),myString);但由于enum不一定存得下 string,所以可能出错。如myString赋值为North,就不能映射到orientation中的north,出错。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("byte equivalent = {0}", directionByte);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("string equivalent = {0}", directionString);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
3,结构
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
struct 结构名:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
访问方式1 变量类型1 变量名1;//访问方式public/private
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
访问方式2 变量类型2 变量名2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构名 结构变量名;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构变量名.枚举值=...;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
4,一维数组
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
变量类型[] 数组名 = new 变量类型[元素个数]...{元素0,元素1,元素2...}//元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
遍历方法
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,For循环到.Length
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
for(i=0,i<friendNames.Length,i++)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine(friendNames[i]);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,Foreach进行只读访问
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
foreach(string listName in friendNames)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine(listName);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
5,二维数组(多维)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
变量类型[,] 数组名 = new 变量类型[一维元素个数,二维元素个数]...{...{元素00,元素01,元素02...},...{元素10,元素11,元素12...}...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
6,直角数组(交错数组,数组中的数组)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
7,字符串操作:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string myString = "I have a dream.";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char myChar = myString[2];//把string变量当作只读的char数组使用,不能改写myString[2]
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[] myChars = myString.ToCharArray();
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[]separator = {' '};//设定分隔符
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string[] myWords =myString.Split(separator);//分隔成数组
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("myString have {0} chars",myString.Length);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.ToLower();//转小写
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.ToUpper();//转大写
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.Trim();//删前后空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.TrimStart();//删前空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.TrimEnd();//删后空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadLeft(位数);//前补空格到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadRight(位数);//后补空格到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadLeft(位数,字符);//前补指定字符到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[] trimChars = {"e","#","*"};
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString = myString.trim(trimChars);//删指定字符
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
四,常量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Const int intTwo = 2 (必须声明的同时赋值)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
五,运算符:按优先级顺序排列
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
算术运算符:前缀的++和-- ,前缀一元的+和- 乘 * 除 / 求余 % 加 + 减 -
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
位移运算符:<<,>>
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:小于 < 大于 > 小于等于 <= 大于等于 >=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:==,!=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:&
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:^
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:|
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:&&
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:||
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:等于 = *= /= %= += -= <<= >>= &= ^= |=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
后缀的++和--
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
六,名称空间
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
using system; //system是.net FrameWork应用程序根命名空间,之后就能在全局名称空间引用system中的代码。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
namespace 空间名称
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
using 空间名称2.代码2;//之后就能在代码1处直接引用代码2
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
namespace 空间名称2
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
七,条件语句
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,If语句:通用判断
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
If (条件1)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Else
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
If (条件1)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Else
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,Switch语句:用于同条件多结果判断
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Switch (条件)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果1:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果2:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果3:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码3;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
goto Case 结果2;//此时Case..相当于一个Label
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果4:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码4;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Return;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果5:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果6:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果7:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码567;//只要满足上面三个Case之一就执行。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Default:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,三元运算语句:(条件)?True结果:False结果
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
常用于简单赋值语句:string myString = (myInteger<10)?"Less than 10":"Great than or equal to";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者用于简单格式化文本语句:Console.WriteLine("I am {0} year{1} old.",myinteger,myinteger==1?"":"s");
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
八,循环语句:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
A,Do...While: 当条件为True时循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Do
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
While(条件);//分号不可少
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
B,While...: 当条件为True 时循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
While(条件)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,For...: 使用计数器循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
For (变量;条件;操作)//可以在此时声明变量,但作用域就仅限于循环内了。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Break;//跳出整个循环
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Return;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Continue;//中止当前循环,继续下一个循环
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Goto 标签;//禁止从循环外部用goto跳入循环内部
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
九,函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
A,函数定义:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static 返回值类型/void 函数名(参数类型1 参数1,参数类型2 参数2,...)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
return 返回值;//return必须在函数结束前被处理,不能跳过
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//return ;//当用于void时用不带返回值的return来中止函数。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
B,参数数组:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int sumVals(params int[] vals)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int sum = 0;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
foreach(int val in vals)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
sum+=val;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
return sum;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int sum = sumVals(1,5,2,9,8);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("Summed Values = {0}",sum);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,值传递参数/引用传递参数/out输出参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble(ref int val)//引用传递参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLie("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble2(int val)//值传递参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble3(int val,out int valIndex)//out输出参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
valIndex++;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int myNmuber = 5;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble(ref myNumber);//引用传递参数,会改变myNumber值,所以要求myNumber必须不是常量或者未初始化的变量。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble2(myNumber);//值传递参数,不会改变myNumber值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int valindex;//out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble3(myNumber,out valIndex);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
D,全局变量
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static/const 变量名//const定义的全局变量是只读的
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
E,Main()函数;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main()
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)//args是函数命令行参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int Main()//返回一个表示函数终止状态的int值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int Main(string[] args)//返回一个表示函数终止状态的int值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
F,结构中的函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
G,同名函数的重载:同名,签名不同,系统自动识别使用哪个函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
H,委托:用于把引用存储为函数以灵活调用函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十,面向对象基础
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十一,类
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
1,类的定义
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
class 类名
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//类成员
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
internal/public
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
sealed/abstract
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十和,接口
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
interface IMyInterface
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//接口成员
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//*注释语句包含在"反斜杠* "和" *反斜杠"中,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者两个反斜杠和换行符之中,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
要注意注释中的/,该续行符会把下一行连上来一起注释掉出错。*/
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{//语句块包含在{}中
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int MyInterger;//语句以;结束
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
string MyString;/**////忽略空白字符(空格/回车/TAB)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
MyInterger = 17;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
//要注意防止注释嵌套出错,可用#if,#endif预处理语句。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
二,数据类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
1,基本型/内置型 用户自定义型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,内置类型:CS使用.net FrameWork库中的数据类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
sbyte = System.SByte,...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
类型 字节数 解释
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
byte 1 无符号字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
sbyte 1 有符号字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
short 2 有符号短字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
ushort 2 无符号短字节型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int 4 有符号整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
uint 4 无符号整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
long 8 有符号长整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
ulong 8 无符号长整型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
float 4 浮点数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
double 8 双精度数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
decimal 8 固定精度数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string unicode字串型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char unicode字符型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
bool 真假布尔型//只接受true和false两种值。不接受任何整数类型。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,用户定义类型包括:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
类类型(class)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构类型(struct)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
接口类型(interface)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
2,值类型(Value Types)和引用类型(Reference Types)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enum type)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C++用delete)。它们使用new运算符来创建。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
3,数据类型转换
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数不行。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
显式转换
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
short shortResult, shortVal = 4;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int integerVal = 67;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
long longResult;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
float floatVal = 10.5F;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
double doubleResult, doubleVal = 99.999;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string stringResult, stringVal = "17";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
bool boolVal = true;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Variable Conversion Examples/n数据类型转换范例/n");
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
doubleResult = floatVal * shortVal;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Implicit,->double:{0}*{1}->{2}", floatVal, shortVal, doubleResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
shortResult = (short)floatVal;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Implicit,->short:{0}->{1}", floatVal, shortResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Explicit,->string:/"{0}/"+/"{1}/"->{2}", boolVal, doubleVal, stringResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
longResult = integerVal + Convert.ToInt64(stringVal);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Mixed,->long {0}+{1}->{2}", integerVal, stringVal, longResult);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
三,变量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
1,普通变量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(1),命名规则:字母或_或@ + 字母或_或数字 (/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(2),声明变量: 变量类型 变量名
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
变量赋值:变量 = 要赋的值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
C#变量被访问之前必须被初始化;否则编译时会报错。因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
int i;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string text;//在循环外未初始化
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
for (i = 0;i<10;I++)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
text = "Line" + Convert.ToString(i);//在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("{0},text);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("Last txet output in loop:{0},text);//出错。改正方法是在循环外初始化:string text="";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(4)命名约定:简单的用camelCase,复杂的用PascalCase
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
(5)变量的七种类型:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
class A
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
public static int x;//静态变量,存在期从类装载直到该程序结束。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int y;//非静态变量,或实例变量,从类实例创建到实例空间释放。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**//*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数 */
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
void F(int[] v,int a,ref int b,out int c)...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int i = 1;//局部变量,不会被初始化
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
c = a + b++;//
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
2,枚举
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
enum 枚举名:枚举值类型(默认是int,默认赋值0,1,2...)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值1=...,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值2=...,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
枚举名 变量名=枚举名.枚举值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
namespace Ch05Ex02
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
enum orientation:byte
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
north=1,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
south=2,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
east=3,
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
west=4
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**////Class1's Desciption
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
class Class1
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
byte directionByte;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
string directionString;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
orientation myDirection = orientation.north;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("mydirection = {0}", myDirection);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
directionByte = (byte)myDirection;//因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
directionString = Convert.ToString(myDirection);//等价命令是directionString = myDirection.ToString();
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//反向转换命令是orientation myDirection = (orientation)Enum.Parse(typeof(orientation),myString);但由于enum不一定存得下 string,所以可能出错。如myString赋值为North,就不能映射到orientation中的north,出错。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("byte equivalent = {0}", directionByte);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("string equivalent = {0}", directionString);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
3,结构
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
struct 结构名:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
访问方式1 变量类型1 变量名1;//访问方式public/private
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
访问方式2 变量类型2 变量名2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构名 结构变量名;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
结构变量名.枚举值=...;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
4,一维数组
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
变量类型[] 数组名 = new 变量类型[元素个数]...{元素0,元素1,元素2...}//元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
遍历方法
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,For循环到.Length
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
for(i=0,i<friendNames.Length,i++)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine(friendNames[i]);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,Foreach进行只读访问
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
foreach(string listName in friendNames)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine(listName);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
5,二维数组(多维)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
变量类型[,] 数组名 = new 变量类型[一维元素个数,二维元素个数]...{...{元素00,元素01,元素02...},...{元素10,元素11,元素12...}...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
6,直角数组(交错数组,数组中的数组)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
7,字符串操作:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string myString = "I have a dream.";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char myChar = myString[2];//把string变量当作只读的char数组使用,不能改写myString[2]
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[] myChars = myString.ToCharArray();
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[]separator = {' '};//设定分隔符
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
string[] myWords =myString.Split(separator);//分隔成数组
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Console.WriteLine("myString have {0} chars",myString.Length);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.ToLower();//转小写
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.ToUpper();//转大写
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.Trim();//删前后空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.TrimStart();//删前空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.TrimEnd();//删后空格
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadLeft(位数);//前补空格到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadRight(位数);//后补空格到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString=myString.PadLeft(位数,字符);//前补指定字符到指定位数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
char[] trimChars = {"e","#","*"};
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
myString = myString.trim(trimChars);//删指定字符
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
四,常量:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Const int intTwo = 2 (必须声明的同时赋值)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
五,运算符:按优先级顺序排列
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
算术运算符:前缀的++和-- ,前缀一元的+和- 乘 * 除 / 求余 % 加 + 减 -
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
位移运算符:<<,>>
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:小于 < 大于 > 小于等于 <= 大于等于 >=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:==,!=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:&
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:^
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:|
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:&&
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
逻辑运算符:||
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
比较运算符:等于 = *= /= %= += -= <<= >>= &= ^= |=
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
后缀的++和--
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
六,名称空间
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
using system; //system是.net FrameWork应用程序根命名空间,之后就能在全局名称空间引用system中的代码。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
namespace 空间名称
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
using 空间名称2.代码2;//之后就能在代码1处直接引用代码2
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
namespace 空间名称2
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
七,条件语句
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
A,If语句:通用判断
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
If (条件1)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Else
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
If (条件1)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Else
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
{}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
B,Switch语句:用于同条件多结果判断
![](http://www.actiprosoftware.com/Images/OutliningIndicators/None.gif)
Switch (条件)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果1:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码1;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果2:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果3:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码3;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
goto Case 结果2;//此时Case..相当于一个Label
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果4:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码4;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Return;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果5:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果6:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Case 结果7:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码567;//只要满足上面三个Case之一就执行。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Default:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
代码;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
break;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,三元运算语句:(条件)?True结果:False结果
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
常用于简单赋值语句:string myString = (myInteger<10)?"Less than 10":"Great than or equal to";
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
或者用于简单格式化文本语句:Console.WriteLine("I am {0} year{1} old.",myinteger,myinteger==1?"":"s");
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
八,循环语句:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
A,Do...While: 当条件为True时循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Do
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
While(条件);//分号不可少
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
B,While...: 当条件为True 时循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
While(条件)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,For...: 使用计数器循环。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
For (变量;条件;操作)//可以在此时声明变量,但作用域就仅限于循环内了。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Break;//跳出整个循环
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Return;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Continue;//中止当前循环,继续下一个循环
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Goto 标签;//禁止从循环外部用goto跳入循环内部
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
九,函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
A,函数定义:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static 返回值类型/void 函数名(参数类型1 参数1,参数类型2 参数2,...)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
...
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
return 返回值;//return必须在函数结束前被处理,不能跳过
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//return ;//当用于void时用不带返回值的return来中止函数。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
B,参数数组:
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int sumVals(params int[] vals)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int sum = 0;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
foreach(int val in vals)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
sum+=val;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
return sum;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int sum = sumVals(1,5,2,9,8);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("Summed Values = {0}",sum);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
C,值传递参数/引用传递参数/out输出参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble(ref int val)//引用传递参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLie("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble2(int val)//值传递参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void showDouble3(int val,out int valIndex)//out输出参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
val*=2;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
valIndex++;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
Console.WriteLine("val doubled = {0}",val);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int myNmuber = 5;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble(ref myNumber);//引用传递参数,会改变myNumber值,所以要求myNumber必须不是常量或者未初始化的变量。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble2(myNumber);//值传递参数,不会改变myNumber值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
int valindex;//out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
showDouble3(myNumber,out valIndex);
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
D,全局变量
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static/const 变量名//const定义的全局变量是只读的
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
E,Main()函数;
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main()
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static void Main(string[] args)//args是函数命令行参数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int Main()//返回一个表示函数终止状态的int值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
static int Main(string[] args)//返回一个表示函数终止状态的int值
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
F,结构中的函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
G,同名函数的重载:同名,签名不同,系统自动识别使用哪个函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
H,委托:用于把引用存储为函数以灵活调用函数
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十,面向对象基础
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十一,类
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
1,类的定义
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
class 类名
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//类成员
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
internal/public
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
sealed/abstract
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
十和,接口
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
interface IMyInterface
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
//接口成员
![](http://www.actiprosoftware.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.actiprosoftware.com/Images/OutliningIndicators/InBlock.gif)
相关文章推荐
- c#基础语法速查手册(适用于菜鸟)
- c#基础语法之 解读delegate create by lee
- 基础知识(C#语法、数据库SQL Server)回顾与总结
- C#语法基础
- 第03篇:C#星夜拾遗之语法基础
- C#基础班第二天笔记(基础语法)
- Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏)
- 0712c#第一天C#语言基础介绍与语法入门
- C#基础语法(第三天)
- C#语法基础
- C#语法基础
- C#基础语法:方法参数详解
- C#基础语法:as 运算符使用实例
- C#_02_基础语法
- C#学习笔记—语法基础
- 第一讲——C#基础语法
- C#_01_基础语法
- C#与Java基础语法初比较
- 【C#基础】【语法01】课后作业题 01-05
- 自学笔记三:C#语法基础 数据类型之引用类型