![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#语法笔记
海木石
走一步,再走一步;累了就休息一下,但不能停。
展开
-
C#语言的特点
1.C#如何在转化成CPU可执行的机器码:用C#语言编写的源程序--------(通过C#语言编译器)------>中间语言(MicroSoft Intermediate Language,简称MSIL)代码--------------(通过语言运行环境CLR中的即时编译器JIT)--------->CPU可执行的机器码。 2..NET系统包括C#、C++、VB、J#语...原创 2018-10-12 14:49:07 · 5873 阅读 · 0 评论 -
C#接口
1.介绍:与类一样,接口中可以定义方法、属性、索引指示器和事件。但与类不同的是,接口中仅仅是它们的申明,并不提供实现。因此,接口是函数成员申明的集合。如果类或结构从一个接口派生,则这个类或结构负责实现该接口中所申明的所有成员。一个接口可以从多个接口继承,而一个类或结构可以实现多个接口。2.接口申明的格式:属性 接口修饰符 interface 接口名: 基接口{ .......原创 2018-10-13 19:12:59 · 132 阅读 · 0 评论 -
C#中的封闭类和封闭方法(sealed)
1.封闭类:sealed class如果不希望自己编写的类被继承,或者有的类已经没有再被继承的必要了,就可以定义为封闭类。封闭类的声明使用sealed修饰符,这样就可以防止该类被其他类继承。由此可知,封闭类不能同时又是抽象类。2.封闭方法:C#还提出了封闭方法(sealed method)的概念。方法使用sealed修饰符,在派生类中不能覆盖基类中的封闭方法。...原创 2018-10-13 18:46:16 · 1414 阅读 · 0 评论 -
C#抽象类和抽象方法
定义格式:abstract class 类名{ .....}抽象类的使用规定:1.抽象类只能作为其他类的基类,它不能直接被实例化。2.抽象类允许包含抽象成员,但不是必须的。若有抽象成员也要用abstract修饰符修饰。3.抽象类不能同时又是密封的。4.抽象类的基类也可以是抽象类。5.如果一个非抽象类的基类是抽象类,那么必须要通过覆盖来实现所有继承而来的抽象方...原创 2018-10-13 17:59:18 · 3362 阅读 · 0 评论 -
C#类的多态性
1.编译时的多态性:通过方法重载实现一个类的对象调用若干同名方法,系统在编译时,根据调用方法的实参类型及实参的个数决定调用那个同名方法,实现何种操作。2.运行时的多态性:通过虚方法实现(在方法声明前加上virtual修饰符为虚方法)在系统运行时,不同对象调用一个名字相同,参数的类型及个数完全相同的方法,会完成不同的操作。using System;class A{ pu...原创 2018-10-13 17:39:12 · 686 阅读 · 0 评论 -
C#操作符重载
操作符重载,实际是定义了一个操作符函数,操作符函数声明的格式如下:static public 函数返回类型 operator 重新定义的操作符(新参表)1.C#中可重载的操作符:+、-、!、~、++、--、true、false、*、/ 、%、&、|、^、<<、>>、==、!=、>、<、>=、<=等;2.不允许重载的操作符:...原创 2018-10-13 16:55:57 · 540 阅读 · 0 评论 -
C#静态方法和实例方法
1.静态方法: 用修饰符static声明的方法;注意:(1)不管用类创没创建对象,类的静态方法都可以使用; (2)静态方法只能使用该静态方法所在类的静态数据成员和静态方法。使用格式:类名.静态方法名;2.实例方法:没有修饰符static声明的方法。注意:实例方法可以使用该方法所在类的所有静态成员和实例成员。使用格式:对象名.实例方法名 ...原创 2018-10-13 16:40:44 · 3914 阅读 · 1 评论 -
C#语言的4种参数
1.值参数:当值参数向方法传递参数时,程序会给实参的值做一份拷贝,并且将此拷贝传递给该方法,这样被调用的方法不会修改实参的值,所以使用值参数时,可以保证实参的值是安全的。但是如果参数类型是引用类型,如类的引用变量,则拷贝中存储的也是对象的引用,所以拷贝和实参引用同一个对象。通过这个拷贝,可以修改实参所引用的对象中的数据成员。2.引用参数:如果需要修改或得到方法外部的变量值,就需要用到引...原创 2018-10-13 16:31:00 · 710 阅读 · 0 评论 -
C#类的字段和属性
1.概念:字段:一般把类或结构中定义的变量和常量叫字段;属性:属性不是字段,本质上是定义修改字段的方法。2.字段的划分:(1)静态字段:用修饰符static声明的字段。不管包含该静态字段的类生成多少个对象或根本无对象,该字段都只有一个实例,静态字段不能被撤销。引用方法:类名.静态字段名(2)实例字段:类中定义的字段不使用修饰符static。没创建该类的一个对象,在...原创 2018-10-13 11:53:03 · 2546 阅读 · 0 评论 -
C#类的继承
派生类的申明格式:属性 类修饰符 class 派生类名:基类名{ 类体}例如:class employee:person //person是基类{ private string department; private decimal salary; public employee(string name, int age, string dep...原创 2018-10-13 10:43:44 · 2717 阅读 · 4 评论 -
C#语言的运算符
1.测试运算符:is is操作符作用于动态地检查表达式是否为指定类型。使用格式为:e is T,其中e是一个表达式,T是一个类型,返回值是一个布尔值。if(1 is int){ //true ......}while(1 is float){ //false .....}while(1.0f is float){ //true .....}...原创 2018-10-12 23:07:57 · 230 阅读 · 0 评论 -
c#语言类型系统提出的核心概念:加框和消框
1.加框:值类型转化为object(对象)类型;2.消框:object(对象)类型转化为值类型;注:有了加框和消框的概念,任何类型的变量来说最终都可以看作是object类型。(1)加框操作把一个值类型变量加框也就是创建一个object对象,并将这个值类型变量的值复制给这个object对象,例:隐式加框:int i=2;object obj=i; //隐式加框操作,ob...原创 2018-10-12 22:37:37 · 213 阅读 · 0 评论 -
C#中的字符串类(string类)
1.字符串搜索:string s="ABC科学";int i=s.IndexOf("科");注意:1)索引从0开始,如果没有找到则返回值为-1; 2)C#中,ASCII和汉字都是用2字节表示;2.字符串比较:string s1="abc";string s2="abc";int n=string.Compare(s1,s2);注意:1)如果n=...原创 2018-10-12 19:41:42 · 435 阅读 · 0 评论 -
C#的三种数据类型
分别为:值类型、引用类型和指针类型。注意:指针类型仅用于非安全的代码中,还有C#语言不支持指针,故要我说只用记前面两种,指针类型有毒啊。重点:在C#语言中,值类型变量存储的是数据类型所代表的的实际数据,值类型变量的值(或实例)存储在栈中,你如果执行了一句赋值语句那么传递的是变量的值。 引用类型的实例(注意:类就是引用类型),也就是对象,存储在可管理堆(Managed ...原创 2018-10-12 15:30:10 · 552 阅读 · 0 评论 -
C#语言与C++语言的差异积累
1.编写过C#控制台程序的都知道要在主类代码的最后一句加上Conole.ReadKey(),这句话的作用就是:由于Readkey()为等待键盘输入函数,检测到有键盘输入即刻执行该函数,现象为命令窗口消失;如果没有Console.Readkey(),命令窗口会一闪而过,就相当于C++中输入任意键后退出了程序,关闭黑窗口。2.int a = 1;int b = 2;Console....原创 2018-10-12 15:04:47 · 149 阅读 · 0 评论 -
C#代表(delegate)
介绍:C#的一个引用类型,delegate也翻译成委托。它实际相当于C语言中的函数指针,于指针不同的是代表是类型安全的。声明格式如下:属性集 修饰符 delegate 函数返回类型 定义的代表标识符(函数形参列表);其中修饰符包括new、public、protected、internal和private。如:public delegate int MyDelegate(); ...原创 2018-10-13 19:33:13 · 1464 阅读 · 0 评论