C#基础学习

本文详细介绍了C#语言的基础知识,包括变量的声明和初始化、常量、控制语句(如if、switch、循环)、跳转语句、一维数组、面向对象编程的基本概念和方法。还讲解了类、对象、构造函数以及属性、方法等核心概念。
摘要由CSDN通过智能技术生成

C#语言学习

1.变量的声明和初始化

访问修饰符  数据类型变量名称

public  int  a;

private  char b;

 

初始化(赋值)

int a;

a=50;

char b=’b’;

变量的命名规则

必须字母开头,只能有字母,下划线(-),数字组成

变量名不能包含空格,标点符号和运算符等其他符号

不能使用C#的保留字

不能与C#的关键字和库函数名相同


2.常量

访问修饰符 const  数据类型 常数名(标识符)=常量值;

常用修饰符:public  private  protected  internal  new

带有私有访问(private)的常量必须以骆驼命名法声明,并以下划线开头

带有公共修饰符(public),受保护的修饰符(protected)的常量必须以帕斯卡命名

public const double CarPrice =1520.25;  帕斯卡命名法 名称的第一个单词首字母大写,后面单词也是

public const string _carName=奇瑞;  骆驼命名法  混合下划线构成变量名称,且第一个单词的首字母小写


3.控制语句

 条件语句语句

if语句

if(表达式)

{

语句块;

}


if else语句

if(表达式)

{

语句块 1;

}

else

{

语句块2

}

 

if  else if else语句

