C#面试精华:控件句柄、窗口操作与货币格式化技巧
需积分: 9 5 浏览量
更新于2024-09-14
收藏 75KB DOC 举报
在.NET框架下的C#和VB.NET编程中,面试者经常会被问到一些关键的细节问题。以下是一些重要的知识点总结:
1. **获取控件句柄**:
在C#中,`this`关键字用于获取当前窗体或控件的句柄,例如:`this.Controls["控件名"]`。而在VB.NET中,对应的是`Me`,例如:`Me.Controls("控件名")`。这两个语法都用于访问窗体或控件集合中的元素。
2. **取消窗体关闭**:
当试图关闭窗体时,可以通过重写`Closing`事件处理方法来阻止默认行为。在C#中,如代码所示:
```csharp
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true; // 取消关闭操作
}
```
在VB.NET中,这行代码将保持不变。
3. **Application.Exit与Form.Close的区别**:
- `Application.Exit`是退出整个应用程序的操作,会关闭所有打开的窗口并结束进程。
- `Form.Close()`则是关闭单个窗口,如果该窗口是程序的主窗口,它可能只是隐藏而不是完全退出。
4. **货币格式化**:
C#提供了`System.Globalization`命名空间中的`CultureInfo`类来实现货币格式的本地化。例如,为了按英国习惯显示货币,可以这样设置:
```csharp
CultureInfo myCulture = new CultureInfo("en-GB");
decimal y = ...;
string str = String.Format(myCulture, "MyAmount={0:C}", y); // "{0,10:C}"表示保留两位小数,不足则填充零
```
这里`"{0:C}"`是格式说明符,用于货币格式。
5. **密码生成规则的实现**:
要设计一个遵循特定规则的密码生成器,需考虑条件逻辑。例如,可以使用循环和随机选择字符,同时检查是否满足规则。由于规则复杂,这里提供了一个简化版本的伪代码示例:
```csharp
string[] allowedChars = {"K", "L", "M", "N", "O"};
int[] charCounts = new int[5]; // 记录每个字符出现次数
Random random = new Random();
while (true) {
// 生成单词
List<char> word = new List<char>();
// 按规则添加字符
// ...实现规则1-6
if (word.Count >= 2 && !word.Contains('K') && charCounts.Contains(x => x > 1) && !word.Contains('M') && ...) {
break;
}
// 重新生成直到满足条件
}
string password = string.Join("", word);
```
具体实现会根据规则进行复杂的数据结构和算法设计。
以上知识点涵盖了C#编程中关于句柄获取、事件处理、货币格式、以及遵循复杂规则的密码生成,这些都是面试中常被考察的领域。准备充分,能够有效应对面试挑战。
2020-02-09 上传
2009-08-16 上传
2019-03-23 上传
2016-10-19 上传
2009-12-21 上传
2022-11-05 上传
2024-07-15 上传
2021-10-10 上传
战歌IT
- 粉丝: 122
- 资源: 2393
最新资源
- GEC2410B实验箱 linux实验
- 单片机的40个实验.pdf
- 一种基于编码的关联规则挖掘算法
- 有关数字地和模拟地分割的介绍.pdf
- 适合新手入门的C#中文教程
- 移动代理服务器MAS短信API2.2开发手册(.Net)
- 移动代理服务器MAS短信API2.2开发手册(DB接口)
- 基于事务相似矩阵的关联规则挖掘算法
- 组态王在楼宇监控的应用
- 分布式关联规则挖掘系统实现
- dynamips 报错及非正常现象的解决办法
- 英语完形填空的考试系统
- 演讲文本Come on in and sit in the aisles./ p6 u& j*
- PHPCMS 整站代码分析讲解
- VC++动态链接库编程深入浅出
- 高效使用JUnit(如何提升JUnit在Java开发中的价值)