结构:
(3条消息) C#中结构体与类的区别_Jakeat的博客-CSDN博客_c#结构体和类的区别
结构和类相似,总体上可以把它看成类,其为值类型,在栈上分配内存,用于一些较小的数据。
枚举:
(4条消息) C#中枚举类型的作用_syaguang2006的博客-CSDN博客_c#枚举类型有什么用
枚举就是定义一组一样类型的元素(默认整形),值默认比前面一个大一,int(某个元素)就可以得到数值。
委托:
C# 用委托有什么好处? 它起什么作用? - asdyzh - 博客园 (cnblogs.com)
(4条消息) c#委托(Delegates)--基本概念及使用_陈一木木的博客-CSDN博客_委托
可以认为委托是持有一个或多个方法的对象,用delegate声明一个 返回类型 类型名(形参),
后面添加到委托里的方法返回类型和形参必须一样。可以指定添加其它类的方法,也可以把方法当作参数在另一个方法中传递或调用(如第二篇文章)。
事件:
C#委托与事件应用场景 - 猪猪AI乐乐 - 博客园 (cnblogs.com)
C# 事件(Event) | 菜鸟教程 (runoob.com)
C#中的“事件”的概念到底有什么用?什么时候会用到?-CSDN社区(有内涵)
事件为当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。
就是某条程序执行,订阅这事件的程序也会随之执行。
接口:
C#中的接口如何使用以及具体用途-百度经验 (baidu.com)
接口内定义方法,不含任何内容。其它多个类可以对同一个方法进行程序编写,后可调用这个方法,如果类实现了接口,它必须实现接口的所有成员。
泛型:
(5条消息) C#泛型的理解/为什么要使用泛型/什么是泛型/怎么用泛型_悠然少年心的博客-CSDN博客_c# 为什么要用泛型
在类名后放置<T>。可以让不同类型共用一个代码,相当于用T去代表该变量属于什么类型,跟var有点像。
namespace 泛型
{
class Program
{
static void Main(string[] args)
{
Apple apple = new Apple { Color = "red" };
Books BB = new Books { Name = "wangjie" };
Box box1 = new Box { cargo = apple }; //方法二
Box box2 = new Box { Bcargo = BB }; //方法二
//Books BB = new Books { Name = "wnagjie" }; 方法一
//BooksBox BBx = new BooksBox { cargo = BB }; 方法一
Console.WriteLine(box1.cargo.Color);
//Console.WriteLine(BBx.cargo.Name); 方法一
}
}
class Apple
{
public string Color { get ; set; }
}
class Box
{
public Apple cargo { get; set; }
//方法二
public Books Bcargo { get; set; }
}
class Books
{
public string Name { get; set; }
}
//方法一
// class BooksBox
// {
// public Books cargo { get; set; }
// }
}
方法一会不断的声明不同类的盒子,会造成类膨胀。
方法二实例box时,只调用了类中的一个属性,会造成成员膨胀。
此时就需要泛型。
namespace 泛型
{
class Program
{
static void Main(string[] args)
{
Apple apple = new Apple { Color = "red" };
Books BB = new Books { Name = "wangjie" };
Box<Apple> box1 = new Box<Apple> { cargo = apple };
Box<Books> box2 = new Box<Books> { cargo = BB };
Console.WriteLine(box1.cargo.Color);
Console.WriteLine(box2.cargo.Name);
}
}
class Apple
{
public string Color { get ; set; }
}
class Box<T>
{
public T cargo { get; set; }
//方法二
}
class Books
{
public string Name { get; set; }
}