015.C#基础总结

一、语言基础
1、VS .net C#
Console类:
WriteLine() Write()
ReadLine()
2、变量、数据类型、运算符
数据类型 变量名; 变量名 = 值;

int float double char bool string
byte sbyte

++ --
?:

const:常量

3、流程控制语句
选择语句
if..else

switch...case

循环语句
初始化 循环条件 循环操作 更新

for
while
do..while
do
{
}while(条件);

跳转语句
break
continue
goto

循环嵌套

4、方法
访问修饰符 [可选修饰符] 返回类型 方法名(参数列表)
{
方法体
}
public
protected
internal
private

static
abstract
virtual
override
sealed

void
类型

参数列表:数据类型 参数名1,数据类型 参数2,....

直接调用:方法名(参数);
类名调用:类名.方法(参数);
对象调用:对象.方法(参数);

ref:引用参数
out:输出参数

bool int.TryParse(string,out int)

方法的重载

5、数组
一位数组
int[] arr;
arr=new int[5];
arr[0]=1;

int[] arr=new int[5];

int[] arr=new int[]{1,2,3,4,5};
int[] arr;
arr=new int[]{1,2,3,4,5};

int[] arr={1,2,3,4,5};
int[] arr;
arr={1,2,3,4,5};//错误

常用算法:
累加求和
求平均
求最值

冒泡排序

数组的常用属性和方法
Length
Rank

Sort()
IndexOf()

二维数组:
int[,] arr=new int[3,4]{{1,2,3,4},{2,3,4,5},{3,4,5,6}};
交错数组:
int[][] arr=new int[3][];
arr[0]=new int[5];

foreach(元素类型 变量名 in 数组或集合)
{
//不能改变元素的值
}

参数数组

6、string StringBuilder
string的常用方法

Split()
Substring()
IndexOf()
LastIndexOf()
Insert()
Replace()

Join()
Format()

string的不可变性

StringBuilder
ApplendLine()
AppendFormat()

枚举
public enum 枚举
{

}
结构
public struct 结构
{

}

二、OOP
1、类和对象
类是对象的数据类型
类是抽象的 对象是具体的

构造函数:

this:当前实例
static
partial:分部类

创建对象
类名 引用 = new 构造函数();

2、类继承
父类 子类
基类 派生类
public class 子类:父类
{}

特性:单一继承 传递性

base

子类的构造函数默认调用父类的无参构造函数,可以使用base 显示调用父类的构造函数
public 子类构造函数(参数列表):base(实参)
{

}

抽象方法、抽象类
abstract
抽象方法:没有实现 只能在抽象类中定义 必须在非抽象子类中实现
抽象类:不能实例化 通常被继承 可以包含实现方法、虚方法、抽象方法

方法的重写:override
方法的签名和父类中相同

虚方法:有实现 除静态类、密封类之外的类中定义 可以在子类中重写

装箱拆箱:
装箱:值类型向object或其实现的接口的隐式转换
拆箱:object向值类型或接口向实现该接口的值类型的显示转换

隐藏方法:new

3、多态
父类类型指向子类对象时,重写方法 调用的是子类重写之后的 隐藏方法 调用的是父类的

密封方法 密封类
sealed
密封方法:不能被重写 sealed override
密封类:不允许被继承 不能包含抽象方法和虚方法

4、接口:行为的规范
interface
不能有实现
不能有字段
所有成员默认public abstract

实现类必须实现接口中的全部成员 添加public 不能使用override
如果不能实现,声明为抽象方法 类声明为抽象类

接口可以实现多继承

public class MyClass:父类,接口1,接口2,...
{

}

IComparable 方法: int CompareTo(object )

is:对象 is 类 子类兼容父类
as:强制类型转换 对象 as 类型 成功:对象 失败:null

命名空间:

5、属性 索引器
get、set访问器

public 类型 属性名
{
get
{
return this.字段;
}
set
{
this.字段 = value;
}
}

自动属性:读写属性

public 类型 this[数据类型 索引]
{
get
{
return this.数组[索引];
}
set
{
this.数组[索引]=value;
}
}
索引可以是任意数据类型

6、委托、事件
委托是一种引用数据类型,在命名空间中定义

public delegate 返回类型 委托(参数列表);

委托 dele=new 委托(方法名);
dele(参数);
dele+=方法名;

