Objective-C类定义了一个将数据与相关行为相结合的对象。 有时,仅表示单个任务或行为单元而不是方法集合是有意义的。 块是C,Objective-C和C++等编程语言中的高级功能,它允许创建不同的代码段,这些代码段可以传递给方法或函数,就像它们是值一样。 块是Objective-C对象,因此它们可以添加到或等集合中。 它们还能够从封闭范围中捕获值,使其类似于其他编程语言中的闭包或。 简单块声
主要内容:泛型的特性,泛型方法,泛型委托在 C# 中,泛型(Generic)是一种规范,它允许我们使用占位符来定义类和方法,编译器会在编译时将这些占位符替换为指定的类型,利用泛型的这一特性我们可以定义通用类(泛型类)或方法(泛型方法)。 定义通用类需要使用尖括号 ,这里的尖括号用于将类或方法声明为泛型。下面通过一个简单的示例来帮助您理解这个概念: 允许结果如下: 小牛知识库 1234567 C 泛型的特性 可以将泛型看作是一种增强程序功
主要内容:Queue 类中的属性,Queue 类中的方法在 C# 中,队列(Queue 类)与 堆栈类似,它代表了一个先进先出的对象集合,当您需要对项目进行先进先出访问时,则可以使用队列。向队列中添加元素称为入队(enqueue),从堆栈中移除元素称为出队(deque)。 Queue 类中的属性 下表列出了 Queue 类的一些常用的属性: 属性 描述 Count 获取队列中包含的元素个数 IsSynchronized 判断是否同步对队列的访问(线程安
主要内容:Stack 类中的属性,Stack 类中的方法在 C# 中,堆栈(Stack)类表示一个后进先出的对象集合,当您需要对项目进行后进先出的访问时,则可以使用堆栈。向堆栈中添加元素称为推入元素,从堆栈中移除元素称为弹出元素。 Stack 类中的属性 下表列出了 Stack 类中一些常用的属性: 属性 描述 Count 获取堆栈中包含的元素个数 IsSynchronized 判断是否同步对堆栈的访问(线程安全) SyncRoot 获取可用于同步对堆
主要内容:C# 中的集合类型C# 中的集合类(Collection)是专门用于数据存储和检索的类,类中提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类都实现了相同的接口。 集合类的用途多种多样,例如可以动态的为元素分配内存、根据索引访问列表项等等,这些类创建 Object 类的对象集合,Object 类是 C# 中所有数据类型的基类。 C# 中的集合类型 在
在 C# 中,事件(Event)可以看作是用户的一系列操作,例如点击键盘的某个按键、单击/移动鼠标等,当事件发生时我们可以针对事件做出一系列的响应,例如退出程序、记录日志等等。C# 中线程之间的通信就是使用事件机制实现的。 事件需要在类中声明和触发,并通过委托与事件处理程序关联。事件可以分为发布器和订阅器两个部分,其中发布器是一个包含事件和委托的对象,事件和委托之间的联系也定义在这个类中,发布器类
主要内容:声明委托,实例化委托,多播委托(合并委托)C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。委托特别适用于实现事件和回调方法,所有的委托都派生自 System.Delegate 类。在实例化委托时,可以将委托的实例与具有相同返回值类型的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法, 委托具有以下特点: 委托类似
主要内容:访问器,抽象属性属性(Property)是 类(class)、 结构体(structure)和 接口(interface)的成员,类或结构体中的成员变量称为字段,属性是字段的扩展,使用访问器(accessors)可以读写私有字段的值。 属性没有确切的内存位置,但具有可读写或计算的访问器。例如有一个名为 Student 的类,其中包含 age、name 和 code 三个私有字段,我们不能在类的范围以外直接访问这些
主要内容:反射的用途,查看元数据反射(Reflection)是指程序可以访问、检测和修改它本身状态或行为的一种能力,反射中提供了用来描述程序集、模块和类型的对象,可以使用反射动态地创建类型的实例,并将类型绑定到现有对象,或者从现有对象中获取类型,然后调用其方法或访问其字段和属性。 如果代码中使用了特性,也可以利用反射来访问它们。 反射的用途 C# 中反射具有以下用途: 在运行时查看视图属性信息; 检查装配中的各种类型并实例化这些
主要内容:1、定义特性,2、预定义特性,3、自定义特性特性(Attribute)是一种用于在程序运行时传递各种元素(例如类、方法、结构、枚举等)行为信息的声明性代码。使用特性可以将元数据(例如编译器指令、注释、描述、方法和类等信息)添加到程序中。.Net Framework 提供了两种类型的特性,分别是预定义特性和自定义特性。 在 C# 中,特性具有以下属性: 使用特性可以向程序中添加元数据,元数据是指程序中各种元素的相关信息,所有 .NET 程序中
主要内容:声明接口,接口继承接口可以看作是一个约定,其中定义了类或结构体继承接口后需要实现功能,接口的特点如下所示: 接口是一个引用类型,通过接口可以实现多重继承; 接口中只能声明"抽象"成员,所以不能直接对接口进行实例化; 接口中可以包含方法、属性、事件、索引器等成员; 接口名称一般习惯使用字母“I”作为开头(不是必须的,不这样声明也可以); 接口中成员的访问权限默认为 public,所以我们在定义接口时不用再为接口成员指
主要内容:1、编译时多态,2、运行时多态多态与 封装和 继承被视为面向对象编程的三大特性。 多态(Polymorphism)是一个希腊词,指“多种形态”,在 C# 中具有两种类型的多态: 编译时多态:通过 C# 中的方法重载和运算符重载来实现编译时多态,也称为静态绑定或早期绑定; 运行时多态:通过方法重载实现的运行时多态,也称为动态绑定或后期绑定。 1、编译时多态 在编译期间将函数与对象链接的机制称为早期绑定,也称为静态绑定。C# 提供
主要内容:1、基类和派生类,2、多重继承继承与 封装和 多态被统称为面向对象编程的三大特性,本节我们主要来介绍一下继承这一特性。 在创建一个新类时,我们可以使用这个新定义的类继承一个已有的类,通过继承可以在创建新类时重用、扩展和修改被继承类中定义的成员。被继承的类称为“基类(父类)”,继承基类的类称为“派生类(子类)”。 需要注意的是,C# 中只支持单继承,也就是说一个派生类只能继承一个基类,但是继承是可以传递的,例如 ClassC 继
主要内容:Array 类中的属性,Array 类中的方法Array 类是 C# 中所有数组的基类,其中提供了一系列用来处理数组的操作,例如对数组元素进行排序、搜索数组中指定的元素等。 Array 类的签名如下所示: [SerializableAttribute] [ComVisibleAttribute(true)] public abstract class Array : ICloneable, IList, ICollection, IE
主要内容:1、声明数组,2、初始化数组,4、访问数组中的元素,5、使用 foreach 遍历数组和其他编程语言一样 C# 中也支持数组,数组是一个用来存储相同类型数据的、固定大小的、具有连续内存位置的顺序集合。数组中的每个元素都对应一个索引值,索引从 0 开始依次递增,我们可以通过索引来访问数组中的指定元素。 假如我们要存储 100 名学生的分数,若使用普通变量的话可能需要定义 100 整型变量,例如 number0、number1、...、number99。而如果使用数组就简单的多了,只需