C#语言基础知识个人小结笔记(一)

1、抽象类与接口

(1)相同点:    a. 抽象类和接口都不能被实例化;

                            b. 抽象类和接口都能被继承;

                            c. 抽象类和接口都包含方法的声明;

                            d. 抽象类和接口两者的派生类均必须实现声明中未实现的方法。

(2)不同点:    a. 定义的关键字;

//抽象类的定义
public abstract class MSTest
{
    public void DoTest()
    {
        Debug.Log("ms");
    }

    public abstract int Value { get; set; }
}
//接口的定义
public interface MSTest
{
    void DoTest();
    int value { get; set; }
}

                           b. 抽象类只能是单一继承,而接口是能多重实现;

                           c. 抽象基类能定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字                                        段(抽象类可以声明和实现,而接口只能进行声明)。

2、TextureBrush类

C#语言基础知识个人小结笔记(一)_第1张图片

3、结构体(Struct)

(1)结构体可以包含方法、字段、索引、属性、运算符方法和事件;

(2)结构体是能定义构造函数,但不能定义析构函数(结构体不能定义默认构造函数。默认构造函数是自动定义,并且不能               被改变);

(3)结构体不能继承其他结构体或类;

(4)结构体可以实现一个接口或多个接口。

using System;
using System.Text;
     
struct Book
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

public class testStructure
{
   public static void Main(string[] args)
   {
      //声明Book1,类型Book
      Books Book1;       

      //book 1 详述
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali";
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;


      //打印Book1
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);  

      Console.ReadKey();

   }
}

4、结构体与类的区别

(1)结构体不能声明默认的构造函数;

(2)结构体不支持继承;

(3)类是引用类型,结构体是值类型。

5、面向对象

(1)面向对象的三个基本元素:封装、继承、多态

(2)面向对象的五个基本原则:单一职责原则、开放封闭原则、Liskov替换原则、依赖倒置原则、接口隔离原则

6、ref和out参数
(1)out和ref参数都是引用传递的方式,传递使用后均会改变原本的值且需要显示的传递方法;

(2)ref参数是有进有出(将参数传递出去,函数里对变量的改变在函数结束时将值改变,所以在传递进去前就得初始化)

(3)out参数只出不进(将参数传递进去是值是无效,out会将参数清空,所以无法传递进去)。

你可能感兴趣的:(C#)