C#关键字base】的更多相关文章

例子: public CustomStroke(SharpType type) :base() { this.type = type; } 这里的CustomStroke继承与基类Stroke类,用关键字base调用了基类stroke类中的构造方法. 如果基类没有提供默认构造函数,派生类必须使用 base 显式调用基构造函数. 构造函数可以使用 this 关键字调用同一对象中的另一构造函数.和 base 一样,this 可带参数使用也可不带参数使用,构造函数中的任何参数都可用作 this 的参数…
①调用基类上已被其他方法重写的方法,小栗子a如下: public class Father { public virtual void Show() { Console.WriteLine(" I am your father "); } } public class Child:Father { public override void Show() { base.Show(); Console.WriteLine("I am your child"); } }…
1.调用基类的方法 public class A { public virtual void Hello() { Console.WiriteLine("Hello"); } } public class B : A { public override void Hello() { base.Hello();//调用基类的方法,显示Hello Console.WiriteLine("World"); } } 2.搭配构造函数执行基类的有参无参构造函数 public…
微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 抽象类和类成员 通过在类定义前面放置关键字 abstract,可以将类声明为抽象类. 例如: public abstract class A { // Class members here. } 抽象类不能实例化. 抽象类的…
内存中的三大存储区域:栈.堆.静态存储区域 new 关键字:new帮助我们做了三件事:1)在内存中开辟一块空间(开辟内存空间)2) 在开辟的空间中创建对象3)调用对象的构造函数进行初始化对象所以构造函数的修饰符必须为public 作用:1)创建对象2)隐藏基类那里继承过来的同名成员.隐藏的后果就是派生类调用不到基类的成员. 如要隐藏派生类中与基类相同名(指相同方法签名)的方法:A类继承了B类,A.B类中有相同方法签名的方法C( ),可以在基类中public C( ){} ,在派生类中public…
前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和static构造函数之间的执行问题. base关键字 base 关键字用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数.实例方法和实例属性访问器中: 调用基类上已被其他方法重写的方法. public class Father { public virtual void Say()…
每一种语言都有非常多的关键字,而且这些关键字也都大同小异,不过毕竟还是有些许的不一样.有些关键字大家碰到的多了,自然就熟悉了,但是有些关键字用得不大多,或者是新引入的,所以就不大熟悉了.我平常在用的时候,就是会碰到一些关键字,感觉有点生疏,平常也会把这些我不懂的关键字的用法了解一下并记录下来.想到应该也有很多跟我同样的人,所以就把我的记录跟大家分享一下.请各位tx多多指正! 访问关键字     base:用于派生类中访问基类的成员 调用基类上已被其他方法重写的方法 1 public overri…
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTest { class Program { static void Main(string[] args) { Student s = ,); //父类中的person say hello 没有输出,原因是隐藏了父类的方法 //如果想有意隐藏父类的同名方法 使用关键字n…
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTest { class Program { static void Main(string[] args) { } } public class Person { public string Name { get; set; } public int Age { get…
/** this关键字* this关键字引用类的当前实例* 注意:静态成员方法中不能使用this关键字,this关键字只能在实例构造函数.实例方法或实例访问器中使用*/ /** base关键字* base关键字用于从派生类中访问基类的成员:* 指定创建派生类实例时调用基类构造函数:* 调用基类上已被重写的方法* 注意:不能从静态方法中使用base关键字,base关键字只能在实例构造函数.实例方法或实例访问器中使用*/ base用法1.base调用构造方法 public class BaseCla…
前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和static构造函数之间的执行问题. base关键字 base 关键字用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数.实例方法和实例属性访问器中: 调用基类上已被其他方法重写的方法. public class Father { public virtual void Say()…
1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. internal: 只能在当前项目中访问,在同一个项目中,internal和public的权限是一样的. protected internal: protected + internal权限. 1.1:能够修饰类的访问修饰符只有两个: public / internal 1.2:接口中的成员不允许…
前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和static构造函数之间的执行问题. base关键字 base 关键字用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数.实例方法和实例属性访问器中: 调用基类上已被其他方法重写的方法. public class Father { public virtual void Say()…
一.方法(结构.数组.冒泡排序.3个参数重载) 1将string转换为int类型 Convert.ToInt32(); int.Parse() ; int.TryParse()三种方式. 2 结构:可以帮助我们一次性声明多个不同类型的变量. public struct JG { public string name; public int age; } static void Main(string[] strag) { JG jg=new JG(); jg.name=”张三”; jg.age=…
.NET基础知识点   l  .Net平台  .Net FrameWork框架   l  .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转   l  两种交互模式 C/S:要求客户的电脑上必须要安装一个客户端:qq.360.快播等..... B/S:要求客户的电脑上只需要安装一个浏览器   l  书写代码需要注意的地方: n  代码中出现的所有标点都是英文半角 shift键快速切换中文半角和英文半角 n  shift+空格切换全角/半角 n  在c#代…
1.我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者, 管Test()函数称之为被调用者. 如果被调用者想要得到调用者的值: 1).传递参数. 2).使用静态字段来模拟全局变量. 如果调用者想要得到被调用者的值: 1).返回值 2. 不管是实参还是形参,都是在内存中开辟了空间的. 3.方法的功能一定要单一. GetMax(int n1,int n2) 方法中最忌讳的就是出现提示用户输入的字眼. 4.out.ref.params 1).out参数. 如果你在一个方…
封装                                                                                                    对象的内部数据不应该从对象的实例直接访问,如果调用者想改变对象的状态就要使用访问方法(getter)和修改方法(setter),封装提供了一种保护状态数据完整性的方法,可用于验证输入数据是否符合业务规则. 实现方式 访问方法和修改方法 属性 继承                         …
class Organ { public virtual void Intro() { Console.WriteLine("I'm a organ."); } public string GetOrgan() { return "Cut"; } } class Eye:Organ { public override void Intro() { Console.WriteLine("I'm an eye"); } public new stri…
面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. 打包,便于管理,为了解决大型项目的维护与管理. 三.什么是类? 将相同的属性和相同方法的对象进行封装,抽象出 “类”,用来确定对象具有的属性和方法. 类.对象关系:人是类,张三是人类的对象. 类是抽象的,对象是具体的.对象可以叫做类的实例,类是不站内存的,对象才占内存. 字段是类的状态,方法是类执…
1.    什么是Asp.Net? 答:Asp.Net是一种基于.NET平台下的动态web开发技术,它使用的是codebehind(代码后置技术),可以将前台呈现和后台代码进行有效的分离.   2.    什么是webservice? 答:webservice是一种跨平台的分布式技术,它采用的xml格式数据进行传递,使用了soap协议,可以穿越防火墙(因为是80端口).   3.    Asp.Net和Asp的区别? 答:Asp.Net不仅仅是Asp的简单升级版: Asp使用的是Vbscript…
类和柏拉图的理念世界 我们知道面向对象编程中到处是一个个的类,但类只是个概念性的东西,不是个实体,不占内存,你没实例化之前也不能用它.只有把类实例化成一个对象后,它才是一个真正存在的实体.占有内存,能被我们使用.类就有点像柏拉图所说的理念世界一样,柏拉图认为存在着两个世界,一个是我们生活于其中的现实世界,与之对立的是理念世界,理念世界有些啥东东呢?那是个永恒不变的世界,由一堆堆的理念组成,比如人,马,鸟....理念的人只是个概念,不是任何实际的人.而我们现实世界是根据理念世界模拟出来实际的一个个…
一.类(类中可以写字段.属性.方法.构造函数)1.定义一个类用关键字class,后面加类名,类名第一个字母用大写,可用private或public修饰符定义访问级别,类可定义在同一命名空间中,也可定义在单独一个文件中:如:(private|public) class Person2.类里面可以有类变量(也叫字段或成员变量),也可以有方法;如:class Person{ private int age; private string name; public void setAge(int age…
这样是调用父类中第二个有参的构造函数,如果去掉Base默认调用无参构造函数 注意执行顺序是:先调用父类的构造函数,然后再执行子类自己的构造函数. 父类: class Person { public Person() { Console.WriteLine("========================"); } public Person(string name, int age, string email) { this.Name = name; this.Age = age;…
1.值类型和引用类型: 值类型:int.double.bool.char.decimal.struct.enum 引用类型:string.自定义类.数组 存储: 值类型的值是存储在内存的栈当中. 引用类型的值是存储在内存的堆中. 2.字符串 1).字符串的不可变性 当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值. 当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁. 2).我们可以讲字符串看做是char类型的一个只读数组. ToCharArra…
第一章 深入.NET框架 .NET框架 包含 CLR公共语言运行时 FCL框架类库 CLR(Common Language Runtime)公共语言运行时 CLS(Common Language Specific)公共语言规范 CTS(Common Type System)公共类型系统 FCL(Framework Class Library)框架类库 基本框架类(线程 ADO.NET XML类 文件IO类...... Web窗体 MVC WinForms ADO.NET SqlConnectio…
错误 CS0001 编译器内部错误错误 CS0003 内存溢出错误 CS0004 提升为错误的警告错误 CS0005 编译器选项后应跟正确的参数错误 CS0006 找不到动态链接的元数据文件错误 CS0007 .Net 环境初始化错误错误 CS0008 从文件中读取元数据错误错误 CS0009 不能打开元数据文件错误 CS0010 名字空间与类型的声名不能同名错误 CS0011 引用的类找不到基类错误 CS0012 找不到引用类型的定义错误 CS0013 向文件中保存元数据时发生未知错误错误 C…
此文章只是 记录在C#当中一些我个人认为比较重要的知识点,对于有些基础实现或者用法并未说明: 继承 C#当中可以实现两种继承方式 1.实现继承:一个类派生于一个类,它拥有基类的所有成员字段和函数. 2.接口继承:表示一个类只继承了函数的签名,没有继承任何实现代码. 结构支持接口继承,但不支持实现继承: 虚方法 虚方法关键字 virtual 函数使用 virtual 关键字 子类可以重写 基类的虚方法:重写后使用重写方法: 属性也可以使用 virtual 如果在子类中想要使用基类的方法:那么可以使…
1.简述C#中的虚方法 答:注意:当使用virtual关键字修饰符后,不允许再同时使用abstract,static,或override关键字进行修饰 使用virtual关键字修饰的方法就是虚方法,虚方法的关键字用于修饰属性方法.索引器或事件声明,并使他们可以在 派生类中被重写.虚方法必须并提供派生类覆盖该方法的选项,并且必须有实现部分,虚方法的作用是可以在派生类中被 重写. 2.简述C#中的密封类和密封方法 答:密封类使用sealed关键字进行修饰,他不能用作其他类的基类,并且他没有派生类.密…
原文地址:http://kb.cnblogs.com/page/42318/ 系列文章导航: [你必须知道的.NET] 开篇有益 [你必须知道的.NET] 第一回:恩怨情仇:is和as [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类 [你必须知道的.NET] 第三回:历史纠葛:特性和属性 [你必须知道的.NET] 第四回:后来居上:class和struct [你必须知道的.NET] 第五回:深入浅出关键字---把new说透 [你必须知道的.NET] 第六回:深入浅出关键字---bas…
一.方法(结构.数组.冒泡排序.3个参数重载) 1将string转换为int类型 Convert.ToInt32(); int.Parse() ; int.TryParse()三种方式. 2 结构:可以帮助我们一次性声明多个不同类型的变量. public struct JG { public string name; public int age; } static void Main(string[] strag) { JG jg=new JG(); jg.name=”张三”; jg.age=…