学习C#的简要笔记

C#

  • 虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能。
  • C# 成为一种广泛应用的专业语言的原因:
    • 现代的、通用的编程语言。
    • 面向对象。
    • 面向组件。
    • 容易学习。
    • 结构化语言。
    • 它产生高效率的程序。
    • 它可以在多种计算机平台上编译。
    • .Net 框架的一部分。

C#类

  • using 关键字用于在程序中包含 System 命名空间

  • 一个 namespace 里包含了一系列的类。Project1 命名空间包含了类Bunny

  • 类Bunny 包含了程序使用的数据和方法声明

  • 主函数入口声明, 定义了Main 方法,是所有 C# 程序的 入口点

  • 执行类时显示消息:Console.WriteLine(“Hello World!!”);

  • 等待用户按键动作,防止程序快速结束:Console.ReadKey();

  • 成员变量和成员函数

  • 创建类实例和调用类成员函数

  • 构造函数在创建类的新对象时执行。构造函数的名称与类的名称完全相同,它没有任何返回类型。

    • 实例构造函数没创建一个类就调用一次,而静态构造函数(static 类名(){…})先于实例构造函数被调用,并且只被调用一次
    • 有参无参构造函数的初始化
    using System;
    namespace Project1
    { 
    	    class Bunny // 定义类Bunny
    	    {
    	        public double width; // 成员变量
    	        public double height;
    	        public Bunny() { } // 无参构造函数
    	        public Bunny(double w) { width = w; }
    	    }
    	    class ExecuteBunny
    	    { 
    	        static void Main(string[] args)
    	        {
    	            Bunny b0 = new Bunny 
    	            {
    	                width = 2.0,
    	                height = 3.0
    	            };
    	            Bunny b1 = new Bunny(2.0)
    	            {
    	                height = 3.0
    	            };     
    	            Console.ReadKey();
    	        }
    	    }
        }
    
  • set、get

    // 在类Student定义属性Name
    private string _name;
    public string Name
      {
          get { return _name; } // 读
          set { _name = value; } // 写
      }
      // 在主函数使用Name读写数据
      Student st = new Student();
      st.Name = "Chen";
      Console.WriteLine(st.Name);
    
      // 这种情况下只能在类Student中使用Name写入数据
      private set { _name = value; }
    
  • 析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源,不能继承或重载。

  • 静态成员:用 static 关键字把类成员定义为静态的。当声明类成员为静态时,那么无论有多少个类的对象被创建,都只会有一个该静态成员的实例。

    • 静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。当使用静态字段或静态函数等,都会调用静态函数。
      // 在类Student定义静态变量sta
      public static int sta = 2; 
      // 在主函数通过类名来使用静态变量sta,而不用创建对象
      Console.WriteLine("sta:{0}", Student.sta);
      
    • 静态变量可在成员函数、类的定义外部、类的定义内部初始化。由于只会有一个该静态成员的实例,当一个类对象改变该静态变量,另一个类对象中的该变量也会受到影响
    • 静态函数只能访问静态变量,它在对象被创建之前就已经存在。
      using System;
      namespace Project1
      { 
          class Class1
          {
              static void Main(string[] args)
              {
                  //执行类时显示消息
                  Console.WriteLine("Hello World!!");
                  //等待用户按键动作,防止程序快速结束
                  Console.ReadKey();
              }
          }
      }
      
  • as操作符
    as关键字可以将对象转换为指定类型,如果转换成功会返回转换后的对象,如果转换不成功则返回null。

    Object obj = new NewType();
    NewTYpe newObj = obj as NewType;
    

C#继承

1.C#基类和派生类
一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据和函数。
C# 中创建派生类的语法如下:

class <基类>
{
   
 ...
}
class <派生类> : <基类>
{
   
 ...
}

2.基类的初始化
派生类继承了基类的成员变量和成员方法,可以在成员初始化列表中进行父类的初始化。

class Rectangle
{
   
    protected double length;
    protected double width;
    public Rectangle(double l,double w)
    {
   
        length = l;
        width = w;
    }
}
class Tabletop : Rectangle
{
   
    // 初始化基类
    public Tabletop(double l,double w) : base(l, w) {
    }
}

C#多态性

多态是同一个行为具有多个不同表现形式或形态的能力,往往表现为"一个接口,多个功能"。
多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。
在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。
C# 提供了两种技术来实现静态多态性。分别为:函数重载、运算符重载。
函数重载
可以在同一个范围内对相同的函数名有多个定义。函数的定义必须彼此不同,可以是参数列表中的参数类型不同,也可以是参数个数不同。不能重载只有返回类型不同的函数声明。

public class TestData  
{
     
    public int Add<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值