Main主程序调用的可能报错原因

Main是class下的方法。Main里的变量和小程序里的变量,并不相同,即便同名(是两个不同的盒子)。

同理:Class里的变量和Class以外的方法里的变量也不一样,即便同名。

但是Class里的变量和Class自带的方法里的变量可以是一样的(同一个盒子里的同一个东西)。

class Program

    {

        static private double x;

        public static void SetX(double x_)

        {

            x = x_;

        }


所有Class都是静态的,但是Class的实例instance是动态的。

Class是个模板,可复制成不同的实例,实例的赋值彼此不同。

Eg. 使馆申请护照的表格,我和赵各一份,就是两个实例。


所有的静态Class/程序/值的生命周期跟应用等长,从应用启动到关闭,一直存在。(占内存,是否设置静态要严肃对待。)

因此,静态Class/程序/值可以被任何方法和变量调用。


主程序Main要被虚拟机调用,生命周期与应用等长,所以Main必须是静态的,能被Main直接调用的methods,也必须是静态的。


Main可以直接调用其他方法,而不是方法里的值。因此:Methods,要放在Main的body之外,否则就会报错。

被调用的方法可以不赋实际值,而在main中调用方法时,再赋值。

方法其实就是类似于公式,只有被使用时才需要赋值。如果使用时,不赋值,也会报错。

可以在一个功能内调用别的功能。这样就可以 把功能给细化。一个大功能,实际上是很多个子功能的组合。子功能也能被重复使用。编程的重要思想之一就是重复使用性,重复使用设计的好,可维护性也得到了提高。


class Program

    {      static void Main(string[] args)

        {  Console.WriteLine(CalculateAverage(18, 22));

            Console.ReadKey();

        }



        static int CalculateAverage(int a, intb)

        {

            intaverage = SumOfAge(a,b) / 2;

            returnaverage;

        }


        static int SumOfAge(int a, intb)

        {

            intSum = a + b;

            returnSum;

        }

     }

在Class的body里只能存放变量属性,声明变量,但是不能改变变量的值,不能执行任何function,不然就会报错。

e.g.

class Program

    {

        int age = 22 + 14; // 虽然貌似赋值,实际是声明了一个值为22+14的变量age,所以不会报错

        age = 28;  // 此处会报错,因为更改了变量age的value,相当于做了一个赋值,是错误的

        Console.WriteLine(age);  // 此处必然会报错,因为method不可以放到class的body中

            }

method中可能出现的报错:

static double AreaOfRound(double radius, float pi)  //  定义method,必要包含所有入口参数,开内存空间

        {

            float pi = 3.1415926;  // 此处必然会报错,等于在内存中又开了一个空间放一个同名的float pi

            pi = 3.1415926f;     // 因为入口参数已经定义过了,不需要再开内存,直接赋值给 pi 就行了

            double Area = radius * radius * pi;

            return Area;

        }

不可以在method的body里定义入口参数,必须要在第一行的主体句里写入入口参数

以下是错误例子:

static bool IsTeenager()  

        {

            int age;

            int minAge;

            int maxAge;

            bool teenager = (age > minAge && (age < maxAge));

            return teenager;

        }

应该改为

static bool IsTeenager (int age, int minAge, int maxAge)

        {

           bool teenager = (age > minAge && (age < maxAge));

            return teenager;

        }

但是当入口参数过多时,单一method就不是一个好方法,要通过其他的方式来求解。详见另一篇文章。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,745评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,537评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,778评论 0 10
  • 通过里昂教练艾田一周的培训,对青训有了新的认识!在0304的训练中也强调了一些要求及细节的把控!孩子们从随意中有了...
    穆里尼奥宋阅读 164评论 0 0