C程序员面试必答

上传人:M****1 文档编号:491345448 上传时间:2022-10-23 格式:DOCX 页数:29 大小:28.35KB
返回 下载 相关 举报
C程序员面试必答_第1页
第1页 / 共29页
C程序员面试必答_第2页
第2页 / 共29页
C程序员面试必答_第3页
第3页 / 共29页
C程序员面试必答_第4页
第4页 / 共29页
C程序员面试必答_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C程序员面试必答》由会员分享,可在线阅读,更多相关《C程序员面试必答(29页珍藏版)》请在金锄头文库上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页C# 程序员面试必答1.静态变量和非静态变量的区别? 答: 静态变量: 静态变量使用 static 修饰符进行声明 在所属类被装载时创建 通过类进行访问 所属类的所有实例的同一静态变量都是同一个值 非静态变量: 不带有 static 修饰符声明的变量称做非静态变量 在类被实例化时创建 通过对象进行访问 同一个类的不同实例的同一非静态变量可以是不同的值 示例: using System;using System.Collections.Generic;using System.Text;namespace Examp

2、le01 class Program class Class1 public static String staticStr = "Class" public String notstaticStr = "Obj" static void Main(string args) /静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值 Console.WriteLine("Class1s staticStr: 0", Class1.staticStr); Class1 tmpObj1

3、 = new Class1(); tmpObj1.notstaticStr = "tmpObj1" Class1 tmpObj2 = new Class1(); tmpObj2.notstaticStr = "tmpObj2" /非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值 Console.WriteLine("tmpObj1s notstaticStr: 0", tmpObj1.notstaticStr); Console.WriteLine("

4、tmpObj2s notstaticStr: 0", tmpObj2.notstaticStr); Console.ReadLine(); 复制代码结果: Class1s staticStr: Class tmpObj1s notstaticStr: tmpObj1 tmpObj2s notstaticStr: tmpObj2 2.const 和 static readonly 区别? 答: const 用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序 static readonly 用 static readonly 修饰符声明的成员依然是变量,只

5、不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化 示例: 测试类: using System;using System.Collections.Generic;using System.Text;namespace Example02Lib public class Class1 public const String strConst = "Const" public static readonly String strStaticReadonly = "StaticReadonl

6、y" /public const String strConst = "Const Changed" /public static readonly String strStaticReadonly = "StaticReadonly Changed" /5-1-a-s-p-x复制代码客户端代码: using System;using System.Collections.Generic;using System.Text;using Example02Lib;namespace Example02 cl

7、ass Program static void Main(string args) /修改Example02中Class1的strConst初始值后,只编译Example02Lib项目 /然后到资源管理器里把新编译的Example02Lib.dll拷贝Example02.exe所在的目录,执行Example02.exe /切不可在IDE里直接调试运行因为这会重新编译整个解决方案! /可以看到strConst的输出没有改变,而strStaticReadonly的输出已经改变 /表明Const变量是在编译期初始化并嵌入到客户端程序,而StaticReadonly是在运行时初始化的 Console.

8、WriteLine("strConst : 0", Class1.strConst); Console.WriteLine("strStaticReadonly : 0", Class1.strStaticReadonly); Console.ReadLine(); 复制代码结果: strConst : Const strStaticReadonly : StaticReadonly 修改后的示例: 测试类: using System;using System.Collections.Generic;using Syste

9、m.Text;namespace Example02Lib public class Class1 /public const String strConst = "Const" /public static readonly String strStaticReadonly = "StaticReadonly" public const String strConst = "Const Changed" public static readonly String strStaticRe

10、adonly = "StaticReadonly Changed" 复制代码结果 strConst : Const strStaticReadonly : StaticReadonly Changed 3.extern 是什么意思? 答: extern 修饰符用于声明由程序集外部实现的成员函数 经常用于系统API函数的调用(通过 DllImport )。注意,和DllImport一起使用时要加上 static 修饰符 也可以用于对于同一程序集不同版本组件的调用(用 extern 声明别名) 不能与 abstract 修饰符同时使用51aspx 示例: usi

11、ng System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace Example03 class Program /注意DllImport是一个Attribute Property,在System.Runtime.InteropServices命名空间中定义 /extern与DllImport一起使用时必须再加上一个static修饰符 DllImport("User32.dll") public static

12、extern int MessageBox(int Handle, string Message, string Caption, int Type); static int Main() string myString; Console.Write("Enter your message: "); myString = Console.ReadLine(); return MessageBox(0, myString, "My Message Box", 0); 复制代码结果: 4.abstract 是什么意思? 答:

13、abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员 abstract 不可以和 static 、virtual 、override 一起使用 声明为 abstract 成员可以不包括实现代码,但只有类中还有未实现的抽象成员,该类就不可以被实例化,通常用于强制继承类必须实现某一成员 示例: using System;using System.Collections.Generic;using System.Text;namespace Example04 #region 基类,抽象类 public abstract class BaseClass /抽象属性,同时具有get和set访问器表示继承类必须将该属性实现为可读写 public abstract String Attribute get; set; /抽象方法,传入一个字符串参数无返回值 public abstract void Function(String value); /抽象事件,类型为系统预定义的代理(dele

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号