文章目录
C#语言
- c#【读作"see sharp"】一种基于.NET的完全面向对象的高级程序设计语言。
- 开发工具首选Visual Studio
- C#的版本更替
Microsoft.NET框架
- Microsoft.NET框架是生成、运行.NET应用程序和Web Service的组件库。由公共语言运行库(CLR)和类库组成,其中类库为开发和运行.NET应用程序提供了各种支持,是与公共语言运行库紧密集成的可重的类的集合。
CLR
公共语言运行库【CLR Common Language Runtime】是.NET框架的基础,为多种编程语言提供统一的运行环境。
- 关于公共语言运行库和类库的更多知识,可参看,本专栏的另外一篇文章.NET Framework的研究
.NET的特点:
一种框架、多种语言
- 支持C#、C++、VB、F#、……等20多种高级程序设计语言
- 用基于.NET框架开发的应用程序,不论使用的是哪种高级语言,均必须在安装了.NET框架的计算机上才能运行。
中间语言(IL)
- 使用.NET框架提供的编译器可直接将源程序编译为.EXE或者.DLL文件,此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言代码(IL)。
- 优势:
- 实现平台无关
- 只要能将某种语言编译为IL代码,就可以实现这些语言之间的交互操作。
- 优势:
即时编译(JIT)
- 执行时CLR会将需要的IL代码装入内存,通过JIT编译器(Just-In-Time)将其编译成所用平台的CPU可直接执行的机器代码。
- 即时编译并不是一次把整个应用程序全部编译完,而是只编译它调用的那部分代码所在的模块。
- 优势
- 有效地提高系统的性能
- 可利用现有CPU和GPU硬件提供的功能即时生成优化后的可执行代码。
c#项目的组织
- Visual Studio开发工具用“解决方案(.sln)”和“项目”共同管理源程序文件和资源文件,一个解决方案中可包含1~n个项目。
- C#源文件的扩展名为.cs
- 一个C#源文件中一般只包含一个类【强烈建议始终这样做】
- 调试环境下:项目编译后,生成的可执行文件默认保存在项目的bin\Debug文件夹下。
基础的相关知识
命名空间
- 命令空间是一种逻辑划分,而非物理上的存储分类。
- 是对类的一种划分,类似于目录和文件的划分形式 。
方法调用
- 静态方法调用
- 格式:
命名空间.命名空间….命名空间.类名.静态方法名(参数,…);
- 格式:
System.Console.WritleLine(”Hello World!”);
- 实例方法调用
- 首先创建实例,然后通过实例名.方法名调用
System.Text.StringBuilder b = new StringBuilder();
b.Append(“abcd”);
using关键字
- 作为引用指令
using System.Windows.Forms;
- 作为别名指令
using WinForm = System.Windows.Form;
using WpfForm = System.WPF.Form;
- 作为语句(定义一个范围)
- 程序执行到“}”时,就会自动释放font1对象,例如:字体、画笔、打开文件的类等…
using (var font1 = new Font("Arial", 10.0f);)
{
//
}
Main方法
static void Main(string[] args)
{
/*第一个C#程序*/
Console.WriteLine("Hello World!");
Console.ReadKey();
}
- 注意事项
- 一个应用程序只能有一个Main方法。
- Main方法必须声明为static
- Main方法的返回类型只能是 void 或者 int。
- 返回类型为int时,一般用于返回错误代码
- Main方法可以放在任何一个类中。
- 一般将Main方法放在Program
c#注释
- 单行注释
- 以“//”符号开始,任何位于“//”符号后的本行文字都视为注释。
- 块注释
- 以“/”开始,“/”结束。任何介于这对符号之间的文字块都视为注释。
- XML注释
- “///”符号是一种XML注释方式。
- 在用户自定义的类型如类、接口、枚举等或者在其成员上方,或者命名空间的声明上方连续键入3个斜杠字符。
- 可以在键入方法名和参数的过程中看到用XML注释的智能提示。
- #region注释方式
- #region是一条预处理指令,用于给程序段添加逻辑功能注释,让某一部分代码实现的逻辑功能看起来更清晰。
- 被包围的代码还可以折叠和展开。
命名规范
- 类名、方法名、属性名全部使用Pascal命名法,即所有单词连写,每个单词的第一个字母大写,其他字母小写。
- 例如:HelloWorld、GetData等。
- 变量名、对象名、方法的参数名全部使用Camel命名法,即所有单词连写,但是第一个单词全部小写,其他每个单词的第一个字母大写。
- 例如:userName、userAge等。
- 如果是私有字段,为了和具有相同名字的属性名区分,私有的字段名也可以用下划线(“_”)开头。
- 如:属性名为Age,私有字段名可以为age或者_Age。
控制台应用程序
普通的输入和输出
- 控制台输出
- 通过System.Console类提供的静态Write、WriteLine方法实现控制台输出。
- Console.Write();
- 把各种类型的数据或对象转换成字符串写入标准输出。
- Console.WriteLine();
- 与Write的区别:自动输出回车换行符(“\r\n”)。
- 控制台输入
- Console.ReadKey()
- 从标准输入流读取用户按下的字符或功能键。
var c = Console.ReadKey();
- Console.ReadLine();
- 从标准输入流读取一行字符。
string s = Console.ReadLine();
- Console.ReadKey()
输出格式化数据
- Console.WriteLine(“格式化表示”, 参数序列);
- Console.Write(“格式化表示”, 参数序列);
int x=10, y=20, z=30;
//输出10+20+30=60
Console.WriteLine("{0}+{1}+{2}={3}", x, y, z, x+y+z); Console.WriteLine($"{0}+{y}+{z}={x+y+z}");
//输出60=20+30+10
Console.WriteLine("{3}={1}+{2}+{0}", x, y, z, x+y+z);
Console.WriteLine($"{x+y+z}={y}+{z}+{x}");
- 格式化字符串的一般表示形式
{N [, M][: 格式码]}
- N:从零开始的整数,表示第几个参数。
- M :可选,用整数表示最小长度。
若参数N的长度小于M,默认用空格填充;若大于,按实际数输出。
- M为负左对齐,M为正右对齐;
- 格式码:可选。
- C—货币形式
- D—十进制
- F—固定精度
- E—指数
- N—用逗号分隔千位数字
- P—百分比
- X—十六进制
- 格式码:可选。
格式码也可以用占位符表示:0—强制占位符、#—有效占位符
- 利用string.Format方法格式化字符串
- 在控制台应用程序中,可以先用String.Format方法拼接字符串,再用WriteLine方法输出;
- 该方法可于各种类型的应用程序(桌面、Web、移动)。
int i = 123;
string s1 = string.Format("{0:d6}", i);
string s2 = $"{i:d6} "
//结果:s1=000123,s2=000123
Console.WriteLine("s1="+s1+",s2="+s2);
- 利用ToString方法格式化字符串
- 如果是一个变量,使用ToString方法可能更简单,该方法同样适用于各种类型的应用程序。
int n1 = 12;
string s1 = n1.ToString("X4"); //X:十六进制。结果:000C
string s2 = n1.ToString("d5"); //结果:00012
快速键入c#代码
- 方法1:连续按两次键
- 方法2:在要插入代码段的位置处,鼠标右击选择“外侧代码”,然后选择要插入的代码段。
快速调整代码格式
- 删除再键入最后一个大括号
本文含有隐藏内容,请 开通VIP 后查看