C#创建类型
学海无涯又无舟
这个作者很懒,什么都没留下…
展开
-
泛型
泛型csharp 有两种不同的机制来编写跨类型复用的代码:继承和泛型。但继承的复用性来自基类,而泛型的复用性是通过带有“占位符”的“模板”类型实现的。和继承相比,泛型能够提供类型的安全性,并减少类型的转换和装箱。1 泛型类型 Generic Types泛型类型中声明的类型参数(占位符类型)需要有泛型类型的消费者(即提供类型参数的一方)填充。下面是一个存放类型 T 实例的泛型栈类型 Stack<T>。Stack<T>声明了单个类型参数 T:public class Stack&原创 2020-08-08 20:25:46 · 308 阅读 · 0 评论 -
嵌套类型
嵌套类型嵌套类型(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 · 494 阅读 · 0 评论 -
枚举类型
枚举类型枚举类型是一种特殊的值类型,可以在枚举类型中定义一组命名的数值常量: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 · 1241 阅读 · 0 评论 -
接口
接口接口和类相似,但接口只为成员提供定义而不提供实现。接口的不同之处在于:接口的成员都是隐式抽象的。相反,类可以包含抽象的成员和有具体实现的成员。一个类(或者结构体)可以实现多个接口。而一个类只能继承一个类,结构体则完全不支持继承(只能从 System.ValueType 派生)。接口声明和类声明很类似。但接口不提供成员的实现,这是因为它所有的成员都是隐式抽象的,这些成员将由实现接口的类或结构体实现。接口只能包含方法、属性、事件、索引器等,而这些正是类中可定义为抽象的成员类型。publ原创 2020-07-28 10:24:34 · 158 阅读 · 0 评论 -
访问权限修饰符
访问权限修饰符为了提高封装性,类型或类型成员可以在声明中添加访问权限修饰符(Access Modify)来限制其他类型和程序集对它的访问。可访问性含义public完全访问权限internal仅可以在当前程序集内访问,或供友元程序集访问。非嵌套类型的默认可访问性private仅可以在当前类中访问。类和结构体成员默认可访问性protected仅可在当前类和其子类中访问protected internalprotected 和 internal 可访问性的原创 2020-07-28 10:22:18 · 166 阅读 · 0 评论 -
结构体
结构体结构体(Struct)和类(Class)类似,不同之处在于:结构体是值类型,类是引用类型。结构体不支持继承(除了隐式继承了 object 类,更精确地说,继承自 System.ValueType)。类有的成员,结构体也可以有,除了以下内容:无参数构造函数。字段初始化器(字段初始化器而非对象初始化器,即在声明字段时直接对字段赋值)。终结器。virtual 或 protected 成员。结构体的构造语义结构体隐式包含一个无法重写的无参数构造函数,将字段按位归零。定义原创 2020-07-24 11:48:30 · 156 阅读 · 0 评论 -
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 · 2853 阅读 · 0 评论 -
继承
继承一个类可以通过继续另一个类,从而对原有类进行扩展和自定义。子类 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 · 160 阅读 · 0 评论 -
类
类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 · 229 阅读 · 0 评论