开始学习 MSDN 的帮助文档,文档中很多东西并没有细讲,所以应该要对其中出现的每一个知识点,多想想细节,多翻阅其他资料。持续更新。。。
Visual Basic 和 Visual C#
Visual C#
C#编程指南
关于 static ,可以参考这两篇文章
C# 之 static的用法详解
C# static 看了就懂
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.WriteLine("Press anykey to exit");
Console.ReadKey();
}
}
关于 Main 方法 |
---|
返回值类型 —— void 、int |
参数列表 —— 可以无参数,可以是string数组 |
Main 方法中定义的参数args是一个string(字符串)类型的数组,
该数组的内容为 —— 在命令行下调用本程序时提供的参数。
与 C++ 不同,该数组不包含可执行 (exe) 文件的文件名。
static void Main(){} //默认私有,即使设为public,VS也会背后将其做处理
static int Main(){ return 0; }
static void Main(string[] args){ }
static int Main(string[] args){ return 0; }
注意:如果不给Main()方法提供一个修饰符,那么Main()方法默认就是私有的,当然Main()方法可以定义成共有的,但是Visual Studio会把程序的Main()自动定义成隐式私有的,以确保其他程序不能直接吊用另一个程序的入口点
选择怎样构造Main()方法要基于两个问题。
第一,当Main()完成且程序终止时,是否要向系统返回一个值。
第二,是否需要处理用户提供的命令行参数?如果是,他们将被保存到string数组中。
绝大多数的Main()方法会以void作为返回值,但是C#和其他C类型的语言一样,都可以从Main()返回一个int。
根据惯例,返回值0表示程序正常结束,而其他值如(-1)表示程序有异常发生
class Program
{
static int Main(string[] args)
{
foreach (string str in args) //命令行参数,没有用命令行就是空的
Console.WriteLine(str);
Console.ReadKey();
return 0;
}
}
1、C#默认的访问权限是private类型,所以这个Main函数式private的 |
---|
2、Main函数为什么是static的 |
---|
static函数是属于类的,不能通过类的实例化(new一个对象)来调用。Main函数是操作系统运行这个程序的入口,操作系统要进入这个函数,通常应该是new一个对象,然后,通过对象来调用该函数,但是这个类(包含main方法的类)只是为了提供给操作系统来调用的接口用的。
3、静态方法与非静态方法的区别 |
---|
static方法:只加载到内存一次,一直到程序结束都存在在程序中,没有放在堆栈区,而是放在静态公共存储区域,它只属于类,而不属于对象。
非static方法:需要多次加载到内存中,当调用的时候就将函数指针保存到运行堆栈中,函数结束或者垃圾回收的时候就会释放,需要多次加载。
一般static方法用于使用频率高的场合,而非static方法用于使用频率不高的场合(需要多次加载到内存,比较耗费时间)(注意这里是一般,没有说完全,譬如本处的特例就是Main函数就是仅仅加载到内存中一次。)