class 定义的类型是参考型别, 在运行时当你声明一个参考类别变数, 此变数会包含 null, 直到使用 new 运算符建立这个类的实例, 或者将一个兼容类型的物件指向此变数, 建立物件时, 会在受管理的 heap 为该物件分配足够的记忆体, 而该变数只保存对这个物件位置的参考, 在受管理 heap 的类型配置时和被 CLR 的自动记忆体管理(也称垃圾回收 garbage collection)功能都需要开销, 然而记忆体管理也以获得高度最佳化, 在大部分情况下并不会产生效能问题.
使用关键字 class 宣告类别, 後面接着唯一识别码
// [access modifier] - [class] - [identifier]
// access modifier 代表存取层级
public class User
{
//
}
建立物件
使用关键字 new 来建立物件
User person1 = new User();
// person 是基於 User 的物件的参考
类别继承
类别完全支持继承, 这是物件导向程序设计的基础特性, 当你建造一个类别时, 你可以从其他非定义为 sealed 的类别继承, 还可重写类别的方法, 另外可以实作一个或多个介面, 继承通过使用衍生完成, 这意味着一个类是通过使用他继承的资料和行为的基类来宣告, 通过附加冒号指定基类, 类别宣告基类时, 会继承基类的除了建构式(constructor)外所有成员, C# 中的类别只能直接继承自一个基类, 类别可实作一个或多个介面
public class Student : Person
{
}
抽象类别(abstract class)
可以宣告 抽象类别(abstract class), 一个抽象类别包含抽象方法有签章没有实作, 抽象类别无法实例化, 只能通过衍生类别来时作抽象方法
(密封类别)Sealed Class
在类别定义前面加上 sealed 关键字, 就可以将类别宣告为 sealed, 密封类别不能当基类被继承, 所以也不能是抽象类别.
parameters 用於将值或变数参考传递给方法, 当方法被调用时从指定的引数(argument)得到参数的实际值,参数有4种: 实值参数(value parameters), 参考参数(reference parameter), 输出参数(output parameter), 参数阵列(parameter array)
一个实值参数被用来传递输入引数, 一个实值参数会对应至一个区域变数(local variable), 这个变数会从传递的引数取得初始值, 对参数修改不影响传入的引数
参考参数用参考方式传递引数, 传递给参考参数的引数必须有明确值的变数, 方法执行期间参考参数与引数变数相同储存位置, 使用 ref 修饰符来宣告参考参数
void swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}
int i = 1, j = 2;
swap(ref i, ref j);
Console.WriteLine($"{i} {j}")
输出参数用参考方式传递引数, 类似参考参数, 不过不需要明确指定值给呼叫端的引数, 使用 out 修饰符宣告输出输出参数
class Program
{
static void Add(int x, int y, out int sum)
{
sum = x + y;
}
static void Main(string[] args)
{
Add(5, 6, out int res);
Console.WriteLine($"{res}");
}
}
参数阵列允许将数量不固定的引数传递给方法, 使用 params 修饰符来宣告, 方法中只有最後一个参数可以是参数阵列, 阵列参数的型别必须是一维阵列型别, 例如 System.Console 的 Write 和 WriteLine 方法, 可以传递阵列类型的单一引数, 或任何个数的参数阵列的元素
int x, y, z;
x = 1;
y = 2;
z = 3;
Console.Write("x={0} y={1} z={2}", x, y, z);
object[] args = new object[3];
args[0] = x;
args[1] = y;
args[2] = z;
Console.Write("x={0} y={1} z={2}", args);
大家好! 今天要实作新增和删除资料列。 我们进入今天的主题吧! 样式 .table { displa...
目标 今天要做的是,拖拉然後卷动区块 Step1 const slider = document.q...
前言 position 是用来设置元素定位的属性 Position分成了static 、fixed、...
24. Swap Nodes in Pairs 前面我们着重在「资料结构」的议题上做了不少的讨论,...
何谓表单? 维基百科是这样说的: 表单是一种带有空格可用於书写以及能选择和勾选相似内容的文件。 表...