if(表达式1

{

语句块1

}

else if(表达式2

{

语句块2

}

...

else  if(表达式n

{

语句块n

}

else

{

语句块n+1

}

嵌套if语句

if(表达式1

{

if(表达式2

{

语句块1

}

else

{

语句块2

}

else

{

If(表达式3

{

语句块3

}

else

{

语句块4

}

 

}

switch语句

switch(表达式)

{

case 常量1

语句块1

break

case 常量2

语句块2

break

......

case 常量 n:

语句块n

break

defalut

   语句块n+1

    break

}

 

4.循环语句(迭代语句)

for循环语句

for(表达式1;表达式2;表达式3)

{

语句块1

}

 

while 循环语句

while(表达式)

{

语句块1

}

 

do while 循环语句

do

{

语句块;

}while(表达式);

foreach语句

foreach循环语句是C#特有的,特殊的for循环,用于遍历迭代对象的所有用户定义的属性,数组的所有元素或者集合里的所有元素(可以输出每个元素)

foreach(类型 变量名 in 集合)

{

语句块1

}


5.跳转语句

break语句

continue语句

return 语句

goto语句

6.一维数组

声明数组

数组类型[] 数组变量

int[] num;

初始化数组

使用new来初始化并赋值

int[] num1= new int[3]{15,2,6};

 

直接赋值

int[] num2=new int{15,2,6};

 

省略new关键字,直接赋值

int[] num3={15,2,6};

二维数组

类型[,]数组名称;

int[,] list =new int[2,3];

list[0,0]=1;

list[0,1]=2;

list[0,2]=3;

list[1,0]=4;

list[1,1]=5;

list[1,2]=6;

初始化

int[,]list={

{1,2,3],

{4,5,6},

};

锯齿数组(C#特殊的数组,也称交错数组,每种数组长度都不相同)

数组类型[][]数组名称 =new 数组类型[数组行数]

double[][] list=new double[3][];

list[0]=new double[3]{1,2,3};

list[2]=new double[7]{5,5.1,2,2.1,3,3.5,4} ;

list[1]=new double[2]{1,2.5};

数组操作

C#中,数组可以被认为一个对象,所有涉及对数组对象的操作都要用到Array类,Array类是所有数组的抽象基类。可以使用该类为每一个C#数组定义方法和属性,该类提供对数组操作的方法。

声明数组

使用Array类的CreatInstance()方法

Array floatArray=Array.CreateInstance(typeof(float),5);

二维数组

int[]a={2,4};

int[]b={1,2};

Array listarray=Array.CreateInstance(typeof(int),a,b);

第一个参数表示数组类型,第二个参数表示要创建数组维度的大小,第三个参数表示要创建数组索引下限的数组

 

获取数组的长度

Array类提供两个属性LengthLongLength都可以获取数组长度

int[] Array=new int[100];

int length=array.Length;

 

int[] longarray=new int[100000];

long longlenth =longarray.LongLenth;

为数组赋值

Array类的SetValue()方法来进行设置

int[]array=new int[100];

array[0]=5;

array.SetValue(20,1);

获取元素值

Array类的GetValue()方法获取

int[]array=new int[100];

int value1=array[0];

int value2=(int)array.GetValue(2);  // 获取元素下标为2的元素的值

 

获取元素的索引

Array类提供了两个方法用于获取元素的索引:IndexOf()方法和LastIndexOf()方法

IndexOf()方法用于获取匹配元素的第一个索引值

LastIndexOf()方法用于获取匹配元素的最后一个索引值

int[] array= new int[100];

int index = Array.IndexOf(array,52);

int lastindex=Array.LastIndexOf(array,23);

7.面向对象编程

面向对象的内容主要涉及对象、类及传递的消息

对象(objec

对象的状态  对象的行为  对象的标识

 

类是对一系列具有相同性质的对象的抽象,是对对象共同特征的描述。例如‘树’类

 

消息

对象之间需要交流,则需要传递消息

 

运行一个面向对象的程序时,需要以下三个步骤:

(1)根据需要创建对象

(2)将消息从一个对象传递到另一个对象

(3)不再需要该对象,删除该对象

 

 

类是对象的模板,它指定了数据以及操作数据的代码,对象是类的实例化。

定义类

[修饰符]class类名[:基类和实现的接口列表]{类成员}

修饰符可以是:abstractsealedpublicprotectedinteralprivate

类的字段

修饰符 字段类型字段名

class Program

{

public string name;   \\声明字段name

public int id;    \\ 声明字段id

public double score;  \\ 声明分数score

static void Main(string[]args)

{

}

 

}

类的属性

属性是提供对对象或类的特性进行访问的成员,字段的正常延伸

static修饰符的为静态属性

virtual修饰符的为虚拟属性

override修饰符是为覆盖属性

abstract修饰符的为抽象属性

对象

对象的生存周期

●构造阶段:对象最初进行实例化的时期,这个初始化的过程称为析构阶段,由构造函数完成。

析构阶段:在删除一个对象的时,常常需要进行一些清理工作,例如释放内存,由析构函数完成。

创建对象

Person person=new person;

创建一个对象后可以使用(.)操作来访问它的成员

string name =person.name

对象的清理

用户执行相同的整理工作,也就是通过写一个析构方法(Destructor)来完成

原始内存必须归还给堆(Heap),因为对象存在的内存是必须回收的。

方法

无参方法

修师符 返回值类型  方法名()

{

//方法体

}

有返回值,使用return语句

public int GetInt()

{

return23;

}

有返回值,使用void

punlic void Showname()

{

Console.WriteLine(duangchunyang);

}

对象和类

静态特征:字段属性

动态行为:方法

1)注释:组合键 Ctrl+K+C
2)取消注释:组合键 Ctrl+K+U
1)调试(启动):F5;
2)调试(重新启动):使用组合键“Ctrl+Shift+F5”;
3)调试(开始执行不调试):使用组合键“Ctrl+F5”;
4)调试(逐语句):F11;
5)调试(逐过程):F10;
6)设置断点:F9。

构造方法

构造方法的作用:为属性赋值

如果没有显示定义构造方法,则会有一个默认的无参数的构造方法

如果显示定义了的构造方法,则没有默认的构造方法

只能用new方法名()的形式调用构造方法

构造方法通常声明为public

构造函数是在实例化对象时自动调用的函数,它们必须与所属的类同名,且不能有返回值,每个类都有自己的构造函数,通常使用构造函数来初始化字段的值。

 

无参构造函数

class HS

{

public HS()

{

Console.WriteLine(我是声明的构造函数);

}

}

class Program

{

 static void Main(string[]args)

{

HS hs=new HS();

Console.ReadLine();

}

}

面向对象的关键技术

public是公共字段 可以在类外被修改 不安全

private是私有字段 不可以在类外访问 无法使用

封装

隐藏对象的信息留出访问的接口

使用属性进行封装

class Child

{                                           使用方法

private string _sex; 隐藏字段             隐藏对象信息private

public string Sex;公开字段               留出访问接口public声明属性形式

{

get{return _sex;}  读  访问器

set{_sex=value;}  写   访问器

}

}

访问字段字母小写

访问属性字母大写

方法的重载

同一个类中,多个方法名字相同但是参数不同

public void EatSugar(string sugar)

public void EatSugar(int count)

 结构关键字struct

1.结构是值类型(类是引用类型)

2.结构中可以定义字段、属性和方法

3.不能为结构中的字段赋初始值

4.结构的构造方法中必须为所有字段赋值

5.不能为结构显示定义无参数的构造方法

6.结构类型的对象可以不实例化

enum为定义一个枚举类型。枚举属于值类型,枚举中不能定义字段属性和方法。

结构为:

enum 类型名

{

   ,女//枚举类型(类型的范围,枚举值是从0开始的整数值。 )

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值