C#基础语法

Posted 是小叶的呢.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#基础语法相关的知识,希望对你有一定的参考价值。

一、C#中的关键字

基类中public成员 可以在派生类中访问
基类中internal成员 可以在派生类中访问 只能在本项目被访问
基类中的protected 只可以派生类中访问 不可以在类外被访问
基类中private成员 只能在当前类中访问
base 代表父类的成员部分
vritual关键字
使用vritual关键字修饰的方法叫虚方法
作用:
1.虚方法可以是有实现。
2.让派生类去重写,实现自己的定义
3.不能修饰静态成员
override关键字
如何在派生类重写虚方法:
1.方法定义要与父类保持一致(访问修饰符,返回值,函数名,函数参数)
2.使用override修饰
Abstract关键字 抽象的
abstract修饰的类叫抽象类,不能被实例化。只能被继承
abstract修饰的方法叫抽象方法,抽象方法没有定义,需要被派生类重写。

构造函数的作用:完成类的初始化工作。

二、方法的重载

概念:在同一个作用域内,可以声明几个功能类似的同名函数。调用时根据不同的实参列表选择相应的函数。
重载的特点:函数名相同,参数列表不同。参数列表不同主要体现在参数个数或参数的数据类型不同。在调用重载的方法时系统是根据
所传 递参数的不同判断调用的是哪个方法。

三、值传递和引用传递

C#中参数传递的方式有两种:值传递和引用传递
值传递:值传递是指在调用方法时将实际参数复制一份传递到方法中,这样在方法中如果对参数进行修改,将不会影响到实际参数。
对于值类型的数据,如果没有特殊说明,那么在方法调用时按照值传递的方式进行参数的传
递。
引用传递:引用传递是指在调用方法时实际参数和形式参数都指向同一个内存,这样在方法中如果对参数进行修改,将会影响到实际参数。
前面我们讲到C#数据类型分为值类型和引用类型。
那么在方法调用时,值类型一般都是以值传递的方式,引用类型都是以引用传递的方式。

四、类型转换概念

C# 是一门强类型语言,对类型要求比较严格,但是在一定的条件下也是可以相互转换的,
如将 int 型数据转换成 double 型数据。
C# 允许使用两种转换方式:隐式类型转换和显式类型转换。
1、 隐式类型转换
隐式类型转换是 C# 默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数
类型转换为大的整数类型,从派生类转换为基类。
隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围
大的数据类型。
隐式数值转换包括以下几种:
从 sbyte 类型到 short,int,long,float,double,或 decimal 类型。
从 byte 类型到 short,ushort,int,uint,long,ulong,float,double,或 decimal 类
型。
从 short 类型到 int,long,float,double,或 decimal 类型。
从 ushort 类型到 int,uint,long,ulong,float,double,或 decimal 类型。
从 int 类型到 long,float,double,或 decimal 类型。
从 uint 类型到 long,ulong,float,double,或 decimal 类型。
从 long 类型到 float,double,或 decimal 类型。
从 ulong 类型到 float,double,或 decimal 类型。
从 char 类型到 ushort,int,uint,long,ulong,float,double,或 decimal 类型。
从 float 类型到 double 类型。
隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换。
2、显式类型转换
显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据
丢失。
强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼
容。
强制类型转换的语法如下:
数据类型变量名 = (数据类型) 变量名或值;
4.1、拆箱和装箱
装箱:将值类型转换为引用类型的操作。
拆箱:相应地将引用类型转换成值类型。

五、C#中的接口

在 C# 语言中,类之间的继承关系仅支持单重继承,而接口是为了实现多重继承关系设计
的。一个类能同时实现多个接口,还能在实现接口的同时再继承其他类,并且接口之间也可以继承。
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派
生类定义了语法合同 “怎么做” 部分。
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定
义是派生类的责任。接口提供了派生类应遵循的标准结构。
多重继承的概念:多重继承指的是一个类可以同时继承多个类。(多重继承在C++中支持,在C#和Java中不支持)。

  1. 接口名称
    通常是以 I 开头,再加上其他的单词构成。例如创建一个计算的接口,可以命名为ICompute。
  2. 接口成员
    接口中定义的成员与类中定义的成员类似。
    接口中定义的成员必须满足以下要求。
    接口中的成员不允许使用 public、private、protected、internal 访问修饰符。
    接口中的成员不允许使用 static、virtual、abstract、sealed 修饰符。
    在接口中不能定义字段。
    在接口中定义的方法不能包含方法体。
    1、接口的实现
    接口的实现是通过继承的方式进行实现。
    接口实现需要注意的地方:
    接口继承接口之后具有父接口的全部成员。
    类继承接口之后需要实现接口的全部成员方法。否则需要将该类定义为抽象类,未实现的接口方法定义为抽象方法。
    继承时基类和接口之间,接口和接口之间以逗号分隔。
    2、实现接口方式
    接口的实现分为两种:显式实现接口和隐式实现接口
    1)显式实现接口
    显式实现接口需要使用接口名作为方法名的前缀。
    注意事项:
    a.显式实现接口时不需要指定访问修饰符。
    b.显式实现的接口在调用时必须使用接口对象。
    2)隐式实现接口
    隐式实现接口不需要使用接口名作为方法名的前缀,但需要添加访问修饰符public。
    3)总结
    当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。
    当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。
    隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。
    多态能使用类之间的继承关系来实现,通过多个类继承同一个接口,并实现接口中的成员也
    能完成多态的表示。
    使用接口实现多态 需要满足以下两个条件。
    定义接口并使用类实现了接口中的成员。
    创建接口的实例指向不同的实现类对象。

以上是关于C#基础语法的主要内容,如果未能解决你的问题,请参考以下文章

Swift与C#的基础语法比较

mongodb c#语法基础

C#基础语法

C# 方法的调用和基础语法

Java(C#)基础差异-语法

C#入门基础语法总结(数组和集合)