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. InnoDB关键特性之insert buffer

    insert buffer 是InnoDB存储引擎所独有的功能.通过insert buffer,InnoDB存储引擎可以大幅度提高数据库中非唯一辅助索引的插入性能. 数据库对于自增主键值的插入是顺序的 ...

  2. 如何获取android app的Activity

    方法一 如有你有待测项目的源码,那么直接查看源码就好.如果没有,那么请联系有源码的同学,这是推荐方法.   方法二 直接把apk后缀改为zip格式,打开压缩包后再打开AndroidManifest.x ...

  3. JVM的GC机制及JVM的调优方法

    内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要. 1.在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的 ...

  4. STM32 串口DMA方式接收(转)

    STM32 是一款基于ARM Cortex-M3内核的32位MCU,主频最高可达72M.最近因为要在车机上集成TPMS功能, 便开始着手STM32的开发工作,STM32F10x系列共有5个串口(USA ...

  5. 看雪 安卓 dex文件

    http://bbs.pediy.com/showthread.php?t=177114

  6. KMP算法详解 --从july那学的

    KMP代码: int KmpSearch(char* s, char* p) { ; ; int sLen = strlen(s); int pLen = strlen(p); while (i &l ...

  7. A Tour of Go Methods with pointer receivers

    Methods can be associated with a named type or a pointer to a named type. We just saw two Abs method ...

  8. NGUI学习笔记(四):动态加载UI和NGUI事件

    动态加载UI 我们进入一个场景后,如果将这个场景所有可能用到的UI都直接放在场景中做好,由于要在进入场景时就部署好所有的UI对象,那么当UI对象较多时会碰到的问题是:1.初始化场景会产生非常明显的卡顿 ...

  9. Egret的第一个2048游戏

    http://bbs.egret-labs.org/thread-242-1-1.html 对于AS3的开发者来说,可以直接过渡到的HTML5框架就是Egret了,基本上是了解了TypeSprite的 ...

  10. 刚制作完的SAP Sybase ASE15.7 [Sybase Central] 客户端

    支持32位和64位windows系统.无需其它任何包.原汁原味. 支持的数据库版本,应该从15.0开始都支持. 下载地址: http://download.csdn.net/detail/iihero ...