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. 【DOM】2.闭包

    1.什么是闭包? 函数嵌套函数 内部函数可以引用外部函数的参数和变量 参数和变量不会被JS中的垃圾回收机制 所收回 2.闭包有啥好处?应用在哪? ①希望一个变量长期驻扎在内存中 ②避免全局变量的污染 ...

  2. uvalive 3135 Argus priority_queue

    用优先队列维护每个时间点优先级最高的元素. #include<iostream> #include<cstdio> #include<cstdlib> #inclu ...

  3. 在ubuntu中启用ftp服务

    Vsftpd vsftpd,ftp服务端,本文转自http://wiki.ubuntu.org.cn/Vsftpd 目录 [隐藏] 1 stand alone和super daemon 2 安装 3 ...

  4. java@ LinkedList 学习

    package abc.com; import java.util.LinkedList; public class TestLinkedList { static void prt(Object o ...

  5. C++ STL@ list 应用 (leetcode: Rotate Array)

    STL中的list就是一双向链表,可高效地进行插入删除元素. List 是 C++标准程式库 中的一个 类 ,可以简单视之为双向 连结串行 ,以线性列的方式管理物件集合.list 的特色是在集合的任何 ...

  6. Python中raw字符串与多行字符串

    如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦.为了避免这种情况,我们可以在字符串前面加个前缀r ,表示这是一个 raw 字符串,里面的字符就不需要转义了.例如: r'\(~_~ ...

  7. C++面向对象三大特性

    面向对象三大特性 继承 public protected private public继承 public protected 不可见 private继承 private private 不可见 pro ...

  8. ObjC语法练习 冒泡排序、选择排序、矩阵相乘

    用OC实现的冒泡排序.选择排序.矩阵相乘,纯粹是用来练习语法. 冒泡排序,程序如下: void bubbleSort() { //初始化数组 NSMutableArray *array1 = [[NS ...

  9. .NET代码编写规范 整理

    .NET代码编写规范 整理 .NET代码编写规范 - [ASP.NET] 2009-02-26 | Tag: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lensp ...

  10. hadoop 2.0 详细配置教程

    http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html