(1)重载指的是同一个类中有两个或多个名字相同但是参数不同的方法,(注:返回值不能区别函数是否重载),重载没有关键字。 重载是指指子类对父类中虚函数或抽象函数的“覆盖”重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型无关。 重写,必然发生在基类和派生类中,其类函数用virtual修饰,派生类用override修饰。 重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,...
(一)装箱与拆箱 (1)拆箱是从引用类性到值类型的转换,装箱是值类型到引用类性的转换。 装箱 是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。 拆箱 是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。注意,只能拆回最开始的类型。int i=10; object obj=i;//(装箱,此时将值类型转换成引用类性,会开辟2个内存,...
1.引用命名空间using System.Runtime.Serialization.Formatters.Binary;//引入命名空间 2.类必须是可序列化的[Serializable] //使此类可序列化 public class Person {private string name;public string Name{get { return name; }set { name = value; }}private string gender;public string Gender{get { return gender; }set { gender = value; }}private int age;public int Age{get { return age; }set { age = value; }} ...
上期回顾 - https://www.cnblogs.com/liu-jinxin/p/10831189.html 一、运算符重载您可以重定义或重载 C# 中内置的运算符。因此,程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。示例代码: 1 using System;2 3 namespace OperatorOvlApplication4 {5 class Box6 {7 private double leng...
事件处理程序是基于“委托”机制运行的。 1.委托 (1)委托的定义和使用 有时需要将一个函数作为另一个函数的参数,这时就要用到委托(Delegate)机制。例如设计一个马戏表演函数: //定义委托 delegate void AnimalPlay(string name); static void CircusStart(AnimalPlay animalPlay, string name){ animalPlay(name); } 这里AnimalPlay是委托的类型,而animalPlay是委托,调用时可以: //把函数DogPlay()转换为AnimalPlay 型委...
?.NET Framework : 4.7.2 ???????IDE : Visual Studio Community 2019 ??????? OS : Windows 10 x64 ??? typesetting : Markdown ?????? blog : blog.csdn.net/yushaopu ????? github : github.com/GratefulHeartCodercode using System; using System.Xml.Linq;namespace ConsoleApp {class Program{static void Main(string[] args){XDocument xmlFile = new XDocument();// 设置根元素XElement root = new XElement("cultures...
?.NET Framework : 4.7.2 ???????IDE : Visual Studio Community 2019 ??????? OS : Windows 10 x64 ??? typesetting : Markdown ?????? blog : blog.csdn.net/yushaopu ????? github : github.com/GratefulHeartCodercode using System; using System.Collections.Generic;namespace ConsoleApp {class Program{static void Main(string[] args){// 泛型,只能加入int类型的,或者可以转换成Int类型的数据var testList = new Li...
什么是扩展方法 扩展方法是一种特殊类型的静态方法。对于一个C#类型,如类(包括密封类)、值类型、接口等,扩展方法可以在不改变该类型源码的前提下,为它的实例提供新的成员。因此,若要为一个框架或第三方库的某个类型增加辅助功能,通过扩展方法就可以轻而易举地实现,这也是“扩展”的意义所在。 扩展方法需要满足的条件: 1、扩展方法必须定义在静态类里。 2、扩展方法必须是静态方法。 3、扩展方法的第一个参数以this修饰符...
一、变量一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作(一)、变量的分类C# 中提供的基本的值类型大致可以分为以下几类:类型 举例整数类型 sbyte、byte、short、ushort、int、uint、long、ulong 和 char浮点型 float 和 double 十进制类型 decimal布尔类型 true 或 false 值,指定的值空类型 可...
?.NET Framework : 4.7.2 ???????IDE : Visual Studio Community 2019 ??????? OS : Windows 10 x64 ??? typesetting : Markdown ?????? blog : blog.csdn.net/yushaopu ????? github : github.com/GratefulHeartCodercode - 1 using System;namespace ConsoleApp {class Program{static void Main(string[] args){int? a = null;// 如果是null,那么a=4Console.WriteLine(a ?? 4);Console.ReadKey();}} }result 4code - 2 using...
1面向对象 类:包含字段、属性、函数、构造函数 字段:存储数据 属性:保护字段 get set 函数:描述对象的行为 构造函数:初始化对象,给对象的每个属性赋值 面向对象的好处:让程序具有扩展性 类决定了对象将要拥有的属性和行为。1 namespace _07虚方法2 {3 class Program4 {5 static void Main(string[] args)6 {7 //员工九点打卡 经理11点打卡 程序猿不打卡8 9 // Employee ...
C#提供了一个特殊的数据类型,nullable(可空)类型。可空类型可以表示其基础值类型正常范围内的值,外带一个null值。相关的字符有?和??两种。 【1】?字符单问号用于对无法直接赋值为null的数据类型进行null的赋值,意思是这个数据类型是Nullable类型的。例如Nullable<Int32>(读作“可空的Int32”),可以被赋值为-2147483648到2147483647之间的任意值,也可以被赋值为null值。在处理数据库和其他可能包含未赋值的元素的数据类型时...
属性(Property)是类、结构、接口的命名成员。类或结构中的成员变量或成员方法称为域(Field),而属性是域的扩展,并且可以使用相同的语法来访问。它们使用访问器(Accessors)让私有域的值可以被读写或操作。 属性不会直接锁定私有域的存储位置。相反,它们具有可读写或计算它们的值的访问器。例如,有一个名为Student的类,有age、name、code的私有域。我们不能在类的范围外直接访问这些私有域,但是我们可以拥有可以访问这些私...
编译:C#语言要经过两次编译,程序员编写好源代码后进行第一次编译,将源代码编译为微软中间语言(MSIL),生成可以发布的应用软件;当用户使用软件时,MSIL代码会在首次载入内存后进行第二次编译,中间语言被编译为机器语言,以供计算机执行。对于同一段MSIL代码,第二次编译只在代码首次载入内存时发生,编译结果被暂时保存起来,以供重复利用。并且第二次编译是按需编译的,即用到那段就编译那段,不用到的不编译,所以这种需要...
关于C#中文本模板(.tt)的简单应用https://blog.csdn.net/zunguitiancheng/article/details/78011145 任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler T4模版引擎之生成数据库实体类 http://www.cnblogs.com/lzrabbit/archive/2012/07/15/2591085.html https://www.cnblogs.com/lzrabbit/archive/2012/07/18/2597953.html SqlSugar入门级教程+实例 (.net core下的)https:...