- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C_关键字详解(经典)
关键字是对编译器有特殊意义的预定义的保留标识符。
它们不能在程序中用作普通标识符,除非在它们前面加上@前缀。
第一部分
一.访问关键字:base,this
~~~~base:访问基类的成员。
用于从派生类中访问基类的成员,
1.调用基类上已经被重写的方法。
2.指定创建派生类实例时应调用的基类构造函数。
**对基类的访问只能在 派生类的构造函数 实例的方法 实例的属性访问器 中。
属性访问器:get,set函数。
注意:!!!!!!!!!
不能在静态方法中使用base关键字。
例:
在子类的方法中写 base.GetInfo();调用基类的方法。
基类中的构造函数重载了,Mybase()和Mybase(int i);
在子类的构造函数中public MyDerived():base(int i)
public MyDerived(int i):base()
~~~~this:引用当前对象。
用于引用为其调用方法的当前实例。
静态成员函数没有this指针。
可以用于从 构造函数,实例方法,实例访问器 中访问成员。
this的一般用途:
1.限定被相似的名子隐藏的成员
public void A(int a, int b )
{
this.a=a;
this.b=b;
}
2.将对象作为参数传递到函数中
public void ShowInstance()
{
print(this);
console.writeline(lalalalllalalala);
}
3.声明索引器
public int this[int param]
{
get{ return array[param]; }
set{ array[param]=value; }
}
注意!!!!!!静态方法,静态属性访问器或字段声明中不能用this。
二.转换关键字:explicit, implicit, operator
1~~~~explicit:
用于声明用户定义的 显式类型转换运算符。
例:
class MyType
{
public static explicit operator MyType(int i)
{
//从int显式转换成MyType类型的代码!!!
}
}
显式类型转换符必须通过类型转换调用。需要在转换失败时抛出异常。
if(转换失败的条件)
throw new ArgumentException();
int i;
MyType x = (MyType)i;
注意!!!!!!!如果转换可能导致信息丢失,则使用explicit关键字。
2~~~~implicit:
用于声明用户定义的 隐式类型转换运算符。
例:
class MyType
{
public static implicit operator int(MyType i)
{
//从MyType隐式转换成Mint类型的代码!!!
}
}
MyType i;
int x = i;
注意!!!!!!!!!!!由于隐式转换在程序员未指定的情况下发生,所以必须防止出现不良的后果。只有在一定不会出现异常和信息丢失时才可以使用implicit,否则使用expicit。
3~~~~operator:
用于声明用户在类或结构中自定义的运算符。有四种形式:
public static 结果类型 operator unary-operator (参数类型 参数名)
public static implict operator 目标类型 (输入类型 参数名)
public static explict operator 目标类型 (输入类型 参数名)
//implict中,目标类型一般是封闭类型,例如:int, double, byte等。
//explict中,目标类型一般是自定义类型,例如:MyType等。
三.文字关键字:null,false,true
1~~~~null:
表示不引用任何对象的空引用的值。null是引用类型的默认值。
2~~~~true:
true运算符:用户自定义的类型可以重载true运算符,用来表示是否满足条件,若满足则返回bool值的true,否则返回false。
注意!!!!!!!若在自定义类型中定义了true运算符,则必须定义false运算符。
true文字值:表示bool的真。
3~~~~false:
false运算符:用户自定义的类型可以重
原创力文档


文档评论(0)