根据提供的文件内容,我们可以整理出以下关于 .NET 面试相关的知识点: ### 1. 访问修饰符 在 C# 中有四种主要的访问级别:`private`、`protected`、`public` 和 `internal`。 - **Private**: 私有成员只能在声明它的类型内部被访问。 - **Protected**: 受保护成员可以在声明它的类型以及该类型的派生类型中被访问。 - **Public**: 公共成员可以从任何地方被访问。 - **Internal**: 内部成员只能在同一程序集内被访问。 ### 2. ASP.NET 页面间传递值的方法 在 ASP.NET 中,可以通过以下几种方式在页面间传递值: - **使用 QueryString**:例如,在 URL 中添加参数如 `http://example.com/?id=1` 或者使用 `Response.Redirect()` 方法。 - **使用 Session**:将值存储在 Session 对象中,可以在整个会话期间跨页面共享数据。 - **使用 Server.Transfer**:服务器端页面跳转,可以用来在应用内部不同页面之间传递数据。 ### 3. 斐波那契数列的实现 通过递归方法实现斐波那契数列: ```csharp public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if (i > 0 && i <= 2) return 1; else return Foo(i - 1) + Foo(i - 2); } } ``` ### 4. C# 中的引用类型与值类型 - **值类型**(如 `int`):存储的是实际的数据值。 - **引用类型**(如 `object`):存储的是指向数据的引用。 ### 5. Override 与 Overload 的区别 - **Override**:重写,用于派生类覆盖基类中的虚方法。 - **Overload**:重载,允许在一个类中定义多个同名但参数列表不同的方法。 ### 6. B/S 架构系统中的 Session、Cookie、Application 在基于浏览器/服务器架构的系统中,Session、Cookie 和 Application 都是用于管理会话状态的机制。 - **Session**:为每个用户保存会话状态,通常存储在服务器上。 - **Cookie**:客户端会话状态管理的一种方式,数据存储在客户端浏览器中。 - **Application**:全局变量,存储所有用户都可以访问的数据。 ### 7. 清空 TextBox 的文本 遍历当前表单中的所有控件,并清空 TextBox 控件的文本值: ```csharp foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control; tb.Text = String.Empty; } } ``` ### 8. 数组排序算法 实现一个简单的冒泡排序算法: ```csharp int[] array = new int[*]; // 假设数组已初始化 int temp = 0; for (int i = 0; i < array.Length - 1; i++) { for (int j = i + 1; j < array.Length; j++) { if (array[j] < array[i]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } ``` ### 9. C# 类实例化问题 在 C# 中,类的实例化不一定要通过 `new` 关键字来完成。如果类没有显式地声明构造函数,则默认情况下编译器会自动生成一个无参构造函数。 ### 10. 字符串操作示例 从文本框读取字符串并计算奇数位置数字之和: ```csharp int tNum = Convert.ToInt32(this.TextBox1.Text); int sum = 0; for (int i = 0; i <= tNum; i++) { if (i % 2 == 1) { sum += i; } else { sum -= i; } } Console.WriteLine(sum.ToString()); ``` ### 11. .NET B/S 架构系统的组成部分及其关系 - **表示层**(UI):处理用户界面,展示数据。 - **业务逻辑层**(Business Logic Layer):处理应用程序的核心功能。 - **数据访问层**(Data Access Layer):处理数据的存储和检索。 ### 12. 类与继承示例 创建一个基类 A 并定义一个虚方法 `PrintFields()`,然后创建一个派生类 B 来重写这个方法: ```csharp using System; class A { public A() { PrintFields(); } public virtual void PrintFields() { } } class B : A { int x = 1; int y; public B() { y = -1; } public override void PrintFields() { Console.WriteLine("x={0}, y={1}", x, y); } } ``` 当创建 B 类的实例时,将会打印 `x=1, y=-1`。 ### 13. 什么是托管代码 托管代码是指由 .NET 运行时(Common Language Runtime, CLR)管理的代码。这意味着代码的安全性和稳定性得到了保障。 ### 14. CTS、CLS 和 CLR 的区别 - **CTS**(Common Type System):定义了 .NET Framework 中所有类型必须遵循的规则。 - **CLS**(Common Language Specification):定义了一组所有语言都应该支持的标准类型和特性。 - **CLR**(Common Language Runtime):负责执行托管代码,管理内存分配等。 ### 15. 装箱与拆箱的概念 - **装箱**:将值类型转换为引用类型的过程。 - **拆箱**:将引用类型转换回值类型的过程。 ### 16. unsafe 关键字的作用 `unsafe` 关键字允许使用指针,但使用不当可能会导致安全问题。 ### 17. 强类型系统的概念 强类型系统指的是在编译时检查类型的系统,这有助于避免运行时错误。 ### 18. .NET 数据库访问组件 - **DataSet**:用于存储和操作从数据库获取的数据。 - **DataCommand**:用于执行 SQL 命令。 - **DataAdapter**:用于填充 DataSet,并将数据更新回数据库。 ### 19. ASP.NET 认证方式 ASP.NET 提供多种认证方式,包括但不限于: - **Windows 身份验证**(默认) - **Forms 身份验证** - **Passport 身份验证** ### 20. Code-Behind 的概念 Code-Behind 是一种编程模型,其中 UI 设计与业务逻辑分离,使得维护更加容易。 ### 21. .NET 编程理念 .NET 框架强调面向对象编程、类型安全和垃圾回收等特性,简化了开发过程。 ### 22. Web Service 的创建方式 - **使用 WSDL.exe 工具**:自动生成服务代理类。 - **使用 Visual Studio 的 Add Web Reference 功能**:轻松添加对 Web 服务的引用。 ### 23. .NET Remoting 的工作原理 .NET Remoting 使得对象能够在不同的应用程序域或不同的计算机之间通信。 ### 24. C# 中 string 类型的 null 和空字符串的区别 - `string str = null`:字符串变量未被初始化。 - `string str = ""`:字符串变量初始化为空字符串。 ### 25. 类 (class) 与 结构体 (struct) 的区别 - **Class**:引用类型,可以 null,存在于堆内存。 - **Struct**:值类型,不可 null,存在于栈内存。 ### 26. 委托 (Delegate) 的基本概念 委托是一种引用类型数据,它引用一个具有相同签名的方法。委托可以看作是对函数的引用,常用于实现回调和事件处理。
- 粉丝: 5
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助