1:不管是实参还是形参,都在内存中开辟空间。

2:写一个方法,它的功能一定要单一,方法中最忌讳的就是出现提示用户输入的字眼。
3:out参数
如果在一个方法中,返回多个类型相同的值时,可以考虑返回一个数组。
但是,如果返回多个不同类型的值的时候,返回数组就不行了,我们可以考虑使用out参数。
out参数就侧重于在一个方法中返回多个不同类型的值。
4:ref参数(类似于C语言中的指针或者C++中的引用)
能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出去。
5:params参数(唯独params在实参列表中不需要写,但是out和ref关键字必须要写上)
将实参列表中跟可变参数数组类型一致的元素都当作数组的元素去处理。
params可变参数必须是参数列表中的最后一个元素。
6:方法的重载
方法的重载指方法名相同,但是参数不同,跟方法的返回值没有关系。参数不同可能是个数不同,也可能是类型不同。
保留几位小数(两位小数):
 
7: string s=num.ToString("0.00");
num=Convert.ToDouble(s);
这样就把num保留两位小数了。
当然也可以用占位符的形式,也能达到效果!!!
 
 
8:
属性的本质是两个方法,一个叫get(),一个叫set().
在进行设值限定的时候,参数用的是vlaue,在进行取值限定的时候参数用的是字段。
属性有可读可写属性,只读属性,只写属性。
Fields字段
Methods方法
Property属性  //Properties
9:
this关键字
1)、代表当前类的对象
2)、在类当中显示的调用本类的构造函数  :this
 
10:命名空间
可以认为类是属于命名空间的。
如果在当前这个项目中没有这个类的命名空间,需要我们手动的导入这个类所在的命名空间。
1、用鼠标去点;
2、alt+Shift+F10;
3、记住命名空间,手动的去引用;
 
11:在一个项目中引用另一个项目的类
1、 添加引用;
2、引用命名空间;
 
12:值类型和引用类型的区别
1、值类型和引用类型在内存上存储的地方不一样;
2、在传递值类型和引用类型的时候,传递方式不一样;(值传递、引用传递)
 
13:学过的值类型和引用类型
值类型:int    double    char    decimal    enum    struct    bool
引用类型:string    数组    自定义类
值类型存储在内存的栈中;
引用类型存储在内存的堆中;
 
14:字符串
1、不可变性
当你给一个字符串重新 赋值后,老值并没有销毁,而是重新开辟一块空间存储新值;
当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则销毁改空间;
2、我们可以将字符串看作是char类型的一个只读数组。
ToCharArray();将字符串转换成char数组;
new string (char [] chs);能够将char数组转换成字符串;
 
15:字符串的常用方法
1、Length,获取当前字符串中的字符个数    或者说是数组长度;
2、ToUpper(),将字符串转换成大写形式;(返回值string)
3、ToLower(),将字符串转换成小谢形式;    (返回值string)
4、Equals(s2,  StringComparison.OrdinalIgnoreCase)    比较两个字符串,可以忽略字符串的大小写;(返回值bool)
5、Split(),分割字符串,返回字符串类型的数组;(返回值string[])
6、SubString(),截取字符串,在截取的时候包含要截取的那个位置;    (有两种不同的参数--int     --int-length)(返回值string)
7、IndexOf(),判断哪个字符在某字符串第一次出现的位置,如果没有,返回-1、值类型和引用类型在内存上存储的地方不一样。(返回值int)
8、LastIndexOf(),判断哪个字符在字符串中最后一次出现的位置,如果没有,同样返回-1;(返回值int)
9、StartsWith(),判断以。。。开始;(返回值bool)
10、EndsWith(),判断以。。。结束;(返回值bool)
11、Replace(),将字符串的中的某个字符串替换成新的字符串;(返回值为string)
12、Contains(),判断字符串中是否包含某个字符串;(返回值为bool)
13、Trim(),去掉字符串前后的空格;(返回值String)
14、TrimEnd(),去掉字符串中尾部的空格;(返回值string)
15、TrimStart(),去掉字符串中首部的空格;(返回值string)
16、string.IsNullOrEmpty(),判断一个字符串是否为Null或空;(返回值bool)
17、string.Join(),将数组按照指定的字符串连接,返回一个字符串。(返回值string)
 
