C#基础

本文介绍了C#的基础知识,包括命名空间、类、构造函数、析构函数、属性、方法、静态类以及继承、多态等概念。此外,还讲解了VS中的常用快捷键,如Ctrl+J用于智能提示,F5执行程序,以及如何进行代码注释。通过示例代码展示了如何在C#中创建和使用类,并解释了如何利用抽象类和接口实现多态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System; //命名空间

using System.Collections.Generic; // using 命名空间.类名

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApp1  //项目名称

{

    class Program    //

    {

        static void Main(string[] args) //程序入口:Main函数

        {

            Console.WriteLine("Hello World!");

            Console.ReadKey(); //按下任意键继续

        }

    }

}

 

VS快捷键

Ctrl+J--智能提示 Ctrl+K+D--快速对齐代码 Ctrl+K+C/U--注释/取消注释

Shift+Home、Shift+End(光标位置)--快速选中行

Alt+Shift+F10--导入命名空间 两次Tab键--自动补齐 F12--定位代码

启动项目>起始网页:F9--设置断点 F5--执行 F10--单步执行 F11--单语句执行

注释

/*

算法注释

*/

/// <summary>

/// 方法功能注释

/// </summary>

/// <param name=""></param>

private void fun(params)

{

//步骤注释

}

#region Name

//折叠代码

#endregion Name

 

[public] [static] class 类名 //静态类(,Console)只能定义静态成员,也不能实例化

                                 //静态类在整个项目里资源共享:登陆后的用户名密码保存在静态类

{

     //Field字段    --存储数据

     [private] 类型 _字段名 //默认private

//Property属性:值>属性set/get方法(不存值)>字段  --保护字段

     public [static] 类型 属性名{

         get { return _字段名; }//属性取值=>取字段值:判断字段

         set { _字段名 = value; }//属性赋值=>字段赋值:判断value

}

//Method方法

public static void M1(){

               //实例方法可以访问静态成员和实例成员

}

public static void M2(){

               //静态方法只能访问静态成员

}

//构造函数:初始化对象,创建对象时执行

public 构造函数名(){ //默认无参构造函数(构造函数名=类名)

}

public 构造函数名(参数1,参数2,参数3){//有参构造函数(默认构造函数则消失)

               this.属性 = 参数;

}

//this:当前对象-显示调用本类构造函数(:this)

public 构造函数名(参数1,参数2):this(参数1,参数2,0){//调用参数多的构造函数

               this.属性 = 参数;

}

//析构函数:程序结束执行,帮助立即释放资源,否则GC(Garbage Collection)释放

~析构函数名()

     {

          //函数体

 }

}

//new:申请空间>创建对象>调用构造方法

public class 父类 //所有类的基类Object

{

    public 父类(参数)//有参构造方法

    {

            this.属性参数

    }

    //public 父类(){} //无参构造方法

}

public class 子类 : 父类 //不继承父类构造函数,但创建子类对象会默认调用父类无参

构造函数,创建父类对象,让子类可以使用父类成员

{

//子类私有成员

public 子类构造方法(参数): base 父类构造方法(参数)//使用父类有参构造方法

     public new void 相同父类方法名(){} //new:隐藏从父类继承的成员

}

//多态:让一个对象表现多种类型

//方法:1、虚方法 2、抽象类 3、接口  抽象类和接口不能实例化

//1.虚方法virtual:如果子类没有重写父类虚方法,则调用父类方法

public virtual 父类方法() {

}

    public override 子类重写方法() {

}

//2.抽象类abstract:父类方法不知道如何实现,父类写成抽象类,方法写成抽象方法

public abstract class 抽象父类 {

public abstract void 抽象方法();//没有方法体

}

public override 子类重写抽象方法(){

}

父类 父类对象 = new 子类();//父类对象的方法被子类重写,所以调用的是子类方法

//3.接口:一个规范、能力

pubic interface 接口名 : 父接口1,父接口2 //只能继承接口

{

//接口中的成员不允许添加访问修饰符,默认是public

//方法、自动属性、索引器、事件(不具有方法体的函数)

/*

//普通属性:有方法体

     private string _name;

public string Name

{

get { return _name; }

set { _name = value; }

}*/

//自动属性:编译时默认生成一个私有字段

public int 属性

{

get;

set;

}

}

public class Person : 父类,接口名 //继承类必须写在接口之前

{

//重写接口的方法

}

 

 

//委托类型:将方法名作为一个参数

//声明委托指向一个函数:委托指向的函数必须跟委托具有相同的签名(参数和返回值)

public delegate void MyDlg(参数);

public static void Test(参数,MyDlg del)

{

del(参数);//调用

}

MyDel del = myInstaObj.MyM1; //赋值委托

MyDel del1 = delegate( int x) { return x; };//匿名方法

MyDel del2 = (int x) => {return x;};//Lambda表达式

MyDel del3 = x => {return x};//简写的Lambda表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值