C#深入浅出 关键字(一)

1.this
this关键字用于指示当前对象“自己”,来看一个例子,了解什么时候需要用this
 class Star{String name;int age;public void SetInfo(string name,int age){name = name;//注意此处的赋值age = age;//
        }public void Show(){Console.WriteLine(name+""+age.ToString());}}

 

 实例化Star,并且调用其中的方法

 class Program{static void Main(string[] args){Star star = new Star();star.SetInfo("诸葛亮",50);star.Show();//结果输出0
            Console.ReadKey();}}

 

 我们看到输出的结果与我们预期的不符,于是改写上面的代码如下

 class Star{String name;int age;public void SetInfo(string name,int age){this.name = name;//注意此处的赋值this.age = age;//
        }public void Show(){Console.WriteLine(name+""+age.ToString());}}

2.base

 

base 关键字用于从派生类中访问基类的成员:

 

  • 调用基类上已被其他方法重写的方法。

  • 指定创建派生类实例时应调用的基类构造函数。

 

基类访问只能在构造函数、实例方法或实例属性访问器中进行。

 

从静态方法中使用 base 关键字是错误的。

 

示例
 
在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类的 Getinfo 方法。
 1 // keywords_base.cs
 2 // Accessing base class members
 3 using System;
 4 public class Person
 5 {
 6     protected string ssn = "444-55-6666";
 7     protected string name = "John L. Malgraine";
 8 
 9     public virtual void GetInfo()
10     {
11         Console.WriteLine("Name: {0}", name);
12         Console.WriteLine("SSN: {0}", ssn);
13     }
14 }
15 class Employee : Person
16 {
17     public string id = "ABC567EFG";
18     public override void GetInfo()
19     {
20         // Calling the base class GetInfo method:
21         base.GetInfo();
22         Console.WriteLine("Employee ID: {0}", id);
23     }
24 }
25 
26 class TestClass
27 {
28     static void Main()
29     {
30         Employee E = new Employee();
31         E.GetInfo();
32     }
33 } 

本示例显示如何指定在创建派生类实例时调用的基类构造函数。

 1 // keywords_base2.cs
 2 using System;
 3 public class BaseClass
 4 {
 5     int num;
 6 
 7     public BaseClass()
 8     {
 9         Console.WriteLine("in BaseClass()");
10     }
11 
12     public BaseClass(int i)
13     {
14         num = i;
15         Console.WriteLine("in BaseClass(int i)");
16     }
17 
18     public int GetNum()
19     {
20         return num;
21     }
22 }
23 
24 public class DerivedClass : BaseClass
25 {
26     // This constructor will call BaseClass.BaseClass()
27     public DerivedClass() : base()
28     {
29     }
30 
31     // This constructor will call BaseClass.BaseClass(int i)
32     public DerivedClass(int i) : base(i)
33     {
34     }
35 
36     static void Main()
37     {
38         DerivedClass md = new DerivedClass();
39         DerivedClass md1 = new DerivedClass(1);
40     }
41 }

3.using

转载于:https://www.cnblogs.com/jaysen/p/4403394.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用platform库获取浏览器和操作系统版本

原生方法检测 网站获取用户的浏览器和操作系统版本是一个很常见的需求,但是细说起来这个功能的实现并不简单。一般情况下有两种思路。 一是利用用户代理UserAgent来判断浏览器和OS的版本,因为各个平台和浏览器的UA都不一样。但是这种方法存在一个局限性&…

linux桌面lxde 安装_观点|最新精简型 Linux 桌面环境大比拼:LXDE Vs. Xfce Vs. MATE

对于相当一部分 Linux 用户而言,性能永远是其追求的终极目标。无论他们使用的计算机已经太过陈旧,需要尽量发掘其中的有限潜能,还是希望凭借手中崭新的高性能系统承载全部高强度任务负载,让一切保持简洁。这些都是实现性能保障的重…

Android SQLite详解

在项目开发中,我们或多或少都会用到数据库。在Android中,我们一般使用SQLite,因为Android在android.database.sqlite包封装了很多SQLite操作的API。我自己写了一个Demo来总结SQLite的使用,托管在Github上,大家可以点击…

Catalan数的理解

Catalan数的理解 f(0)1f(1)1f(2)2f(3)5f(4)14f(5)42f(2)f(1)f(1)f(3)f(2)f(1)*f(1)*f(2)f(4)f(3)f(2)*f(1)f(1)*f(2)f(3)通项公式:f(n) f(n-1) f(n-2)f(1) f(n-3)f(2) ... f(1)f(n-2) f(n-1) 理解:固定一个,n-1个全在左边,n-…

Type interface mapper.UserMapper is not known to the MapperRegistry

Type interface mapper.UserMapper is not known to the MapperRegistry. 报错:Type interface mapper.UserMapper is not known to the MapperRegistry. 解决:已经解决;请查看mapper是否配置正确,我下面就配置错误了。 解决效果…

我看objective-C --不要把objC当做c/c++的超集

