1) .Net Framework使用什么写的?
2) 理解函数:就是将一堆代码进行重用的一种方式。你只要给他提供一种必要的数据, 然后,当它执行完毕后,获取它的返回值即可。
2 每个函数就是一个小的城堡,内部的东西,外面不能获取。
3 自己能确定的数据,自己内部确定,自己确定不了的那就通过参数决定。
3)关于函数的重载
1 要求同名的函数的签名(参数类型,参数个数)不能一致
2 只有其参数的类型和顺序不一致才能overload,与返回值无关。
4) 可变参数,(params int[] i)
1 就是调用该函数时,可以传递int类型的多个参数,但该函数会将该函数的这些参数 进行拼接成一个数组。
2 个数不确定的可变参数,一数组的形式进行传递。
3 可变参数一定要是所有参数中的最后一个。
5)C#4.0的新特性,可以有默认参数
1 当然此种功能可以用函数的重载来实现。
6)ref参数(拷贝参数)
1 swap(ref i1,ref i2) //传递的时候不是复制品,就是该对象
2 使用ref的变量在传递前,必须为其赋值,初始化,因为函数内部会用它。
7)out 参数
1 使用out参数,不需要初始化,因为是内部为外部赋值
2 用在函数有多个返回值的地方
3 自己手写int.TryParse
static bool TryParse(string snum, out int inum)
{
try
{ i
num = Convert.ToInt32(snum);
return true;
} catch (Exception ex)
{ Console.WriteLine(ex.ToString());
inum = 0;
return false;
}
}
8)关于string
1 s="";和string.Empty是等效的
2 string.IsNullOrEmpty(str);和if(str==null||str=="")是等效的
3 s1="";s2=" ";是不一样的前者的长度为0,后者的长度则不是
4 字符串的不可变性,所以只能通过索引来读取制定位置的字符,要想修改只能对
toCharArray();后的字符修改后,在New一个新的string。但是原先的那个字符串没有发生任何变化,因为字符串是不可变的。
5 s.Trim(); s.Equals(); string.Format(); string.IsNullOrEmpty();
string.Join("|",strs); str.Split('|'); str.Substring() ;
str.Replace(,); str.Contains(); str.StartsWith(); str.EndsWith(); str.IndexOf();
9)关于ASCII码
1 char c = 'a';
int i = c; //得到字符c的ASCII
2 int j='a' + 'c'; //当有运算时,会自动变为ASCII
3 char b =(char)('a' - 'A'); //记得要强制类型转换
10)变量的作用域
1 变量用的时候再声明更好,因为可以更快的释放内存
11) 关于值传递和应用传递
1 值类型是传递拷贝,因为基础类型不占内存。
2 引用类型是传递引用,因为对象比较占内存。
3 对于引用传递,传递的是引用,所以...
static void ChangeString(ref string s1,ref string s2)
{
string temp = s1; //一定要使用ref,才能起到拷贝的效果
s1 = s2;
s2 = temp;
}
4 同样的引用传递,同样的修改了指向对象的值,但是有不同的效果
static void ChangeString(string s1)
{
s1 = "2222"; //注意字符串的不可变性
}
static void ChangeStringPerson(Person p1)
{
p1.age= 22; //修改了指向对象的值
}

浙公网安备 33010602011771号