20160425
今天老大给我们进行了第二次测试,好多题都是有个印象但不知道具体答案是什么,还有他今天讲的关于C#基础的问题原来很多模糊的地方都清楚了不少,但是关于内存的问题还是很困惑。
C#预编译(没懂)
运行库
动态添加(通过using引用命名空间 通过类名引用)
静态添加(直接将方法写在其中)
传递参数
值传递
实参在内存中分配空间 形参只有在调用时才分配空间(不理解)
引用传递
ref(传入,只能传入)传入,前必须定义和赋值
out(传出,只能传出)传出,从方法体里面传出
共同点:均不能在运行时赋值
变量的作用域
全局变量(和静态变量近似)在程序结束时才销毁
局部变量
内存分为
静态变量区
全局变量区
局部变量区
索引器(不理解)
string [] strlist=new string {"A","B"};
strlist[0];
internal:只能在同一个项目上引用
参数修饰符
ref
out
string
parms(可变参数)
字符串
IndexOf 第一次出现的位置
LastIndexOf 最后一次出现的位置
截取字符串
s ="ABCD";
Console.WriteLine(s.Substring(1)); // 从第2位开始(索引从0开始)截取一直到字符串结束,输出"BCD"
Console.WriteLine(s.Substring(1, 2)); // 从第2位开始截取2位,输出"BC"
Console.WriteLine();
过滤特殊字符
1 /// <summary> 2 /// 过滤特殊字符 3 /// 如果字符串为空,直接返回。 4 /// </summary> 5 /// <param name="str">需要过滤的字符串</param> 6 /// <returns>过滤好的字符串</returns> 7 public static string FilterSpecial(string str) 8 { 9 if (str == "") 10 { 11 return str; 12 } 13 else 14 { 15 str = str.Replace("'", ""); 16 str = str.Replace("<", ""); 17 str = str.Replace(">", ""); 18 str = str.Replace("%", ""); 19 str = str.Replace("'delete", ""); 20 str = str.Replace("''", ""); 21 str = str.Replace("\"\"", ""); 22 str = str.Replace(",", ""); 23 str = str.Replace(".", ""); 24 str = str.Replace(">=", ""); 25 str = str.Replace("=<", ""); 26 str = str.Replace("-", ""); 27 str = str.Replace("_", ""); 28 str = str.Replace(";", ""); 29 str = str.Replace("||", ""); 30 str = str.Replace("[", ""); 31 str = str.Replace("]", ""); 32 str = str.Replace("&", ""); 33 str = str.Replace("#", ""); 34 str = str.Replace("/", ""); 35 str = str.Replace("-", ""); 36 str = str.Replace("|", ""); 37 str = str.Replace("?", ""); 38 str = str.Replace(">?", ""); 39 str = str.Replace("?<", ""); 40 str = str.Replace(" ", ""); 41 return str; 42 } 43 } 44 复制代码
转换大小写
s ="aBcD";
Console.WriteLine(s.ToLower()); // 转化为小写,输出"abcd"
Console.WriteLine(s.ToUpper()); // 转化为大写,输出"ABCD"
Console.WriteLine();
反转
string str = "abcdefg"; char[] cs = str.ToCharArray(); Array.Reverse(cs); string res = new string(cs); Console.WriteLine(res);
类型转换
显式类型转换
隐式类型转换
Object---〉class person
Object obj=new Person();隐式(子类转化成父类)
异常处理(模糊)
字符串特性
只要new对象就在堆里面开辟空间,字符串常量值若相同只存一份
机制
字符串 常量 暂存池,以键值对的形式储存
字符串拼接
+
StringBuild(为什么高效---在堆栈中的对象少)
string str=a+b+c;
string
str =
"abcdefg"
;
char
[] cs = str.ToCharArray();
Array.Reverse(cs);
string
res =
new
string
(cs);
Console.WriteLine(res);