{public class Class1
{internal String strInternal = null;
public String strPublic;internal protected String strInternalProtected = null;
}
}
背景:
阅读新闻 C#基础在问答中学习
新闻简介:1.静态成员和非静态成员的区别?
2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用? 6.sealed 修饰符是干什么的? 7.override 和 overload 的区别? 8.什么是索引指示器? 9.new 修饰符是起什么作用? 10.this 关键字的含义? 11.可以使用抽象函数重写基类中的虚函数吗? 12.密封类可以有虚函数吗? 13.什么是属性访问器? 14.abstract 可以和 virtual 一起使用吗?可以和 override 一起 关 键 词:
{public class Class1 {internal String strInternal = null; public String strPublic;internal protected String strInternalProtected = null; } } 结果
Example05 项目里的 Class3 类无法访问到 Class1 的 strInternal 成员,因为它们不在同一个程序集里。但却可以访问到 strInternalProtected 成员,因为 Class3 是 Class1 的继承类
Example05 项目的 Program 类既无法访问到 Class1 的 strInternal 成员,也无法访问到 strInternalProtected 成员,因为它们既不在同一个程序集里也不存在继承关系
答: sealed 修饰符表示密封 用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥 用于方法和属性时,表示该方法或属性不能再被继承,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员 通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱[Page] 恰当的利用 sealed 修饰符也可以提高一定的运行效率,因为不用考虑继承类会重写该成员 示例: using System;using System.Collections.Generic;using System.Text;namespace Example06{ class Program { class A {public virtual void F() { Console.WriteLine(\"A.F\");} public virtual void G() { Console.WriteLine(\"A.G\");} } class B : A {public sealed override void F() { Console.WriteLine(\"B.F\");} public override void G() { Console.WriteLine(\"B.G\");} } class C : B {public override void G() { Console.WriteLine(\"C.G\");} If you believe an article violates your rights or the rights of others, please contact us.
相关新闻
友情链接
|
赞助商广告
|
最新文章
Digg排行
热门评论
|