每一种语言都有非常多的关键字,而且这些关键字也都大同小异,不过毕竟还是有些许的不一样。有些关键字大家碰到的多了,自然就熟悉了,但是有些关键字用得不大多,或者是新引入的,所以就不大熟悉了。我平常在用的时候,就是会碰到一些关键字,感觉有点生疏,平常也会把这些我不懂的关键字的用法了解一下并记录下来。想到应该也有很多跟我同样的人,所以就把我的记录跟大家分享一下。请各位tx多多指正! 访问关键字     base:用于派生类中访问基类的成员

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

    1 public override void GetInfo() 2 { 3 base.GetInfo(); // 调用基类上的GetInfo方法 4 }

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

    1 public MyDerived() : base() // 调用基类的构造函数 2 {}

从静态方法中使用base关键字是错误的。
转换关键字 explicit:用于声明用户定义的显式类型转换运算符

1 class MyType 2 { 3 public static explicit operator MyType(int i) 4     { 5 // 从int转换到MyType类型的代码 6     } 7 }

显式转换运算符必须通过类型转换调用

1 int i; 2 MyType x = (MyType)i; // int到MyType类型的转换需要进行类型转换

如果转换操作可能导致异常或信息丢失,则应用explicit关键字标记它。     implicit:用于声明用户定义的隐式转换运算符

1 class MyType 2 { 3 public static implicit operator int(MyType m) 4     { 5 // 从MyType转换到int类型的代码 6     } 7 }

1 MyType x; 2 int i = x;  // 隐式地调用MyType的MyType到int类型的转换运算符

隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。     一般情况下,调用某一个隐式转换时,应当绝不会引发异常,并且不会造成信息丢失。否则,应将其标记为explicit。 方法参数关键字     如果声明方法的参数时没有指明ref或out,该参数将具有与该方法相关的值。这个值在方法中能被更改,但是当程序返回到调用过程时,这种改动不会被保留。     params:用于指定在参数数目可变时带有参数的方法参数     在方法声明中的params关键字之后不允许引入任何其他参数,但在其前面可以有其他参数。而且在方法声明中只允许使用一个params关键字。

1 public static void UseParams(params int[] list)  2 {  3 for(int i = 0; i < list.Length; i++)  4     {  5         Console.WriteLine(list[i]);  6     }  7 }  8  9 public static void Main() 10 { 11     UseParams(1,2,3); 12 int[] myArray = new int[3] { 10,11,12 }; 13     UseParams(myArray); 14 }

ref、out  使方法可以引用传递到该方法的那一个变量,当程序转至调用方法时,在方法中对参数所做的任何改动都将传给该变量。     ref参数的值将被传递到ref参数,故必须首先初始化;而out参数不然,它的值不会被传递到该out参数,故不必首先初始化,但它必须在方法返回以前为out参数赋值。     属性不是变量,不能作为ref/out参数。

漫谈C#之关键字的更多相关文章

  1. 作为一个新手的Oracle(DBA)学习笔记【转】

    一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...

  2. 李洪强漫谈iOS开发[C语言-009] - C语言关键字

    // //  main.m //  04 - C语言关键字 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. All r ...

  3. 漫谈.Net关键字系列之一Sealed与Final(转)

    转自:http://www.cnblogs.com/isline/archive/2010/08/31/1813396.html Sealed与Final修饰符其实并不是一个语言平台的产物,他们有着各 ...

  4. 【道德经】漫谈实体、对象、DTO及AutoMapper的使用

    写在前面 实体和值对象 实体和对象 故常无欲以观其妙,常有欲以观其徼 初始实体和演化实体 代码中的DTO AutoMapper实体转换 后记 实体(Entity).对象(Object).DTO(Dat ...

  5. 【转】漫谈iOS程序的证书和签名机制

    转自:漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕 ...

  6. Javascript的实例化与继承:请停止使用new关键字

    本文同时也发表在我另一篇独立博客 <Javascript的实例化与继承:请停止使用new关键字>(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!) 标题 ...

  7. 漫谈iOS Crash收集框架

    漫谈iOS Crash收集框架   Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...

  8. new关键字

    Javascript的实例化与继承:请停止使用new关键字   本文同时也发表在我另一篇独立博客 <Javascript的实例化与继承:请停止使用new关键字>(管理员请注意!这两个都是我 ...

  9. 漫谈C指针:参数传递的三道题目

    漫谈C指针:参数传递的三道题目 2009-07-02 开讲之前,我先请你做三道题目.(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: [c] view plaincopy ...

随机推荐

  1. Data Binding(数据绑定)用户指南

    1)介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件. Data Binding库不仅灵活而且广泛兼容- 它 ...

  2. Oracle 课程一之Oracle体系结构

    课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理   1.Oracle数据库概述 •数据库:物 ...

  3. [Everyday Mathematics]20150207

    求极限 $$\bex \lim_{x\to+\infty}\sex{\sqrt{x+\sqrt{x+\sqrt{x^\al}}}-\sqrt{x}},\quad\sex{0<\al<2}. ...

  4. Jacoco远程统计代码覆盖率

    Jacoco   什么是Jacoco? Jacoco是一个开源的Java代码覆盖率工具,Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAg ...

  5. html 5 canvas 绘制太极demo

    一个练习canvas的小案例.其中若有小问题,欢迎大神拍砖……^_* 代码效果预览地址:http://code.w3ctech.com/detail/2500. <div class=" ...

  6. 判断线段和直线相交 POJ 3304

    // 判断线段和直线相交 POJ 3304 // 思路: // 如果存在一条直线和所有线段相交,那么平移该直线一定可以经过线段上任意两个点,并且和所有线段相交. #include <cstdio ...

  7. Azure终于支持大容量虚拟机了-最高32核,448G内存

    Azure终于支持大容量虚拟机了-最高32核,448G内存 最近微软Azure虚拟机旗下的大容量G系列虚拟机通用版本正式上线.G系列虚拟机方案提供公有云领域最大的内存容量.最强处理能力以及空间可观的本 ...

  8. 快速上手Android数据库操作

    Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作系统上有很广泛的应用,WM采用的也是SQLite3 关于过于.原理方面的东西在这篇文章里不会提到,但是 ...

  9. workstack windows to openstack

    https://www.mirantis.com/openstack-portal/express-openstack-portal/migrating-from-vmware-for-windows ...

  10. 最大连续子数和问题-homework-03

    一.说明 这次的作业做的不好,一小点怨念ing····· 首先向TA说明下,我的小伙伴“丢下”我后我不知道,以至于发现剩下我一个的时间有点晚,我机智地找到了一个3个人的小组,又叫到了一个小伙伴,但是悲 ...