1,普通变量:
(1),命名规则:字母或_或@ + 字母或_或数字 (/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容)
(2),声明变量: 变量类型 变量名
变量赋值:变量 = 要赋的值
C#变量被访问之前必须被初始化;否则编译时会报错。因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。
(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。
本帖相关代码 [全显模式]
int i;
string text; //在循环外未初始化
for (i = 0;i<10;I++)
{
text = "Line" + Convert.ToString(i); //在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。
Console.WriteLine( "{0},text);
}
Console.WriteLine("Last txet output in loop:{0},text); //出错。改正方法是在循环外初始化:string text="";
(4)命名约定:简单的用camelCase,复杂的用PascalCase
(5)变量的七种类型:
本帖相关代码 [全显模式]
class A
{
public static int x; //静态变量,存在期从类装载直到该程序结束。
int y; //非静态变量,或实例变量,从类实例创建到实例空间释放。
/*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数 */
void F( int[] v, int a,ref int b,out int c){
int i = 1; //局部变量,不会被初始化
c = a + b++; //
}
}
2,枚举
enum 枚举名:枚举值类型(默认是int,默认赋值0,1,2...)
{
枚举值1=...,
枚举值2=...,
枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1
...
}
枚举名 变量名=枚举名.枚举值
本帖相关代码 [全显模式]
namespace Ch05Ex02
{
enum orientation:byte
{
north=1,
south=2,
east=3,
west=4
}
///Class1's Desciption
class Class1
{
static void Main(string[] args)
{
byte directionByte;
string directionString;
orientation myDirection = orientation.north;
Console.WriteLine( "mydirection = {0}", myDirection);
directionByte = ( byte)myDirection; //因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte;
directionString = Convert.ToString(myDirection); //等价命令是directionString = myDirection.ToString();
//因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);
// 反向转换命令是orientation myDirection = (orientation)Enum.Parse(typeof(orientation),myString);但由于enum不一定存得下 string,所以可能出错。如myString赋值为North,就不能映射到orientation中的north,出错。
Console.WriteLine( "byte equivalent = {0}", directionByte);
Console.WriteLine( "string equivalent = {0}", directionString);
}
}
}
3,结构
struct 结构名:
{
访问方式1 变量类型1 变量名1;//访问方式public/private
访问方式2 变量类型2 变量名2;
...
}
结构名 结构变量名;
结构变量名.枚举值=...;
4,一维数组
变量类型[] 数组名 = new 变量类型[元素个数]{元素0,元素1,元素2...}//元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。
遍历方法
A,For循环到.Length
for(i=0,i<friendNames.Length,i++)
{
Console.WriteLine(friendNames[i]);
}
B,Foreach进行只读访问
foreach(string listName in friendNames)
{
Console.WriteLine(listName);
}
5,二维数组(多维)
变量类型[,] 数组名 = new 变量类型[一维元素个数,二维元素个数]{{元素00,元素01,元素02...},{元素10,元素11,元素12...}...}
6,直角数组(交错数组,数组中的数组)
7,字符串操作:
本帖相关代码 [全显模式]
string myString = "I have a dream.";
char myChar = myString[2]; //把string变量当作只读的char数组使用,不能改写myString[2]
char[] myChars = myString.ToCharArray();
char[]separator = {' '}; //设定分隔符
string[] myWords =myString.Split(separator); //分隔成数组
Console.WriteLine( "myString have {0} chars",myString.Length);
myString=myString.ToLower(); //转小写
myString=myString.ToUpper(); //转大写
myString=myString.Trim(); //删前后空格
myString=myString.TrimStart(); //删前空格
myString=myString.TrimEnd(); //删后空格
myString=myString.PadLeft(位数); //前补空格到指定位数
myString=myString.PadRight(位数); //后补空格到指定位数
myString=myString.PadLeft(位数,字符); //前补指定字符到指定位数
char[] trimChars = { "e", "#", "*"};
myString = myString.trim(trimChars); //删指定字符