1.c#概述,c#语言及其特点;c#与.net框架关系
C#概述:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言
特点:1.简单 2.现代 3.面向对象 4.类型安全 5.相互兼容性 6.可伸缩性和可升级性
关系:.NET框架是由微软开发的,致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。
C#只是用于编写运行在该平台上的一种语言。
2.编写第一个c#程序(注释,命名空间,类,Main方法,标识符,关键字,输入,输出语句,)
[csharp] view plain copy
using System;
namespace ConsoleApp2
{
class Program
static void Main(string[] args)
//输出 Hello word
Console.WriteLine("Hello word");
}
3.变量与常量(值类型,引用类型,两者区别,枚举类型,类型转换,变量声明,变量作用域,变量赋值,常量)
值类型 引用类型
1、值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中
2、值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
枚举:
枚举使用enum关键字来声明,与类同级。
枚举是值类型,隐式继承自System.Enum,不能手动修改。System.Enum本身是引用类型,继承自System.ValueType。
枚举都是隐式密封的,不允许作为基类派生子类。
枚举类型的枚举成员均为静态,且默认为Int32类型。
每个枚举成员均具有相关联的常数值。
枚举成员不能相同,但枚举的值可以相同。
枚举最后一个成员的逗号和大括号后面的分号可以省略
类型转换:
1.(int)变量名[强制类型转换]
2.int.Parse(string 变量名)
3.int.TryParse(string s, out int result)
Convert.ToInt32
变量赋值:
值类型变量的赋值:值类型变量中保存的是实际数据,在赋值的时候只是把数据复制一份,然后赋给另一个变量。
引用类型变量的赋值: 引用类型变量中保存的是“指向实际数据的引用指针”。在进行赋值操作的时候,它和值类型一样,也是先有一个复制的操作,不过它复制的不是实际的数据,而是引用(真实数据的内存地址)。所以引用类型的变量在赋值的时候,赋给另一变量的实际上是内存地址。这样赋值完成后,2个引用变量中保存的是同一引用,他们的指向完全一样。
变量声明:
数据类型 变量名=值;
常量:
C#常量主要分为两种:编译时和运行时常量
1、编译时常量,在编译时便用该常量的值代替常量变量。
2、运行时常量,在运行时返回一个运行时常量的变量引用
4.表达式与运算符(表达式概念,运算符种类,运算符优先级)
表达式概念:变量常量运算符组成
1.带( )号,[ ]号, . 号的,new,typeof,sizeof,checked,x++,x--级别最高,先计算.
2.++x,--x,+,!
3.算术运算符,先,/,%,再+,-
4.关系运算符,先>,<,>=,<=,is ,as再==和!=
5.条件逻辑运算符&&和||
6.条件运算符b?x:y
7,赋值运算符=,=,/=,+=,-=
5.字符与字符串(Char类,Char类的使用,String的基本使用,StringBulider的使用)
字符串是由多个字符组成,字符串是引用类型 字符:Char类在C#中表示一个Unicode字符。
3)ToUpper(转换为大写)和ToLower(转换为小写)
string s="RaSer";
string s1=s.ToUpper();//s1="RASER";
string s2=s.ToLower();//s2="raser";
Trim() 出去两边的空格
string str=" dd ";
string s=str.Trim();//s="dd";
Substring 截取字符<str>以index开始截取,并截取lenth个字符(string <str>.Substring(index,lenth))
string str="还在下雨";
string s=str.Substring(2,2);//s="下雨";
Remove删除字符串(字符)
在字符串中移除从startIndex开始,长度为length的字符串,剩下的字符合为一个新的字符串
、Insert 插入
在字符串的index位置上插入字符,原来的字符依次后移,变成一个新的字符串
string str="夜深了";
string s=str.Insert(1,"已经");// s="夜已经深了"
Replace 字符串(字符也是可以的)替换,返回新的字符串
string str="好困呀";
string s=str.Replace("困","精神");//s="好精神呀";
、Equals 比较两个字符串是否相等
6.流程控制语句(选择包括switch,迭代语句即循环(搞明白为什么可以循环),跳转(break,continue,goto,return))
int a=6;
switch(a)
case:"4"
console.writeline("4");
break;
case:"5"
console.writeline("5");
default
console.writeline("666");
break从循环体跳出 continue结束本次循环 goto无条件转移语句
return 跳出循环的同时也做函数返回
7.数组和集合(一维数组和二维数组的声明以及使用,ArrayList类,HashTable,List,Directory字典等常用集合(泛型和非泛型))
string[] names = new string[5];//动态初始化
string[] names1 = new string[3] { "张三", "李四", "王二" };//定义并且赋予初值 动态初始化
int[] array = { 1, 2, 3, 4, 5 };//静态初始化变量,系统会自动分配内存空间 int[,] array = new int[2, 3];//声明一个两行3列的数组
声明并且进行初始化
int[,] array = new int[2, 3] { { 1, 2, 3 }, { 1, 3, 4 } };
ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。
Dictionary表示键和值的集合。
8.属性和方法(属性和方法的概念以及使用,注意,新特性中的自动属性,方法的重载)
1、类的属性:对象所拥有的特征,在类中表示时称为类的属性。
重载:
方法名相同。
方法的参数类型、个数、顺序至少有一项不相同。
方法的返回类型可以不相同,但只有返回类型不同是不可以的。
方法的修饰符可以不相同,但只有修饰符不同是不可以的
9.结构和类(结构的概念,类的概念,声明,构造函数,对象的实例化,类和对象的关系,实例的和静态的)
10.密封类和密封方法
密封类使用sealed关键字进行修饰,它不能用作其他类的基类,并且他没有派生类,密封类的作用是防止其他类继承该类,密封方法是使用sealed关键字进行修饰的方法,他并不能影响类的继承,但它可以防止重写基类中特定的虚方法。
public sealed class SealClass
{ }