--不要把objC当做c/c的超集 我承认看objective-C的时间不是很长,连apple官网的objCpdf都没看完。 但是我已经感觉到很多介绍objC文章都说过的一句话是在误导初学者。那句话 就是objective-C是 c/c语言的超集。 我们在学与c/c相关的语言的时候很自然的想到java、c#这…

微信整人假红包图片_警惕:千万别点!这些红包是假的

春节将至,又到了“考验手速”的时候。近年春节,“抢红包”为大家带来了“新年味”与许多快乐。但是,有些不法分子却从中捣乱,制造了一些假红包企图骗取钱财。如何辨别“假红包”?这里总结了几种“假红包”类型&#xf…

SQL Server中SCAN 和SEEK的区别

SQL Server中SCAN 和SEEK的区别 SQL SERVER使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据。这两种算法构成了查询的基础,几乎无处不在。Scan会扫描并且返回整个表或整个索引。 而seek则更有效率&…

HDU 2897 (博弈 找规律) 邂逅明下

根据博弈论的两条规则&#xff1a; 一个状态是必胜状态当且仅当有一个后继是必败状态一个状态是必败状态当且仅当所有后继都是必胜状态然后很容易发现从1开始&#xff0c;前p个状态是必败状态&#xff0c;后面q个状态是必胜状态&#xff0c;然后循环往复。 1 #include <cstd…

C# 设置Excel打印选项及打印excel文档

C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作&#xff0c;但有时候我们会碰到各种不同的打印需求&#xff0c;例如只打印一个Excel工作表的其中一部分&#xff0c;或打印时每页都有表头&#xff0c;或把工作表中超出1页所有内容打印到1页上等等&#…

tp5框架原理详解_笔记:TP5框架完整学习笔记

安装配置官网下载TP5完整版(初学者学习用的)解压到本地的开发环境phpstudy中&#xff0c;默认的入口文件是public&#xff0c;访问public会看到TP5成功页面。目录介绍一般开发中&#xff0c;代码都是写在application这个文件夹中开发一个项目的时候&#xff0c;通常分为前台和后…

mustache 模板使用

//一 ,基本使用 <!DOCTYPE html><html ng-app"myApp"><head lang"en"> <meta charset"UTF-8"> <title></title> <script src"jquery-1.10.2.min.js"></script> <script src"…

Sphinx编译docs文档

在使用Python、Django的过程中&#xff0c;经常看到docs目录&#xff0c;里面存放着一些txt文本文件&#xff0c;也就是自带的一些帮助文档&#xff0c;里面有make.bat&#xff0c;在dos目录下直接执行make&#xff0c;给出的帮助是可以转换成Html、PDF等文件形式&#xff0c;那…

js传参不是数字_js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作...

1.在js中函数没有重载的概念&#xff0c;如果声明了多个重名的函数&#xff0c;不管函数的形参个数是否一样&#xff0c;只有最有一个有效&#xff0c;其他的函数声明都是无效的。比如说声明了两个函数fn()&#xff0c;第一次声明时没有形参&#xff0c;第二次声明时形参有两个…

精妙SQL语句收集(转)

SQL语句先前写的时候&#xff0c;很容易把一些特殊的用法忘记&#xff0c;我特此整理了一下SQL语句操作。 一、基础 1、说明&#xff1a;创建数据库 CREATE DATABASE database-name 2、说明&#xff1a;删除数据库 drop database dbname 3、说明&#xff1a;备份sql serv…

原生JS字符串操作方法汇总

1.转换为字符串类型(三种实现方式) 1 var num110; 2 var mystrnum.toString(); //"110" 3 4 var num111; 5 var mystrString(num); //"111" 6 7 var num112; 8 var mystr"" num; //"112" 2.字符串分割返回新的数…

解决问题:修改tomcat启动后服务器url

解决问题&#xff1a;修改tomcat启动后服务器url 解决方式&#xff1a;通过在pom.xml配置文件中使用configuration标签的子标签path可以修改http://localhost:8080后跟什么路径。如path标签中为/&#xff0c;则tomcat启动后服务器url为http://localhost:8080/

用js来实现那些数据结构 第一章

在开始正式的内容之前&#xff0c;不得不说说js中的数据类型和数据结构&#xff0c;以及一些比较容易让人混淆的概念。那么为什么要从数组说起&#xff1f;数组在js中是最常见的内存数据结构&#xff0c;数组数据结构在js中拥有很多的方法&#xff0c;很多初学者记不清数组的大…

excel密码忘记了怎么办

2019独角兽企业重金招聘Python工程师标准>>> Excel电子表格应用程序堪称Office中的“王牌应用”&#xff0c;能够快速灵活地整理各种大数据&#xff0c;在各行各业中发挥着不可替代的作用。因此&#xff0c;excel文档的跋扈密码比其他文档多&#xff0c;除了常设的打…

关于Android定制Launcher

好久没有做Adroid项目开发了&#xff0c;临时需要开发一个APK. 客户要求该APK作为launcher存在&#xff0c;折腾了一些时间&#xff0c;特此记录以免忘了。 按照网络上的要求&#xff0c;添加 <category android:name"android.intent.category.DEFAULT" /> …