1. 除了使用VS编译C#源文件,还可以使用CSC.exe编译器编译。
- 最方便的办法是运行 开始->程序->VS-> VS Tools-> VS command prompt
在目录下运行: csc fileName.cs
- 或者在配置了相应的环境变量后在cmd窗口运行上述命令
- 如果要将文件编译成dll:
csc /t:library fileName.cs
- 如果要在编译的时候引入dll:
csc fileName.cs /r:dllName.dll
2. C#变量名区分大小写
3. C#把“未初始化变量”当做错误来处理
- 变量是类或者结构中的字段,如果没有显示初始化,创建这些变量时,会总动初始化默认值
- 变量是方法的局部变量,必须显示初始化,之后才能使用,否则会产生错误。
4. 声明一个变量仅为对象创建一个引用。但这个引用还没有指向任何对象(有别于c++)
5. 变量的作用域冲突
6. 常量
- 常量必须在声明时进行初始化
- 初始化的值不能从一个变量中提取(如果要这么做需要使用只读字段)
- 常量总是静态的,不能使用static修饰
- 示例
Const int a = 100;
7. 值类型和引用类型
- 值类型:存储在堆栈上
- 引用类型:存储在托管堆上(相互赋值只会修改引用,不会产生另一个值)
8. String
9. Switch语句
- 示例
switch (integerA)
{
case 1:
// do something
break;
case 2:
// do something
break;
default:
// do something
break;
}
- case 的值必须是常量表达式
- 如果case子句不含break或者goto跳转语句,将编译错误
- 例外:如果一个case子句为空,就可以从这个case跳转到下一个case上
- case子句的排放顺序无关紧要,但是不能有相同值的case语句
- 与c++不同,可以使用字符串作为测试变量
10. foreach循环不能改变集合中各项的值,如要改变,需使用for循环
11. goto跳转语句
12. 枚举类型
-
示例
using System;
namespace Wrox.ProCSharp.Basics
{
public enum TimeOfDay
{
Morning = 0,
Afternoon = 1,
Evening = 2
}
class EnumExample
{
public static int Main()
{
WriteGreeting(TimeOfDay.Morning);
return 0;
}
static void WriteGreeting(TimeOfDay timeOfDay)
{
switch(timeOfDay)
{
case TimeOfDay.Morning:
Console.WriteLine("Good morning!");
break;
case TimeOfDay.Afternoon:
Console.WriteLine("Good afternoon!");
break;
case TimeOfDay.Evening:
Console.WriteLine("Good evening!");
break;
default:
Console.WriteLine("Hello!");
break;
}
}
}
}
- 从字符串中提取枚举值
TimeOfDay time = (TimeOfDay)Enum.Parse(typeof(TimeOfDay), "afternoon", true);
Console.WriteLine((int)time);
|
请发表评论