你必须知道的Csharp的25个基础概念.docVIP

  • 15
  • 0
  • 约3.47万字
  • 约 29页
  • 2017-10-22 发布于北京
  • 举报
你必须知道的Csharp的25个基础概念

1.静态变量和非静态变量的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用? 6.sealed 修饰符是干什么的? 7.override 和 overload 的区别? 8.什么是索引指示器? 9.new 修饰符是起什么作用? 10.this 关键字的含义? 11.可以使用抽象函数重写基类中的虚函数吗? 12.密封类可以有虚函数吗? 13.如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有 get 和 set 两个呢? 14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗? 15.接口可以包含哪些成员? 16.类和结构的区别? 17.接口的多继承会带来哪些问题? 18.抽象类和接口的区别? 19.别名指示符是什么? 20.如何释放非托管资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射? 1.静态变量和非静态变量的区别? 答: 静态变量: 静态变量使用 static 修饰符进行声明 在所属类被装载时创建 通过类进行访问 所属类的所有实例的同一静态变量都是同一个值 非静态变量: 不带有 static 修饰符声明的变量称做非静态变量 在类被实例化时创建 通过对象进行访问 同一个类的不同实例的同一非静态变量可以是不同的值 示例: using System; using System.Collections.Generic; using System.Text; namespace Example01 { class Program { class Class1 { public static String staticStr = amp;quot;Classamp;quot;; public String notstaticStr = amp;quot;Objamp;quot;; } static void Main(string[] args) { //静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值 Console.WriteLine(amp;quot;Class1s staticStr: {0}amp;quot;, Class1.staticStr); Class1 tmpObj1 = new Class1(); tmpObj1.notstaticStr = amp;quot;tmpObj1amp;quot;; Class1 tmpObj2 = new Class1(); tmpObj2.notstaticStr = amp;quot;tmpObj2amp;quot;; //非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值 Console.WriteLine(amp;quot;tmpObj1s notstaticStr: {0}amp;quot;, tmpObj1.notstaticStr); Console.WriteLine(amp;quot;tmpObj2s notstaticStr: {0}amp;quot;, tmpObj2.notstaticStr); Console.ReadLine(); } } } 复制代码 结果: Class1s staticStr: Class tmpObj1s notstaticStr: tmpObj1 tmpObj2s notstaticStr: tmpObj2 2.const 和 static readonly 区别? 答: const 用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序 static readonly 用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化 示例: 测试类: using System; using Syst

文档评论(0)

1亿VIP精品文档

相关文档