18:继承
1)、子类继承了父类的属性和方法,但是没有继承父类的私有字段和构造函数,虽然没有继承父类的构造函数,但是子类会默认调用父类的无参构造函数,然后创建父类对象,方便子类对象调用父类的方法。(这都是有前提的)
2)、在子类中调用父类的构造函数记得使用base()关键字。
3)、new关键字的作用:
创建对象;
隐藏父类那里继承过来的同名成员,隐藏的后果就是子类调用不到父类的同名成员。
 
19:ArrayList list=new ArrayList();
添加单个元素用list.Add();
添加集合的话用list.AddRange();
删除元素:
list.Clear();//删除所有元素
list.Remove(object obj);//删除特定的元素,obj写谁,就删谁
list.RemoveAt(int dex);//按下标删除特定元素
list.RemoveRange(int dex,int long);//从dex这个下标开始删除long长度的元素
list.sort(); //升序排列
list.Reverse(); //反转元素
list.Insert(); //在指定位置插入元素
list.InsertRange(); //在指定位置插入一个集合
list.Contains(); //判断是否包含某个元素
 
20:
is:表示类型转换,如果能够转换成功,则返回一个true,否则返回一个false。
as:表示类型转换,如果能够转换则返回对应的对象,否则返回一个null。
 
21:我们将一个对象输出到控制台时,默认情况下输出该类所在的命名空间。 
同理,将一个数组输出到控制台时,默认情况下输出该数组类型所在的命名空间。
For Example:
int[] number={1,2,3,4,5,6,7,8};
Console.WriteLine(number); //此时在控制台只会输出System.Int32[]
 
22:ArrayList集合的长度问题 
每次集合中实际包含的元素个数(count)超过了可以包含的元素个数(capacity)时,
集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用!
 
 
 
23:Hashtable:键值对集合 
根据键来存储值、并且键是唯一的,不能重复。
Hashtable ht = new Hashtable();
添加元素的方式有两种:
1:ht.Add(Keys,Value); //Keys的值不能出现重复;
2:ht[Keys]=Value;     //这个类似于赋值,keys的值相同时,会把之前的旧值覆盖掉。
对Hashtable中的元素进行遍历时,只能用foreach循环,用for循环不能满足要求。
foreach(Var item  in collection)  //Var:能够根据值来推断出值的类型(但是,之所以一直不用Var类型,是因为在用Var来定义变量的时候必须初始化变量)
{ //C#是一种强类型语言(必须给出变量的明确类型定义)
 XXXXX...... //js是一种弱类型语言(不需要给出变量的明确类型定义)
}
在遍历Hashtable集合的时候可以根据键来遍历其中的值,也可以直接根据值来遍历。
foreach(Var item in ht.Keys) //根据键来遍历
foreach(Var item in ht.Value) //直接根据值来遍历
在Hashtable集合中对键和值的类型没有要求,可以是任意类型:
例如:ht.Add("abc","cba")、ht.Add('a',false)、ht.Add(true,3.45).....
Hashtable中的常用方法:
ht.Add(); //添加元素
ht.Remove(Keys); //按键值移除元素
ht.Clear(); //移除所有元素
ht.ContainsKeys(Keys); //判断是否包含某个键值Keys
ht.ContainsVlaue(Value); //判断是否包含某个值Value

