自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 2.事件

事件使用委托时,一般会出现两种角色:广播者(Broadcaster)和订阅者(Subscriber)。广播者:包含委托字段的类型,它通过调用委托决定何时进行广播。订阅者:目标方法的接受者。订阅者通过在广播者的委托上调用 += 和 -= 来决定何时开始监听而何时结束监听。订阅者不知道也不会干涉其他订阅者。事件(Events)事件就是将广播者/订阅者这一模式正式化的语言功能。事件是一种使用有限的委托功能实现广播者/订阅者模型的结构,只暴露了所需的委托特性的部分子集。使用事件的主要目的

2020-10-15 09:29:32 170

原创 委托

委托委托(delegate)是一种知道如何调用方法的对象。委托类型(delegate type)定义了一种委托实例(delegate instance)可以定义的方法。具体来说,它定义了方法的返回类型(return type)和参数类型(parameter type)。以下语句定义了一个委托类型 Transformer:定义委托delegate int Transformer(int x);Transformer 兼容任何返回类型为 int 并有一个 int 类型的参数的方法,如:stat

2020-08-24 15:08:12 459

原创 泛型

泛型csharp 有两种不同的机制来编写跨类型复用的代码:继承和泛型。但继承的复用性来自基类,而泛型的复用性是通过带有“占位符”的“模板”类型实现的。和继承相比,泛型能够提供类型的安全性,并减少类型的转换和装箱。1 泛型类型 Generic Types泛型类型中声明的类型参数(占位符类型)需要有泛型类型的消费者(即提供类型参数的一方)填充。下面是一个存放类型 T 实例的泛型栈类型 Stack<T>。Stack<T>声明了单个类型参数 T:public class Stack&

2020-08-08 20:25:46 294

原创 嵌套类型

