C#编程指南 —— 01 在C#程序内部

开始学习 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函数就是仅仅加载到内存中一次。)

你可能感兴趣的:(C#编程指南学习笔记)