面试开发高频语法C#

张开发
2026/4/9 14:41:13 15 分钟阅读

分享文章

面试开发高频语法C#
作为一名 C# 开发者无论是日常开发、快速查语法还是准备面试刷题都需要一份精简、实用、带详细注释的高频语法速查手册。我整理了 C# 开发 面试中最常用、最高频的语法知识点涵盖 IO 文件流、字符串、集合、LINQ、异步、反射、委托事件等每一句都附带注释解释不用死记硬背遇到直接复制查阅新手也能快速上手。欢迎大家点赞收藏以备不时之需。一、文件操作类IOplaintextFile静态快速读写文件一行代码完成读写不用创建对象FileInfo文件对象操作面向对象方式适合多次操作同一个文件Directory目录操作创建、删除、遍历文件夹DirectoryInfo目录对象面向对象操作文件夹Path路径处理拼接路径、取文件名、后缀避免路径错误DriveInfo磁盘信息查看C盘D盘容量、格式二、流相关类plaintextFileStream文件字节流读写图片、视频、二进制文件StreamReader文本读取专门读纯文本StreamWriter文本写入专门写纯文本MemoryStream内存流数据在内存里读写不写硬盘速度快BufferedStream缓冲流先存缓冲区再读写提升大文件性能NetworkStream网络流网络通信收发数据用BinaryReader / BinaryWriter二进制读写读写非文本格式三、IO 常用方法文件plaintextFile.ReadAllText()一次性读取文本全部内容File.WriteAllText()一次性写入文本覆盖原有内容File.AppendAllText()追加文本不覆盖File.ReadAllBytes()读取为字节数组图片/文件File.WriteAllBytes()把字节数组写入文件File.Copy()复制文件File.Move()移动/重命名文件File.Delete()删除文件File.Exists()判断文件是否存在目录plaintextDirectory.CreateDirectory()创建文件夹Directory.Delete()删除文件夹Directory.Exists()判断文件夹是否存在Directory.GetFiles()获取文件夹里所有文件路径Directory.GetDirectories()获取子文件夹路径路径plaintextPath.Combine()智能拼接路径自动加\Path.GetFileName()获取文件名后缀Path.GetExtension()获取文件后缀.txt/.exePath.GetDirectoryName()获取所在文件夹路径Path.GetFullPath()获取完整绝对路径二、字符串与文本处理关键字 / 类plaintextstring字符串不可变每次修改生成新对象StringBuilder字符串拼接神器频繁拼接必用高效Regex正则表达式验证手机号、邮箱、提取内容Encoding编码UTF8/ASCII 文字转字节、字节转文字常用方法plaintextLength字符串长度ToUpper()转大写ToLower()转小写Trim()去掉前后空格TrimStart()去掉开头空格TrimEnd()去掉结尾空格IsNullOrEmpty()判断是否为null或空字符串IsNullOrWhiteSpace()判断是否为null/空/全空格Contains()是否包含某段文字StartsWith()是否以某文字开头EndsWith()是否以某文字结尾IndexOf()查找字符第一次出现的位置LastIndexOf()查找字符最后一次出现的位置Substring()截取字符串Replace()替换内容Split()按符号分割成数组Join()把数组拼接成字符串Format()格式化字符串Compare()比较两个字符串Equals()判断是否相等StringBuilderplaintextAppend()追加内容AppendLine()追加一行自动换行AppendFormat()格式化追加Clear()清空ToString()转成string正则plaintextRegex.IsMatch()是否匹配验证格式Regex.Match()获取第一个匹配结果Regex.Matches()获取所有匹配结果Regex.Replace()正则替换Regex.Split()正则分割三、集合与泛型命名空间plaintextSystem.Collections老版非泛型集合System.Collections.Generic新版泛型集合必用System.Linq查询集合Where/Select常用集合plaintextList泛型列表最常用增删改查方便DictionaryTKey,TValue键值对集合查得最快HashSet去重集合不允许重复Queue队列先进先出Stack栈先进后出ArrayList老版非泛型集合装箱拆箱性能低Hashtable老版非泛型字典SortedList有序键值对ObservableCollectionUI自动刷新集合WPF/MAUI常用方法plaintextAdd()添加一个AddRange()添加一组Remove()删除指定对象RemoveAt()按索引删除Clear()清空Contains()是否包含Count元素数量Find()查找第一个符合条件FindAll()查找所有符合条件Sort()排序Reverse()反转字典专用plaintextContainsKey()是否包含某个键ContainsValue()是否包含某个值TryGetValue()尝试取值不抛异常四、LINQ 查询关键字plaintextfrom从哪个集合where筛选条件select选择结果orderby排序descending倒序group by分组join关联多个集合into暂存结果let定义临时变量常用扩展方法plaintextWhere()筛选Select()投影/提取字段First()取第一个没有则抛异常FirstOrDefault()取第一个没有返回默认值不报错Single()确保只有一个SingleOrDefault()只有一个或没有Last()最后一个LastOrDefault()最后一个或默认Any()是否有至少一个满足条件All()是否全部满足Count()数量Sum()求和Min()最小Max()最大Average()平均值Distinct()去重Skip()跳过前N个Take()取N个分页用ToList()转ListToArray()转数组ToDictionary()转字典ToHashSet()转去重集合五、类型转换 可空类型转换plaintextParse()字符串转值类型失败抛错TryParse()安全转换失败返回false不抛错推荐Convert.ToXXX()强制类型转换ToString()转字符串is判断是否是某类型as安全转换失败返回null(T)强制类型转换可空 空值语法plaintext?可空类型int? 可以存null?.空条件对象为null不执行避免报错??空合并左边为null用右边值??空合并赋值为null才赋值!空原谅告诉编译器我保证不为null六、日期时间plaintextDateTime日期时间结构体DateTime.Now当前时间本地DateTime.UtcNow国际标准时间跨时区用DateTime.Today今天日期无时间TimeSpan时间间隔小时/分钟/天差AddDays()加天数AddHours()加小时ToString(“yyyy-MM-dd”)格式化日期Parse()字符串转日期TryParse()安全转日期Compare()比较时间先后七、序列化与 JSONplaintextSystem.Text.Json官方JSON库Newtonsoft.Json最流行第三方库Json.NETJsonSerializer.Serialize()对象转JSON字符串JsonSerializer.Deserialize()JSON字符串转对象JsonConvert.SerializeObject()Json.NET转JSONJsonConvert.DeserializeObject()Json.NET转对象八、异步编程plaintextasync标记方法为异步await等待异步完成不卡界面Task异步任务无返回值Task异步任务带返回值Task.Run()在线程池运行任务Task.WhenAll()等待所有任务完成Task.WhenAny()等待任一任务完成ValueTask高性能异步减少内存分配async Main可异步主函数九、反射 特性plaintextType类型信息类GetType()获取对象类型typeof()获取类的类型nameof()获取变量/类名字符串Activator.CreateInstance()动态创建对象MemberInfo成员信息基类MethodInfo方法信息PropertyInfo属性信息Attribute特性基类[Serializable]可序列化可转字节/存储[Obsolete]标记方法过时[Flags]枚举可按位组合十、委托、事件、Lambdaplaintextdelegate委托定义方法的容器Action无返回值委托Func有返回值委托Predicate返回bool的委托判断用event事件安全的委托只能订阅/触发Lambda(){} 匿名方法简化写法表达式体简化方法/属性十一、泛型约束plaintextwhere T : classT必须是引用类型where T : structT必须是值类型where T : new()T必须有无参构造where T基类T必须是该类或子类where T接口T必须实现该接口十二、常用设计模式相关语法plaintextusing自动释放资源实现IDisposablelock线程锁保证多线程安全yield return迭代器按需返回元素节省内存readonly运行时只读字段const编译时常量static静态成员全局唯一不属于对象sealed密封类/方法不能被继承/重写abstract抽象类/方法必须被继承实现virtual虚方法可被重写override重写虚方法/抽象方法partial分部类/方法一个类分多个文件写十三、WinForm / WPF 常用plaintextMessageBox.Show()弹出提示框Application.Exit()退出程序Invoke()跨线程更新UIWinFormBeginInvoke()异步跨线程UIDispatcherWPF跨线程调度器DependencyProperty依赖属性WPF绑定专用十四、调试与诊断plaintextDebug.WriteLine()输出调试信息仅调试模式Console.WriteLine()控制台输出#if DEBUG仅调试模式执行throw new Exception()主动抛异常try-catch-finally捕获异常、最终执行释放资源本文整理的都是 C# 开发 面试真正高频 的语法用法没有冷门知识点全部带注释遇到直接复制使用非常适合面试前快速复习新手入门系统学习持续更新 C# 干货内容

更多文章