嵌套类型嵌套类型(Nested Type)是声明在另一个类型内部的类型。public class TopLevel{public class Nested { } // Nested classpublic enum Color { Red, Blue, Tan } // Nested enum}嵌套类型有以下特征:可以访问其外层类型中的私有成员,以及外层类所能够访问的所有内容。可以在声明上使用所有的访问权限修饰符,而不限于 public 和 internal。嵌套类型的默认访

2020-08-08 20:24:09 484

原创 枚举类型

枚举类型枚举类型是一种特殊的值类型,可以在枚举类型中定义一组命名的数值常量:public enum BorderSide { Left, Right, Top, Bottom }使用枚举类型的方法如下:BorderSide topSide = BorderSide.Top;bool isTop = (topSide == BorderSide.Top); // true???? 枚举类型的底层原理 ????每个枚举成员都对应一个底层整型数值(Enum.GetUnderlyingTy

2020-07-28 10:26:56 1191

原创 接口

接口接口和类相似,但接口只为成员提供定义而不提供实现。接口的不同之处在于:接口的成员都是隐式抽象的。相反,类可以包含抽象的成员和有具体实现的成员。一个类(或者结构体)可以实现多个接口。而一个类只能继承一个类,结构体则完全不支持继承(只能从 System.ValueType 派生)。接口声明和类声明很类似。但接口不提供成员的实现,这是因为它所有的成员都是隐式抽象的,这些成员将由实现接口的类或结构体实现。接口只能包含方法、属性、事件、索引器等,而这些正是类中可定义为抽象的成员类型。publ

2020-07-28 10:24:34 154

原创 访问权限修饰符

访问权限修饰符为了提高封装性,类型或类型成员可以在声明中添加访问权限修饰符(Access Modify)来限制其他类型和程序集对它的访问。可访问性含义public完全访问权限internal仅可以在当前程序集内访问,或供友元程序集访问。非嵌套类型的默认可访问性private仅可以在当前类中访问。类和结构体成员默认可访问性protected仅可在当前类和其子类中访问protected internalprotected 和 internal 可访问性的

2020-07-28 10:22:18 154

原创 结构体

结构体结构体(Struct)和类(Class)类似,不同之处在于:结构体是值类型,类是引用类型。结构体不支持继承(除了隐式继承了 object 类,更精确地说,继承自 System.ValueType)。类有的成员,结构体也可以有,除了以下内容:无参数构造函数。字段初始化器(字段初始化器而非对象初始化器,即在声明字段时直接对字段赋值)。终结器。virtual 或 protected 成员。结构体的构造语义结构体隐式包含一个无法重写的无参数构造函数,将字段按位归零。定义

2020-07-24 11:48:30 146

原创 object类型

object 类型object 类型(System.Object)是所有类型的终极父类。任何类型都可以向上转换为 object 类型。public class Stack{ int position; object[] data = new object[10]; public void Push(object obj) { data[position++] = obj; } public object Pop() {

2020-07-24 11:47:22 2834

原创 继承

继承一个类可以通过继续另一个类,从而对原有类进行扩展和自定义。子类 subclass(派生类 derived class)和父类(基类)superclass。一个类只能继续一个类,但可以被多个类继承。定义一个名为 Asset 的类:public class Asset{ public string name;}定义类 Stock 和 House 继承 Asset 类:public class Stock : Asset // Inherits from Asset{

2020-07-23 15:15:56 153

原创

类1 字段和方法1.1 字段 Field字段是 Class 或 Struct 的成员,它是一个变量。如public Class Book{ string name; public float price = 56.0 F;}readonly 修饰符readonly 修饰符防止字段在构造之后被改变。readonly 字段只能在声明的时候被赋值,或在构造函数里被赋值。字段初始化字段可以可选初始化。未初始化的字段有一个默认值。字段的初始化在构造函数之前运行

2020-07-23 15:12:36 211

原创 其他

1 decimal 类型从技术上说,decimal 类型也属于浮点型,128 位,但 C# 语言规范中并没有将其定义为浮点类型。decimal 比 double 类型范围(量级)小,但精度更高。decimal 类型是适合财务和货币计算的 128 位数据类型。decimal 不是 C# 基本数据类型,会导致性能和效率问题。在 decimal 类变赋值量时,必须在数字后面加上字母“m”或“M”。decimal 是浮点型,也会存在精度损失,例如d∗g/gd * g / gd∗g

2020-07-20 20:47:58 1174

原创 数组

数组相关1 概述表示了一组特定类型且数量固定的变量(元素)。数组的元素总是按照先后顺序存储在连续的内存块里,读取效率高。所有是数组都继承于 System.Array 类。数组元素访问从 0 开始。2 数组定义与初始化2.1 一维数组int[] arr1 = new int[3]; // 之后需要逐个赋值int[] arr2 = new int[3] {1, 2, 3};int[] arr2 = new int[] {1, 2, 3};int[] arr3 = {1, 2, 3};

2020-07-20 20:44:04 152 1

原创 数据类型转换

1 常用的数据转换方法数据转换是经常要用到的,C# 中数据转换的方法很多,拿将目标对象转换为整型(int)来讲,有四种方法:分别为 (int)、int.Parse()、int.TryParse() 和 Convert.ToInt32()。下面从被转换对象说起,在我们实际开发项目的过程中,我们碰到需要被转换的类型大概有 3 大类,分别是空值(null)、数字类型(包含float,double,int,long等)和字符串(string)这3类。1.1 测试NULLint a = Convert.

2020-07-20 11:09:19 810

原创 C#基本数据类型

部分摘自《C# 7.0 核心技术指南》。数据类型C#中的数据类型分为值类型 (Value type) 和引用类型(reference type)1 值类型和引用类型值类型所有的值类型都集成自 System.ValueType 上,除非加声明 ? 否则不可为 null,保存在堆栈(Stack,先进后出)上,常见的值类型有:整形、浮点型、bool、枚举(enum)、结构体(struct)等。引用类型所有的引用类型都继承自 System.Object 上,引用类型保存在托管堆(Head,先进

2020-07-18 09:07:13 490

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除