C#基础篇03的更多相关文章

  1. iOS系列 基础篇 03 探究应用生命周期

    iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...

  2. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  3. WebBug靶场基础篇 — 03

    基础篇 6 - 16 关... 在记录之前,先说一件事 = =! 小学生真多 = =!好心提供一个靶场,玩玩就算了,他挂黑页 ?现在好了,以后这个靶场不对外啊!你高兴了?爽了吧? 都是新手过来的,好心 ...

  4. Java基础篇(03):流程控制语句,和算法应用

    本文源码:GitHub·点这里 || GitEE·点这里 一.分支语句 流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块. 1.IF条件 IF条件语句会根 ...

  5. MySQL基础篇(03):系统和自定义函数总结,触发器使用详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.系统封装函数 MySQL 有很多内置的函数,可以快速解决开发中的一些业务需求,大概包括流程控制函数,数值型函数.字符串型函数.日期时间函数 ...

  6. python 基础篇03

    本节主要内容:1. python基本数据类型回顾2. int----数字类型3. bool---布尔类型4. str--- 字符串类型一.python基本数据类型1. int ==> 整数. 主 ...

  7. Java多线程系列 基础篇03 线程的优先级和守护线程

    1. 线程优先级 现代操作系统中基本上使用时间分片的方式调度线程,通过设置线程优先级,使优先级高的线程获得时间片的次数多于优先级低的线程. 在java 线程中,通过一个整形变量prority来控制优先 ...

  8. scala基础篇-03 if与for

    一.Scala中的if是表达式** 1.定义方式 2.例子 二.for 的用法 1.定义方式: for{ x <- xs y=x+ ) }yield y 2.例子:

  9. mysql学习之基础篇03

    我们今天来进行建表的基本操作: 首先要建表就要了解列类型,因为建表就是声明列的过程,列声明完成了,表也就建好了. mysql中列分为三大类: 一.数值型 数值型又分为整型和浮点型两种. 先来看整型: ...

随机推荐

  1. 基于Ubuntu14.10的Hadoop+HBase环境搭建

    本篇博文中谈及的Hadoop和HBase都是单机版,简单了解. 首先在Ubuntu上搭建Hadoop开发环境,主要参考另外一篇博客,仔细照做并解决出现的问题即可. 地址:http://www.powe ...

  2. Linux 命令、Shell 杂货铺

    我看过一篇博客,是有关随手记录一些常用的命令的.感觉对自己比较有价值,不过其他人读起来就比较费劲了,毕竟没有什么主线.各取所需吧各位~ 1.CentOS 查看和修改系统时间和时区 date #查看系统 ...

  3. HDU-4675 GCD of Sequence 数学

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4675 题意:给一个大小为N的数列a[i],然后一个数M以及一个数K,要你求得一个数列b[i],其中b[ ...

  4. SRM 596 DIV 2

    前段时间终于配置好了TopCoder的环境,所以就拿这场的DIV2练习了一下 1. 250pt FoxAndSightseeing 题意 给你n个城市的位置,他们在同一直线上,要求你跳过其中某一个城市 ...

  5. PopupWindow 问题集锦

    1.响应返回键/响应键盘事件(onKeyListener) 最近在做PopupWindow, 发现使用PopupWindow一出现,不会响应popup外面的事件,经过资料查找,发现有两种方法可以响应外 ...

  6. [OC Foundation框架 - 6] NSMutableString

    NSString是不可变的 NSMutableString是可变字符串   1.初始化 2.串联字符串 3.替换字符串 4.插入字符串 5.删除字符串   #pragma mark buffer st ...

  7. Objective-C Runtime 运行时之二:成员变量与属性

    类型编码(Type Encoding) 作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,并将其与方法的selector关联在一起.这种编码方案在其它情况下也是非常有用的 ...

  8. Keil MDK 无法设置断点【worldsing】

    要解决一个问题就怕不知道怎么搜索,或是别人没有遇到过: 同样碰到Keil MDK Debug调试无法设置断点问题,首先来问百度,GOOGLE,一下是我搜索到的结果:   1.keil 不能设置断点,每 ...

  9. 射频识别技术漫谈(5)——防冲突【worldsing 笔记】

    正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能 ...

  10. jquery中 cache: true和false的区别

    true:会读缓存,可能真的到服务器上. 假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取. false:会在url后面加一个时间缀,让它跑到服务器 ...