事件:定义在类中
public event 委托 事件名;

//注册
事件名+=方法名;

三、Framework
1、集合
System.Collections
ArrayList:动态数组
Hashtable:键值对
Stack:栈 后进先出
Queue:队列 先进先出
SoredList:按键排序

2、泛型
泛型类
泛型方法
泛型结构:Nullable<T>

默认值
T t = default(T);
约束
struct
class
base class
interface
new()

where T : 约束

泛型集合
List<T>
Dictionary<K,V>

WinForm
控件
事件

文件和流
System.IO
File FileInfo
Directory DirectoryInfo
DriveInfo

Stream
FileStream
StreamWriter
StreamReader

序列化
对象持久化

调试

异常处理
运行时错误
Exception及其子类

try
{

}
catch()
{

}
finally
{

}

内存管理

多线程

程序集
.exe .dll
程序集的引用

反射
System;
System.Reflection;

System.Type
System.Reflection.Assembly;

配置文件:App.config

<AppSettings>
<Add key="" value=""/>
</AppSettings>

时间: 2024-10-21 10:37:28

015.C#基础总结的相关文章

java互联网架构

课程目录:(057)Web项目实现对fastdfs文件进行定时任务清理工作 (056)Web项目与fastdfs集群进行整合,实现文件的上传下载等功能 (055)FastDFS集群环境搭建+Nginx缓存.负载均衡等整合 (054)FastDFS简介.环境搭建与使用 (053)Nginx入门简介.虚拟主机配置.日志分析 (053)Nginx后续 (052)Solrjavabean与solr注解使用.SSI框架整合Solr使用讲解.管理员命令使用讲解 (051)Solr环境搭建.IK中文分词器安装

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

大龄屌丝自学笔记--Java零基础到菜鸟--015

成员变量与局部变量比较,基本类型与引用类型做方法参数,匿名对象 1.成员变量与局部变量比较 在类中的位置不同:成员变量,在方法外. 局部变量,在方法内. 在内存中的位置不同:成员变量,栈内存. 局部变量,堆内存. 生命周期不同:成员变量,随着对象的存在而存在. 局部变量,随着方法的存在而存在. 初始化值不同:成员变量,有默认的初始值. 局部变量,没有默认的初始值. 注意事项:成员变量和局部变量同名时,执行就近原则. 1 class Fin{ 2 int n=1; 3 public static

严格模式-基础知识总结------彭记(015)

严格模式 <script> /*严格模式*/ "use strict"; /*如果同时定义多个同名的变量,后面的将前面的覆盖*/ /*var age = 20; var age = 30; console.log(age); /!*1.Duplicate parameter name not allowed in this context:函数中不能定义多个同名的形参*!/ function test(age,age){ console.log(age); } test(1

Java千百问_03基础语法(015)_System.exit(0)有什么用

点击进入_更多_Java千百问 1.System.exit(0)有什么用 查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法,源代码如下: public final class System { /** * Terminates the currently running Java Virtual Machine. The * argument serves as a status code; by convention, a nonzero

[JavaWeb基础] 015.Struts2 表单验证框架

在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传统的方法配置表单验证框架,还有更简单明了的就是利用注解,这里就不解释了. 1.首先我们要在要进行配置的Action的同级目录下,新建一个.xml文件,命名格式为:ActionClassName-validation.xml. 例如我的Action类名为:RegisterAction   那么xml名

算法Sedgewick第四版-第1章基础-015一stack只保留last指针

1 /************************************************************************* 2 * 3 * A generic queue, implemented using a *circular* linked list. 4 * (Exercise 1.3.29) 5 * 6 * % java Ex_1_3_29 < tobe.txt 7 * to be or not to be (2 left on queue) 8 * 9

JAVA语法基础(课堂ppt问题总结)

一:运行源代码EnumTest.java,分析运行结果. 代码如下: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换

Java基础-第4天

学习内容:1.主要进行了前3天java基础的练习,另外          java中数字的表现形式               1.十进制  int x = 100 ;               2.八进制  int y = 077 ;               3.十六进制int z = 0xef;          没有二进制的表现形式 2.位运算是直接对二进制进行运算      <<左移:被移除的高位丢弃,空缺位补0,相当于乘以2的倍数,移几位乘以2的几次方:      >&g