《C#高级编程》笔记系列--点滴记录(持续更新中……)
1.C#本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#支持的另一些特性,.NET却不支持(例如运算符重载)
2.编译分两个阶段:
(1)把源代码编译为Microsoft中间语言(IL)。
(2)CLR把IL编译为平台专用的代码。
3.通用类型系统(CTS),将不同语言的类型映射为中间语言的类型,从而提供了语言的互操作性。
4.修饰符(public,static),操作符(==,>,<)
5.变量的作用域
(1)同名的局部变量不能在同一作用域中申明两次。
(2)类的字段和局部变量允许使用相同的名字。
6.常量Const总是静态的,不必也不允许加Static修饰符
7.常量Const和ReadOnly字段的区别在于只读字段可以从一个变量中提取的值去初始化常量。
8.值类型存储在堆栈中,而引用类型存储在托管堆上。C#中,简单数据类型(int,float,byte)、枚举类型和结构(struct)类型都是值类型。包含在引用类型内的值类型不会被存储在栈中,而是堆中,它被包含于引用类型对象中。值类型数组(例如双精度或整型数组)是在堆中存放,而不是栈中。只有保存数组引用的值是存放在栈中。这是因为所有数组类型都隐含派生于System.Array,它们都是引用类型。
9.decimal
类型不是基本类型,所以在计算时使用该类型会有性能损失。float 32位 double 64位 decimal
128位
10.可以在字符串字面量的前面加上字符@,甚至允许在字符串字面量中包含换行符:
string
jabberwocky=@"'Twasbrilligandtheslithytoves
Didgyreandgimbleinthewabe.";
11.Foreach集合中迭代的各项的值不能改变,但若为对象,其属性是可以改变。
12.Continue语句退出当前循环,执行下一次循环
13.预处理指令#define #undef #if #elif #else #endif #warning #error #pragma
warning disable 169 #line #region
14.out 关键字的用法。
15.C#的不支持可选参数。
16.所有的.NET类都派生于System.Object。我们定义类时,假定没有指定基类,编译器会自动假定这个类派生于System.Object基类
(最后更新于2007-10-28 14:00)

作者:CoderZh
公众号:hacker-thinking (一个程序员的思考)
独立博客:http://blog.coderzh.com
博客园博客将不再更新,请关注我的「微信公众号」或「独立博客」。
作为一个程序员,思考程序的每一行代码,思考生活的每一个细节,思考人生的每一种可能。
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 2025,回顾出走的 10 年
· 分享 3 款基于 .NET 开源且免费的远程桌面工具
· 【保姆级教程】windows 安装 docker 全流程
· 由 MCP 官方推出的 C# SDK,使 .NET 应用程序、服务和库能够快速实现与 MCP 客户端
· 基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程